test_prefix_model.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. from django.core.exceptions import ValidationError
  2. from django.test import TestCase
  3. from misago.forums.models import Forum
  4. from misago.threads.models import Prefix
  5. class PrefixesManagerTests(TestCase):
  6. def setUp(self):
  7. Prefix.objects.clear_cache()
  8. def test_get_cached_prefixes(self):
  9. """get_cached_prefixes and get_cached_prefixes_dict work as intented"""
  10. test_prefixes = (
  11. Prefix.objects.create(name="Prefix 1"),
  12. Prefix.objects.create(name="Prefix 2"),
  13. Prefix.objects.create(name="Prefix 3"),
  14. Prefix.objects.create(name="Prefix 4"),
  15. )
  16. db_prefixes = Prefix.objects.get_cached_prefixes()
  17. self.assertEqual(len(db_prefixes), len(test_prefixes))
  18. for prefix in db_prefixes:
  19. self.assertIn(prefix, test_prefixes)
  20. db_prefixes = Prefix.objects.get_cached_prefixes_dict()
  21. self.assertEqual(len(db_prefixes), len(test_prefixes))
  22. for prefix in test_prefixes:
  23. self.assertEqual(db_prefixes[prefix.pk], prefix)
  24. def test_get_forum_prefixes(self):
  25. """get_forum_prefixes returns prefixes for forum"""
  26. forum = Forum.objects.all_forums().filter(role='forum')[:1][0]
  27. test_prefixes = (
  28. Prefix.objects.create(name="Prefix 1"),
  29. Prefix.objects.create(name="Prefix 2"),
  30. Prefix.objects.create(name="Prefix 3"),
  31. Prefix.objects.create(name="Prefix 4"),
  32. )
  33. test_prefixes[0].forums.add(forum)
  34. test_prefixes[2].forums.add(forum)
  35. forum_prefixes = Prefix.objects.get_forum_prefixes(forum)
  36. self.assertEqual(len(forum_prefixes), 2)
  37. self.assertIn(test_prefixes[0], forum_prefixes)
  38. self.assertIn(test_prefixes[2], forum_prefixes)
  39. self.assertNotIn(test_prefixes[1], forum_prefixes)
  40. self.assertNotIn(test_prefixes[3], forum_prefixes)