test_label_model.py 2.0 KB

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