def setUp(self): self.key = uuid.uuid4() self.manager = TestExtensionManager( [FakeEntryPoint(self.TestExtension)], self.key) self.extension = self.TestExtension(self.manager) self.request = HttpRequest()
class TemplateTagTests(TestCase): """Tests for djblets.extensions.templatetags.""" class TestExtension(TestExtensionWithRegistration): css_bundles = { 'default': {}, 'optional': { 'apply_to': ['foo'], }, } js_bundles = { 'default': {}, 'optional': { 'apply_to': ['foo'], }, } def setUp(self): self.key = uuid.uuid4() self.manager = TestExtensionManager( [FakeEntryPoint(self.TestExtension)], self.key) self.extension = self.TestExtension(self.manager) self.request = HttpRequest() def tearDown(self): self.manager.shutdown() def test_template_hook_point_tag(self): """Testing template_hook_point template tag""" class DummyTemplateHook(TemplateHook): """A template hook where the content is specified.""" def __init__(self, content, *args, **kwargs): super(DummyTemplateHook, self).__init__(*args, **kwargs) self._content = content def render_to_string(self, request, context): return self._content t = Template('{% load djblets_extensions %}' '{% template_hook_point "test-hook" %}') DummyTemplateHook('foo\n', self.extension, 'test-hook') DummyTemplateHook('bar\n', self.extension, 'test-hook') self.assertEqual( t.render(Context({ 'request': self.request, })), 'foo\nbar\n') def test_ext_static_tag(self): """Testing ext_static template tag""" t = Template('{% load djblets_extensions %}' '{% ext_static ext "foo" %}') self.assertEqual( t.render(Context({ 'ext': self.extension, 'request': self.request, })), '/ext/djblets.extensions.templatetags.tests.TestExtension/foo') def test_ext_css_bundle_tag(self): """Testing ext_css_bundle template tag""" t = Template('{% load djblets_extensions %}' '{% ext_css_bundle ext "default" %}') self.manager.load() self.manager.enable_extension(self.extension.id) self.assertEqual( t.render(Context({ 'ext': self.extension, 'request': self.request, })), '/ext/djblets.extensions.templatetags.tests.TestExtension/css/' 'default.min.css\n') def test_ext_js_bundle_tag(self): """Testing ext_js_bundle template tag""" t = Template('{% load djblets_extensions %}' '{% ext_js_bundle ext "default" %}') self.manager.load() self.manager.enable_extension(self.extension.id) self.assertEqual( t.render(Context({ 'ext': self.extension, 'request': self.request, })), '/ext/djblets.extensions.templatetags.tests.TestExtension/js/' 'default.min.js\n') def test_load_extensions_css_tag(self): """Testing load_extensions_css template tag""" t = Template('{% load djblets_extensions %}' '{% load_extensions_css manager_id %}') self.manager.load() self.manager.enable_extension(self.extension.id) self.request.resolver_match = ResolverMatch(None, None, None, 'foo') self.assertEqual( t.render(Context({ 'ext': self.extension, 'manager_id': self.key, 'request': self.request, })), '/ext/djblets.extensions.templatetags.tests.TestExtension/css/' 'default.min.css\n' '/ext/djblets.extensions.templatetags.tests.TestExtension/css/' 'optional.min.css\n') def test_load_extensions_js_tag(self): """Testing load_extensions_js template tag""" t = Template('{% load djblets_extensions %}' '{% load_extensions_js manager_id %}') self.manager.load() self.manager.enable_extension(self.extension.id) self.request.resolver_match = ResolverMatch(None, None, None, 'foo') self.assertEqual( t.render(Context({ 'ext': self.extension, 'manager_id': self.key, 'request': self.request, })), '/ext/djblets.extensions.templatetags.tests.TestExtension/js/' 'default.min.js\n' '/ext/djblets.extensions.templatetags.tests.TestExtension/js/' 'optional.min.js\n')