mirror of
https://github.com/netbox-community/netbox.git
synced 2026-03-25 19:02:15 +01:00
Closes #6899: Add filterset tests for Token
This commit is contained in:
@@ -1,15 +1,18 @@
|
||||
import datetime
|
||||
|
||||
from django.contrib.auth.models import Group, User
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.test import TestCase
|
||||
from django.utils.timezone import make_aware
|
||||
|
||||
from users.filtersets import GroupFilterSet, ObjectPermissionFilterSet, UserFilterSet
|
||||
from users.models import ObjectPermission
|
||||
from users import filtersets
|
||||
from users.models import ObjectPermission, Token
|
||||
from utilities.testing import BaseFilterSetTests
|
||||
|
||||
|
||||
class UserTestCase(TestCase, BaseFilterSetTests):
|
||||
queryset = User.objects.all()
|
||||
filterset = UserFilterSet
|
||||
filterset = filtersets.UserFilterSet
|
||||
|
||||
@classmethod
|
||||
def setUpTestData(cls):
|
||||
@@ -94,7 +97,7 @@ class UserTestCase(TestCase, BaseFilterSetTests):
|
||||
|
||||
class GroupTestCase(TestCase, BaseFilterSetTests):
|
||||
queryset = Group.objects.all()
|
||||
filterset = GroupFilterSet
|
||||
filterset = filtersets.GroupFilterSet
|
||||
|
||||
@classmethod
|
||||
def setUpTestData(cls):
|
||||
@@ -113,7 +116,7 @@ class GroupTestCase(TestCase, BaseFilterSetTests):
|
||||
|
||||
class ObjectPermissionTestCase(TestCase, BaseFilterSetTests):
|
||||
queryset = ObjectPermission.objects.all()
|
||||
filterset = ObjectPermissionFilterSet
|
||||
filterset = filtersets.ObjectPermissionFilterSet
|
||||
|
||||
@classmethod
|
||||
def setUpTestData(cls):
|
||||
@@ -179,3 +182,53 @@ class ObjectPermissionTestCase(TestCase, BaseFilterSetTests):
|
||||
object_types = ContentType.objects.filter(model__in=['site', 'rack'])
|
||||
params = {'object_types': [object_types[0].pk, object_types[1].pk]}
|
||||
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||
|
||||
|
||||
class TokenTestCase(TestCase, BaseFilterSetTests):
|
||||
queryset = Token.objects.all()
|
||||
filterset = filtersets.TokenFilterSet
|
||||
|
||||
@classmethod
|
||||
def setUpTestData(cls):
|
||||
|
||||
users = (
|
||||
User(username='User1'),
|
||||
User(username='User2'),
|
||||
User(username='User3'),
|
||||
)
|
||||
User.objects.bulk_create(users)
|
||||
|
||||
future_date = make_aware(datetime.datetime(3000, 1, 1))
|
||||
past_date = make_aware(datetime.datetime(2000, 1, 1))
|
||||
tokens = (
|
||||
Token(user=users[0], key=Token.generate_key(), expires=future_date, write_enabled=True),
|
||||
Token(user=users[1], key=Token.generate_key(), expires=future_date, write_enabled=True),
|
||||
Token(user=users[2], key=Token.generate_key(), expires=past_date, write_enabled=False),
|
||||
)
|
||||
Token.objects.bulk_create(tokens)
|
||||
|
||||
def test_user(self):
|
||||
users = User.objects.order_by('id')[:2]
|
||||
params = {'user_id': [users[0].pk, users[1].pk]}
|
||||
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||
params = {'user': [users[0].username, users[1].username]}
|
||||
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||
|
||||
def test_expires(self):
|
||||
params = {'expires': '3000-01-01T00:00:00'}
|
||||
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||
params = {'expires__gte': '2021-01-01T00:00:00'}
|
||||
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||
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.all()[: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)
|
||||
params = {'write_enabled': False}
|
||||
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
|
||||
|
||||
Reference in New Issue
Block a user