mirror of
				https://github.com/django/django.git
				synced 2025-10-26 07:06:08 +00:00 
			
		
		
		
	* Converted the ``libraries`` and ``builtins`` globals of ``django.template.base`` into properties of the Engine class. * Added a public API for explicit registration of libraries and builtins.
		
			
				
	
	
		
			76 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			3.3 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:\nsubpackage.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:\nsubpackage.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:\nsubpackage.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:\nsubpackage.echo\ntesttags"
 | |
|         with self.assertRaisesMessage(TemplateSyntaxError, msg):
 | |
|             self.engine.get_template('load12')
 |