1from django.contrib.auth.models import AnonymousUser 2from django.http import HttpRequest 3from django.template import engines 4from django.test import TestCase 5 6from wagtail.core.models import PAGE_TEMPLATE_VAR, Page, Site 7from wagtail.tests.utils import WagtailTestUtils 8 9 10class TestCoreJinja(TestCase, WagtailTestUtils): 11 12 def setUp(self): 13 self.engine = engines['jinja2'] 14 15 self.user = self.create_superuser( 16 username='test', 17 email='test@email.com', 18 password='password' 19 ) 20 self.homepage = Page.objects.get(id=2) 21 22 def render(self, string, context=None, request_context=True): 23 if context is None: 24 context = {} 25 26 template = self.engine.from_string(string) 27 return template.render(context) 28 29 def dummy_request(self, user=None): 30 site = Site.objects.get(is_default_site=True) 31 32 request = HttpRequest() 33 request.META['HTTP_HOST'] = site.hostname 34 request.META['SERVER_PORT'] = site.port 35 request.user = user or AnonymousUser() 36 return request 37 38 def test_userbar(self): 39 content = self.render('{{ wagtailuserbar() }}', { 40 PAGE_TEMPLATE_VAR: self.homepage, 41 'request': self.dummy_request(self.user)}) 42 self.assertIn("<!-- Wagtail user bar embed code -->", content) 43 44 def test_userbar_anonymous_user(self): 45 content = self.render('{{ wagtailuserbar() }}', { 46 PAGE_TEMPLATE_VAR: self.homepage, 47 'request': self.dummy_request()}) 48 49 # Make sure nothing was rendered 50 self.assertEqual(content, '') 51