test_label_model.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. from django.test import TestCase
  2. from misago.forums.models import Forum
  3. from misago.threads.models import Label
  4. class LabelsManagerTests(TestCase):
  5. def setUp(self):
  6. Label.objects.clear_cache()
  7. def test_get_cached_labels(self):
  8. """get_cached_labels and get_cached_labels_dict work as intented"""
  9. test_labels = (
  10. Label.objects.create(name="Label 1"),
  11. Label.objects.create(name="Label 2"),
  12. Label.objects.create(name="Label 3"),
  13. Label.objects.create(name="Label 4"),
  14. )
  15. db_labels = Label.objects.get_cached_labels()
  16. self.assertEqual(len(db_labels), len(test_labels))
  17. for label in db_labels:
  18. self.assertIn(label, test_labels)
  19. db_labels = Label.objects.get_cached_labels_dict()
  20. self.assertEqual(len(db_labels), len(test_labels))
  21. for label in test_labels:
  22. self.assertEqual(db_labels[label.pk], label)
  23. def test_get_forum_labels(self):
  24. """get_forum_labels returns labels for forum"""
  25. forum = Forum.objects.all_forums().filter(role='forum')[:1][0]
  26. test_labels = (
  27. Label.objects.create(name="Label 1"),
  28. Label.objects.create(name="Label 2"),
  29. Label.objects.create(name="Label 3"),
  30. Label.objects.create(name="Label 4"),
  31. )
  32. test_labels[0].forums.add(forum)
  33. test_labels[2].forums.add(forum)
  34. forum_labels = Label.objects.get_forum_labels(forum)
  35. self.assertEqual(len(forum_labels), 2)
  36. self.assertIn(test_labels[0], forum_labels)
  37. self.assertIn(test_labels[2], forum_labels)
  38. self.assertNotIn(test_labels[1], forum_labels)
  39. self.assertNotIn(test_labels[3], forum_labels)