test_threadslist_view.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. from django.test import TestCase
  2. from misago.threads.views.generic.threads import Sorting
  3. class SortingTests(TestCase):
  4. def setUp(self):
  5. self.sorting = Sorting('misago:forum', {
  6. 'forum_slug': "test-forum",
  7. 'forum_id': 42,
  8. })
  9. def test_clean_kwargs_removes_default_sorting(self):
  10. """clean_kwargs removes default sorting"""
  11. default_sorting = self.sorting.sortings[0]['method']
  12. cleaned_kwargs = self.sorting.clean_kwargs({'sort': default_sorting})
  13. cleaned_kwargs['pie'] = 'yum-yum'
  14. self.assertEqual(cleaned_kwargs, {'pie': 'yum-yum'})
  15. def test_clean_kwargs_removes_invalid_sorting(self):
  16. """clean_kwargs removes invalid sorting"""
  17. default_sorting = self.sorting.sortings[0]['method']
  18. cleaned_kwargs = self.sorting.clean_kwargs({'sort': 'bad-sort'})
  19. cleaned_kwargs['pie'] = 'yum-yum'
  20. self.assertEqual(cleaned_kwargs, {'pie': 'yum-yum'})
  21. def test_clean_kwargs_preserves_valid_sorting(self):
  22. """clean_kwargs preserves valid sorting"""
  23. default_sorting = self.sorting.sortings[0]['method']
  24. cleaned_kwargs = self.sorting.clean_kwargs({'sort': 'oldest'})
  25. cleaned_kwargs['pie'] = 'yum-yum'
  26. self.assertEqual(cleaned_kwargs, {'sort': 'oldest', 'pie': 'yum-yum'})
  27. def test_set_sorting_sets_valid_method(self):
  28. """set_sorting sets valid sorting"""
  29. for sorting in self.sorting.sortings:
  30. self.sorting.set_sorting(sorting['method'])
  31. self.assertEqual(sorting, self.sorting.sorting)
  32. self.assertEqual(sorting['name'], self.sorting.name)
  33. def test_choices(self):
  34. """choices returns set of valid choices"""
  35. for sorting in self.sorting.sortings:
  36. self.sorting.set_sorting(sorting['method'])
  37. choices = [choice['name'] for choice in self.sorting.choices()]
  38. self.assertNotIn(sorting['name'], choices)
  39. for other_sorting in self.sorting.sortings:
  40. if other_sorting != sorting:
  41. self.assertIn(other_sorting['name'], choices)