2
0

test_library.py 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. from django.template import Library
  2. from django.template.base import Node
  3. from django.test import TestCase
  4. class FilterRegistrationTests(TestCase):
  5. def setUp(self):
  6. self.library = Library()
  7. def test_filter(self):
  8. @self.library.filter
  9. def func():
  10. return ''
  11. self.assertEqual(self.library.filters['func'], func)
  12. def test_filter_parens(self):
  13. @self.library.filter()
  14. def func():
  15. return ''
  16. self.assertEqual(self.library.filters['func'], func)
  17. def test_filter_name_arg(self):
  18. @self.library.filter('name')
  19. def func():
  20. return ''
  21. self.assertEqual(self.library.filters['name'], func)
  22. def test_filter_name_kwarg(self):
  23. @self.library.filter(name='name')
  24. def func():
  25. return ''
  26. self.assertEqual(self.library.filters['name'], func)
  27. def test_filter_call(self):
  28. def func():
  29. return ''
  30. self.library.filter('name', func)
  31. self.assertEqual(self.library.filters['name'], func)
  32. def test_filter_invalid(self):
  33. msg = "Unsupported arguments to Library.filter: (None, '')"
  34. with self.assertRaisesMessage(ValueError, msg):
  35. self.library.filter(None, '')
  36. class InclusionTagRegistrationTests(TestCase):
  37. def setUp(self):
  38. self.library = Library()
  39. def test_inclusion_tag(self):
  40. @self.library.inclusion_tag('template.html')
  41. def func():
  42. return ''
  43. self.assertIn('func', self.library.tags)
  44. def test_inclusion_tag_name(self):
  45. @self.library.inclusion_tag('template.html', name='name')
  46. def func():
  47. return ''
  48. self.assertIn('name', self.library.tags)
  49. class SimpleTagRegistrationTests(TestCase):
  50. def setUp(self):
  51. self.library = Library()
  52. def test_simple_tag(self):
  53. @self.library.simple_tag
  54. def func():
  55. return ''
  56. self.assertIn('func', self.library.tags)
  57. def test_simple_tag_parens(self):
  58. @self.library.simple_tag()
  59. def func():
  60. return ''
  61. self.assertIn('func', self.library.tags)
  62. def test_simple_tag_name_kwarg(self):
  63. @self.library.simple_tag(name='name')
  64. def func():
  65. return ''
  66. self.assertIn('name', self.library.tags)
  67. def test_simple_tag_invalid(self):
  68. msg = "Invalid arguments provided to simple_tag"
  69. with self.assertRaisesMessage(ValueError, msg):
  70. self.library.simple_tag('invalid')
  71. class TagRegistrationTests(TestCase):
  72. def setUp(self):
  73. self.library = Library()
  74. def test_tag(self):
  75. @self.library.tag
  76. def func(parser, token):
  77. return Node()
  78. self.assertEqual(self.library.tags['func'], func)
  79. def test_tag_parens(self):
  80. @self.library.tag()
  81. def func(parser, token):
  82. return Node()
  83. self.assertEqual(self.library.tags['func'], func)
  84. def test_tag_name_arg(self):
  85. @self.library.tag('name')
  86. def func(parser, token):
  87. return Node()
  88. self.assertEqual(self.library.tags['name'], func)
  89. def test_tag_name_kwarg(self):
  90. @self.library.tag(name='name')
  91. def func(parser, token):
  92. return Node()
  93. self.assertEqual(self.library.tags['name'], func)
  94. def test_tag_call(self):
  95. def func(parser, token):
  96. return Node()
  97. self.library.tag('name', func)
  98. self.assertEqual(self.library.tags['name'], func)
  99. def test_tag_invalid(self):
  100. msg = "Unsupported arguments to Library.tag: (None, '')"
  101. with self.assertRaisesMessage(ValueError, msg):
  102. self.library.tag(None, '')