mirror of
				https://github.com/django/django.git
				synced 2025-10-29 08:36:09 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			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")
 |