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