def test_render_template_without_request(self): """ Render a template """ loader = JsLoader(engine=None) template_path = loader.load_template('test-component.js', template_dirs=[settings.TEMPLATE_DIR])[0] template = JsTemplate(template_path) result = template.render({}) expected = '<span>Test component</span>' self.assertEqual(result, expected)
def test_render_template_without_request(self): """ Render a template """ loader = JsLoader(engine=None) template_path = loader.load_template( 'test-component.js', template_dirs=[settings.TEMPLATE_DIR])[0] template = JsTemplate(template_path) result = template.render({}) expected = '<span>Test component</span>' self.assertEqual(result, expected)
def test_load_missing_template(self): engine = JsEngine(dirs=[settings.TEMPLATE_DIR]) loader = JsLoader(engine) with self.assertRaises(TemplateDoesNotExist): loader.load_template_source('foo.js')
def test_empty_template_dir_config(self): engine = JsEngine() loader = JsLoader(engine) with self.assertRaises(TemplateDoesNotExist): loader.load_template_source('foo.js')
from django import template from django.conf import settings from django_jsx.template.backend import JsTemplate from django_jsx.template.loaders import JsLoader register = template.Library() loader = JsLoader(engine=None) class JsMissingTemplateDirException(Exception): pass def _get_template_dirs(): for t in settings.TEMPLATES: if t['BACKEND'] == 'django_jsx.template.backend.JsTemplates': return t['DIRS'] return None def _get_template_path(template_name): template_dirs = _get_template_dirs() if not template_dirs: return None template_path, _ = loader.load_template(template_name, template_dirs=template_dirs) return template_path @register.simple_tag(takes_context=True) def include_js(context, template_name, **kwargs):