1from datetime import date, datetime, timezone
2
3
4__all__ = (
5    'BaseFilterSetTests',
6    'ChangeLoggedFilterSetTests',
7)
8
9
10class BaseFilterSetTests:
11    queryset = None
12    filterset = None
13
14    def test_id(self):
15        """
16        Test filtering for two PKs from a set of >2 objects.
17        """
18        params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
19        self.assertGreater(self.queryset.count(), 2)
20        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
21
22
23class ChangeLoggedFilterSetTests(BaseFilterSetTests):
24
25    def test_created(self):
26        pk_list = self.queryset.values_list('pk', flat=True)[:2]
27        self.queryset.filter(pk__in=pk_list).update(created=date(2021, 1, 1))
28        params = {'created': '2021-01-01'}
29        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
30
31    def test_last_updated(self):
32        pk_list = self.queryset.values_list('pk', flat=True)[:2]
33        self.queryset.filter(pk__in=pk_list).update(last_updated=datetime(2021, 1, 1, 0, 0, 0, tzinfo=timezone.utc))
34        params = {'last_updated': '2021-01-01T00:00:00'}
35        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
36