mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-18 13:06:30 -06:00
Add filter tests for group, users
This commit is contained in:
parent
2cc4f032b0
commit
79f1248119
@ -45,7 +45,7 @@ class UserFilterSet(BaseFilterSet):
|
|||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = User
|
model = User
|
||||||
fields = ['id', 'username', 'first_name', 'last_name', 'email', 'is_staff', 'is_active', 'date_joined']
|
fields = ['id', 'username', 'first_name', 'last_name', 'email', 'is_staff', 'is_active']
|
||||||
|
|
||||||
def search(self, queryset, name, value):
|
def search(self, queryset, name, value):
|
||||||
if not value.strip():
|
if not value.strip():
|
||||||
|
116
netbox/users/tests/test_filters.py
Normal file
116
netbox/users/tests/test_filters.py
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
from django.contrib.auth.models import Group, User
|
||||||
|
from django.test import TestCase
|
||||||
|
|
||||||
|
from users.filters import GroupFilterSet, UserFilterSet
|
||||||
|
|
||||||
|
|
||||||
|
class UserTestCase(TestCase):
|
||||||
|
queryset = User.objects.all()
|
||||||
|
filterset = UserFilterSet
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpTestData(cls):
|
||||||
|
|
||||||
|
groups = (
|
||||||
|
Group(name='Group 1'),
|
||||||
|
Group(name='Group 2'),
|
||||||
|
Group(name='Group 3'),
|
||||||
|
)
|
||||||
|
Group.objects.bulk_create(groups)
|
||||||
|
|
||||||
|
users = (
|
||||||
|
User(
|
||||||
|
username='User1',
|
||||||
|
first_name='Hank',
|
||||||
|
last_name='Hill',
|
||||||
|
email='hank@stricklandpropane.com',
|
||||||
|
is_staff=True
|
||||||
|
),
|
||||||
|
User(
|
||||||
|
username='User2',
|
||||||
|
first_name='Dale',
|
||||||
|
last_name='Gribble',
|
||||||
|
email='dale@dalesdeadbug.com'
|
||||||
|
),
|
||||||
|
User(
|
||||||
|
username='User3',
|
||||||
|
first_name='Bill',
|
||||||
|
last_name='Dauterive',
|
||||||
|
email='bill.dauterive@army.mil'
|
||||||
|
),
|
||||||
|
User(
|
||||||
|
username='User4',
|
||||||
|
first_name='Jeff',
|
||||||
|
last_name='Boomhauer',
|
||||||
|
email='boomhauer@dangolemail.com'
|
||||||
|
),
|
||||||
|
User(
|
||||||
|
username='User5',
|
||||||
|
first_name='Debbie',
|
||||||
|
last_name='Grund',
|
||||||
|
is_active=False
|
||||||
|
)
|
||||||
|
)
|
||||||
|
User.objects.bulk_create(users)
|
||||||
|
|
||||||
|
users[0].groups.set([groups[0]])
|
||||||
|
users[1].groups.set([groups[1]])
|
||||||
|
users[2].groups.set([groups[2]])
|
||||||
|
|
||||||
|
def test_id(self):
|
||||||
|
params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
|
||||||
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||||
|
|
||||||
|
def test_username(self):
|
||||||
|
params = {'username': ['User1', 'User2']}
|
||||||
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||||
|
|
||||||
|
def test_first_name(self):
|
||||||
|
params = {'first_name': ['Hank', 'Dale']}
|
||||||
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||||
|
|
||||||
|
def test_last_name(self):
|
||||||
|
params = {'last_name': ['Hill', 'Gribble']}
|
||||||
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||||
|
|
||||||
|
def test_email(self):
|
||||||
|
params = {'email': ['hank@stricklandpropane.com', 'dale@dalesdeadbug.com']}
|
||||||
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||||
|
|
||||||
|
def test_is_staff(self):
|
||||||
|
params = {'is_staff': True}
|
||||||
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
|
||||||
|
|
||||||
|
def test_is_active(self):
|
||||||
|
params = {'is_active': True}
|
||||||
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
|
||||||
|
|
||||||
|
def test_group(self):
|
||||||
|
groups = Group.objects.all()[:2]
|
||||||
|
params = {'group_id': [groups[0].pk, groups[1].pk]}
|
||||||
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||||
|
params = {'group': [groups[0].name, groups[1].name]}
|
||||||
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||||
|
|
||||||
|
|
||||||
|
class GroupTestCase(TestCase):
|
||||||
|
queryset = Group.objects.all()
|
||||||
|
filterset = GroupFilterSet
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpTestData(cls):
|
||||||
|
|
||||||
|
groups = (
|
||||||
|
Group(name='Group 1'),
|
||||||
|
Group(name='Group 2'),
|
||||||
|
Group(name='Group 3'),
|
||||||
|
)
|
||||||
|
Group.objects.bulk_create(groups)
|
||||||
|
|
||||||
|
def test_id(self):
|
||||||
|
params = {'id': self.queryset.values_list('pk', flat=True)[:2]}
|
||||||
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||||
|
|
||||||
|
def test_name(self):
|
||||||
|
params = {'name': ['Group 1', 'Group 2']}
|
||||||
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
Loading…
Reference in New Issue
Block a user