test_models.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. from django.contrib.contenttypes.models import ContentType
  2. from django.test import TestCase
  3. from dcim.models import Site
  4. from extras.choices import TemplateLanguageChoices
  5. from extras.models import Graph, Tag
  6. class GraphTest(TestCase):
  7. def setUp(self):
  8. self.site = Site(name='Site 1', slug='site-1')
  9. def test_graph_render_django(self):
  10. # Using the pluralize filter as a sanity check (it's only available in Django)
  11. TEMPLATE_TEXT = "{{ obj.name|lower }} thing{{ 2|pluralize }}"
  12. RENDERED_TEXT = "site 1 things"
  13. graph = Graph(
  14. type=ContentType.objects.get(app_label='dcim', model='site'),
  15. name='Graph 1',
  16. template_language=TemplateLanguageChoices.LANGUAGE_DJANGO,
  17. source=TEMPLATE_TEXT,
  18. link=TEMPLATE_TEXT
  19. )
  20. self.assertEqual(graph.embed_url(self.site), RENDERED_TEXT)
  21. self.assertEqual(graph.embed_link(self.site), RENDERED_TEXT)
  22. def test_graph_render_jinja2(self):
  23. TEMPLATE_TEXT = "{{ [obj.name, obj.slug]|join(',') }}"
  24. RENDERED_TEXT = "Site 1,site-1"
  25. graph = Graph(
  26. type=ContentType.objects.get(app_label='dcim', model='site'),
  27. name='Graph 1',
  28. template_language=TemplateLanguageChoices.LANGUAGE_JINJA2,
  29. source=TEMPLATE_TEXT,
  30. link=TEMPLATE_TEXT
  31. )
  32. self.assertEqual(graph.embed_url(self.site), RENDERED_TEXT)
  33. self.assertEqual(graph.embed_link(self.site), RENDERED_TEXT)
  34. class TagTest(TestCase):
  35. def test_create_tag_unicode(self):
  36. tag = Tag(name='Testing Unicode: 台灣')
  37. tag.save()
  38. self.assertEqual(tag.slug, 'testing-unicode-台灣')