From ac335c3d879f33a7197edefb63930667919350f5 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Fri, 3 Oct 2025 10:23:00 -0400 Subject: [PATCH] Clean up filterset tests --- netbox/netbox/configuration_testing.py | 2 +- netbox/users/filtersets.py | 14 +++++++++++++- netbox/users/tests/test_filtersets.py | 14 +++++++++----- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/netbox/netbox/configuration_testing.py b/netbox/netbox/configuration_testing.py index bbe6dbada..36f9d7338 100644 --- a/netbox/netbox/configuration_testing.py +++ b/netbox/netbox/configuration_testing.py @@ -46,7 +46,7 @@ DEFAULT_PERMISSIONS = {} ALLOW_TOKEN_RETRIEVAL = True API_TOKEN_PEPPERS = { - 0: 'TEST-VALUE-DO-NOT-USE', + 1: 'TEST-VALUE-DO-NOT-USE', } LOGGING = { diff --git a/netbox/users/filtersets.py b/netbox/users/filtersets.py index a67761354..36fbdcb0d 100644 --- a/netbox/users/filtersets.py +++ b/netbox/users/filtersets.py @@ -130,15 +130,27 @@ class TokenFilterSet(BaseFilterSet): field_name='expires', lookup_expr='lte' ) + last_used = django_filters.DateTimeFilter() + last_used__gte = django_filters.DateTimeFilter( + field_name='last_used', + lookup_expr='gte' + ) + last_used__lte = django_filters.DateTimeFilter( + field_name='last_used', + lookup_expr='lte' + ) class Meta: model = Token - fields = ('id', 'version', 'key', 'pepper_id', 'write_enabled', 'description', 'last_used') + fields = ( + 'id', 'version', 'key', 'pepper_id', 'write_enabled', 'description', 'created', 'expires', 'last_used', + ) def search(self, queryset, name, value): if not value.strip(): return queryset return queryset.filter( + Q(key=value) | Q(user__username__icontains=value) | Q(description__icontains=value) ) diff --git a/netbox/users/tests/test_filtersets.py b/netbox/users/tests/test_filtersets.py index f7404cedd..1f7336cc3 100644 --- a/netbox/users/tests/test_filtersets.py +++ b/netbox/users/tests/test_filtersets.py @@ -315,6 +315,15 @@ class TokenTestCase(TestCase, BaseFilterSetTests): params = {'version': 2} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) + def test_key(self): + tokens = Token.objects.filter(version=2) + params = {'key': [tokens[0].key, tokens[1].key]} + self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) + + def test_pepper_id(self): + params = {'pepper_id': [1]} + self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) + def test_user(self): users = User.objects.order_by('id')[:2] params = {'user_id': [users[0].pk, users[1].pk]} @@ -330,11 +339,6 @@ class TokenTestCase(TestCase, BaseFilterSetTests): params = {'expires__lte': '2021-01-01T00:00:00'} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1) - def test_key(self): - tokens = Token.objects.filter(version=2) - params = {'key': [tokens[0].key, tokens[1].key]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_write_enabled(self): params = {'write_enabled': True} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)