102 lines
3.6 KiB
Python
102 lines
3.6 KiB
Python
from django.template import TemplateSyntaxError
|
|
from django.test import SimpleTestCase
|
|
|
|
from ..utils import setup
|
|
|
|
|
|
class LoadTagTests(SimpleTestCase):
|
|
libraries = {
|
|
"subpackage.echo": "template_tests.templatetags.subpackage.echo",
|
|
"testtags": "template_tests.templatetags.testtags",
|
|
}
|
|
|
|
@setup(
|
|
{
|
|
"load01": (
|
|
'{% load testtags subpackage.echo %}{% echo test %} {% echo2 "test" %}'
|
|
)
|
|
}
|
|
)
|
|
def test_load01(self):
|
|
output = self.engine.render_to_string("load01")
|
|
self.assertEqual(output, "test test")
|
|
|
|
@setup({"load02": '{% load subpackage.echo %}{% echo2 "test" %}'})
|
|
def test_load02(self):
|
|
output = self.engine.render_to_string("load02")
|
|
self.assertEqual(output, "test")
|
|
|
|
# {% load %} tag, importing individual tags
|
|
@setup({"load03": "{% load echo from testtags %}{% echo this that theother %}"})
|
|
def test_load03(self):
|
|
output = self.engine.render_to_string("load03")
|
|
self.assertEqual(output, "this that theother")
|
|
|
|
@setup(
|
|
{
|
|
"load04": "{% load echo other_echo from testtags %}"
|
|
"{% echo this that theother %} {% other_echo and another thing %}"
|
|
}
|
|
)
|
|
def test_load04(self):
|
|
output = self.engine.render_to_string("load04")
|
|
self.assertEqual(output, "this that theother and another thing")
|
|
|
|
@setup(
|
|
{
|
|
"load05": "{% load echo upper from testtags %}"
|
|
"{% echo this that theother %} {{ statement|upper }}"
|
|
}
|
|
)
|
|
def test_load05(self):
|
|
output = self.engine.render_to_string("load05", {"statement": "not shouting"})
|
|
self.assertEqual(output, "this that theother NOT SHOUTING")
|
|
|
|
@setup({"load06": '{% load echo2 from subpackage.echo %}{% echo2 "test" %}'})
|
|
def test_load06(self):
|
|
output = self.engine.render_to_string("load06")
|
|
self.assertEqual(output, "test")
|
|
|
|
# {% load %} tag errors
|
|
@setup({"load07": "{% load echo other_echo bad_tag from testtags %}"})
|
|
def test_load07(self):
|
|
msg = "'bad_tag' is not a valid tag or filter in tag library 'testtags'"
|
|
with self.assertRaisesMessage(TemplateSyntaxError, msg):
|
|
self.engine.get_template("load07")
|
|
|
|
@setup({"load08": "{% load echo other_echo bad_tag from %}"})
|
|
def test_load08(self):
|
|
msg = (
|
|
"'echo' is not a registered tag library. Must be one of:\n"
|
|
"subpackage.echo\ntesttags"
|
|
)
|
|
with self.assertRaisesMessage(TemplateSyntaxError, msg):
|
|
self.engine.get_template("load08")
|
|
|
|
@setup({"load09": "{% load from testtags %}"})
|
|
def test_load09(self):
|
|
msg = (
|
|
"'from' is not a registered tag library. Must be one of:\n"
|
|
"subpackage.echo\ntesttags"
|
|
)
|
|
with self.assertRaisesMessage(TemplateSyntaxError, msg):
|
|
self.engine.get_template("load09")
|
|
|
|
@setup({"load10": "{% load echo from bad_library %}"})
|
|
def test_load10(self):
|
|
msg = (
|
|
"'bad_library' is not a registered tag library. Must be one of:\n"
|
|
"subpackage.echo\ntesttags"
|
|
)
|
|
with self.assertRaisesMessage(TemplateSyntaxError, msg):
|
|
self.engine.get_template("load10")
|
|
|
|
@setup({"load12": "{% load subpackage.missing %}"})
|
|
def test_load12(self):
|
|
msg = (
|
|
"'subpackage.missing' is not a registered tag library. Must be one of:\n"
|
|
"subpackage.echo\ntesttags"
|
|
)
|
|
with self.assertRaisesMessage(TemplateSyntaxError, msg):
|
|
self.engine.get_template("load12")
|