mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-23 12:08:43 -06:00
Add tests for Owner & OwnerGroup
This commit is contained in:
@@ -53,4 +53,4 @@ class OwnerGroupType(BaseObjectType):
|
|||||||
pagination=True
|
pagination=True
|
||||||
)
|
)
|
||||||
class OwnerType(BaseObjectType):
|
class OwnerType(BaseObjectType):
|
||||||
group: OwnerGroupType
|
group: OwnerGroupType | None
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ from django.urls import reverse
|
|||||||
|
|
||||||
from core.models import ObjectType
|
from core.models import ObjectType
|
||||||
from users.constants import TOKEN_DEFAULT_LENGTH
|
from users.constants import TOKEN_DEFAULT_LENGTH
|
||||||
from users.models import Group, ObjectPermission, Token, User
|
from users.models import Group, ObjectPermission, Owner, OwnerGroup, Token, User
|
||||||
from utilities.data import deepmerge
|
from utilities.data import deepmerge
|
||||||
from utilities.testing import APIViewTestCases, APITestCase, create_test_user
|
from utilities.testing import APIViewTestCases, APITestCase, create_test_user
|
||||||
|
|
||||||
@@ -448,3 +448,112 @@ class UserConfigTest(APITestCase):
|
|||||||
self.assertDictEqual(response.data, new_data)
|
self.assertDictEqual(response.data, new_data)
|
||||||
userconfig.refresh_from_db()
|
userconfig.refresh_from_db()
|
||||||
self.assertDictEqual(userconfig.data, new_data)
|
self.assertDictEqual(userconfig.data, new_data)
|
||||||
|
|
||||||
|
|
||||||
|
class OwnerGroupTest(APIViewTestCases.APIViewTestCase):
|
||||||
|
model = OwnerGroup
|
||||||
|
brief_fields = ['description', 'display', 'id', 'name', 'url']
|
||||||
|
bulk_update_data = {
|
||||||
|
'description': 'New description',
|
||||||
|
}
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpTestData(cls):
|
||||||
|
owner_groups = (
|
||||||
|
OwnerGroup(name='Owner Group 1'),
|
||||||
|
OwnerGroup(name='Owner Group 2'),
|
||||||
|
OwnerGroup(name='Owner Group 3'),
|
||||||
|
)
|
||||||
|
OwnerGroup.objects.bulk_create(owner_groups)
|
||||||
|
|
||||||
|
cls.create_data = [
|
||||||
|
{
|
||||||
|
'name': 'Owner Group 4',
|
||||||
|
'description': 'Fourth owner group',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name': 'Owner Group 5',
|
||||||
|
'description': 'Fifth owner group',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name': 'Owner Group 6',
|
||||||
|
'description': 'Sixth owner group',
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
class OwnerTest(APIViewTestCases.APIViewTestCase):
|
||||||
|
model = Owner
|
||||||
|
brief_fields = ['description', 'display', 'id', 'name', 'url']
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpTestData(cls):
|
||||||
|
owner_groups = (
|
||||||
|
OwnerGroup(name='Owner Group 1'),
|
||||||
|
OwnerGroup(name='Owner Group 2'),
|
||||||
|
OwnerGroup(name='Owner Group 3'),
|
||||||
|
OwnerGroup(name='Owner Group 4'),
|
||||||
|
)
|
||||||
|
OwnerGroup.objects.bulk_create(owner_groups)
|
||||||
|
|
||||||
|
groups = (
|
||||||
|
Group(name='Group 1'),
|
||||||
|
Group(name='Group 2'),
|
||||||
|
Group(name='Group 3'),
|
||||||
|
Group(name='Group 4'),
|
||||||
|
)
|
||||||
|
Group.objects.bulk_create(groups)
|
||||||
|
|
||||||
|
users = (
|
||||||
|
User(username='User 1'),
|
||||||
|
User(username='User 2'),
|
||||||
|
User(username='User 3'),
|
||||||
|
User(username='User 4'),
|
||||||
|
)
|
||||||
|
User.objects.bulk_create(users)
|
||||||
|
|
||||||
|
owners = (
|
||||||
|
Owner(name='Owner 1'),
|
||||||
|
Owner(name='Owner 2'),
|
||||||
|
Owner(name='Owner 3'),
|
||||||
|
)
|
||||||
|
Owner.objects.bulk_create(owners)
|
||||||
|
|
||||||
|
# Assign users and groups to owners
|
||||||
|
owners[0].user_groups.add(groups[0])
|
||||||
|
owners[1].user_groups.add(groups[1])
|
||||||
|
owners[2].user_groups.add(groups[2])
|
||||||
|
owners[0].users.add(users[0])
|
||||||
|
owners[1].users.add(users[1])
|
||||||
|
owners[2].users.add(users[2])
|
||||||
|
|
||||||
|
cls.create_data = [
|
||||||
|
{
|
||||||
|
'name': 'Owner 4',
|
||||||
|
'description': 'Fourth owner',
|
||||||
|
'group': owner_groups[3].pk,
|
||||||
|
'user_groups': [groups[3].pk],
|
||||||
|
'users': [users[3].pk],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name': 'Owner 5',
|
||||||
|
'description': 'Fifth owner',
|
||||||
|
'group': owner_groups[3].pk,
|
||||||
|
'user_groups': [groups[3].pk],
|
||||||
|
'users': [users[3].pk],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name': 'Owner 6',
|
||||||
|
'description': 'Sixth owner',
|
||||||
|
'group': owner_groups[3].pk,
|
||||||
|
'user_groups': [groups[3].pk],
|
||||||
|
'users': [users[3].pk],
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
cls.bulk_update_data = {
|
||||||
|
'group': owner_groups[3].pk,
|
||||||
|
'user_groups': [groups[3].pk],
|
||||||
|
'users': [users[3].pk],
|
||||||
|
'description': 'New description',
|
||||||
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ from django.utils.timezone import make_aware
|
|||||||
|
|
||||||
from core.models import ObjectType
|
from core.models import ObjectType
|
||||||
from users import filtersets
|
from users import filtersets
|
||||||
from users.models import Group, ObjectPermission, Token, User
|
from users.models import Group, ObjectPermission, Owner, OwnerGroup, Token, User
|
||||||
from utilities.testing import BaseFilterSetTests
|
from utilities.testing import BaseFilterSetTests
|
||||||
|
|
||||||
|
|
||||||
@@ -348,3 +348,106 @@ class TokenTestCase(TestCase, BaseFilterSetTests):
|
|||||||
def test_description(self):
|
def test_description(self):
|
||||||
params = {'description': ['foobar1', 'foobar2']}
|
params = {'description': ['foobar1', 'foobar2']}
|
||||||
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||||
|
|
||||||
|
|
||||||
|
class OwnerGroupTestCase(TestCase, BaseFilterSetTests):
|
||||||
|
queryset = OwnerGroup.objects.all()
|
||||||
|
filterset = filtersets.OwnerGroupFilterSet
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpTestData(cls):
|
||||||
|
|
||||||
|
owner_groups = (
|
||||||
|
OwnerGroup(name='Owner Group 1', description='Foo'),
|
||||||
|
OwnerGroup(name='Owner Group 2', description='Bar'),
|
||||||
|
OwnerGroup(name='Owner Group 3', description='Baz'),
|
||||||
|
)
|
||||||
|
OwnerGroup.objects.bulk_create(owner_groups)
|
||||||
|
|
||||||
|
def test_q(self):
|
||||||
|
params = {'q': 'foo'}
|
||||||
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
|
||||||
|
|
||||||
|
def test_name(self):
|
||||||
|
params = {'name': ['Owner Group 1', 'Owner Group 2']}
|
||||||
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||||
|
|
||||||
|
def test_description(self):
|
||||||
|
params = {'description': ['Foo', 'Bar']}
|
||||||
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||||
|
|
||||||
|
|
||||||
|
class OwnerTestCase(TestCase, BaseFilterSetTests):
|
||||||
|
queryset = Owner.objects.all()
|
||||||
|
filterset = filtersets.OwnerFilterSet
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpTestData(cls):
|
||||||
|
owner_groups = (
|
||||||
|
OwnerGroup(name='Owner Group 1'),
|
||||||
|
OwnerGroup(name='Owner Group 2'),
|
||||||
|
OwnerGroup(name='Owner Group 3'),
|
||||||
|
)
|
||||||
|
OwnerGroup.objects.bulk_create(owner_groups)
|
||||||
|
|
||||||
|
groups = (
|
||||||
|
Group(name='Group 1'),
|
||||||
|
Group(name='Group 2'),
|
||||||
|
Group(name='Group 3'),
|
||||||
|
)
|
||||||
|
Group.objects.bulk_create(groups)
|
||||||
|
|
||||||
|
users = (
|
||||||
|
User(username='User 1'),
|
||||||
|
User(username='User 2'),
|
||||||
|
User(username='User 3'),
|
||||||
|
)
|
||||||
|
User.objects.bulk_create(users)
|
||||||
|
|
||||||
|
owners = (
|
||||||
|
Owner(name='Owner 1', group=owner_groups[0], description='Foo'),
|
||||||
|
Owner(name='Owner 2', group=owner_groups[1], description='Bar'),
|
||||||
|
Owner(name='Owner 3', group=owner_groups[2], description='Baz'),
|
||||||
|
)
|
||||||
|
Owner.objects.bulk_create(owners)
|
||||||
|
|
||||||
|
# Assign users and groups to owners
|
||||||
|
owners[0].user_groups.add(groups[0])
|
||||||
|
owners[1].user_groups.add(groups[1])
|
||||||
|
owners[2].user_groups.add(groups[2])
|
||||||
|
owners[0].users.add(users[0])
|
||||||
|
owners[1].users.add(users[1])
|
||||||
|
owners[2].users.add(users[2])
|
||||||
|
|
||||||
|
def test_q(self):
|
||||||
|
params = {'q': 'foo'}
|
||||||
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
|
||||||
|
|
||||||
|
def test_name(self):
|
||||||
|
params = {'name': ['Owner 1', 'Owner 2']}
|
||||||
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||||
|
|
||||||
|
def test_description(self):
|
||||||
|
params = {'description': ['Foo', 'Bar']}
|
||||||
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||||
|
|
||||||
|
def test_group(self):
|
||||||
|
owner_groups = OwnerGroup.objects.order_by('id')[:2]
|
||||||
|
params = {'group_id': [owner_groups[0].pk, owner_groups[1].pk]}
|
||||||
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||||
|
params = {'group': [owner_groups[0].name, owner_groups[1].name]}
|
||||||
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||||
|
|
||||||
|
def test_user_group(self):
|
||||||
|
group = Group.objects.order_by('id')[:2]
|
||||||
|
params = {'user_group_id': [group[0].pk, group[1].pk]}
|
||||||
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
||||||
|
params = {'user_group': [group[0].name, group[1].name]}
|
||||||
|
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]}
|
||||||
|
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)
|
||||||
|
|||||||
@@ -255,3 +255,108 @@ class TokenTestCase(
|
|||||||
cls.bulk_edit_data = {
|
cls.bulk_edit_data = {
|
||||||
'description': 'New description',
|
'description': 'New description',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class OwnerGroupTestCase(ViewTestCases.AdminModelViewTestCase):
|
||||||
|
model = OwnerGroup
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpTestData(cls):
|
||||||
|
owner_groups = (
|
||||||
|
OwnerGroup(name='Owner Group 1'),
|
||||||
|
OwnerGroup(name='Owner Group 2'),
|
||||||
|
OwnerGroup(name='Owner Group 3'),
|
||||||
|
)
|
||||||
|
OwnerGroup.objects.bulk_create(owner_groups)
|
||||||
|
|
||||||
|
cls.form_data = {
|
||||||
|
'name': 'Owner Group X',
|
||||||
|
'description': 'A new owner group',
|
||||||
|
}
|
||||||
|
|
||||||
|
cls.csv_data = (
|
||||||
|
"name,description",
|
||||||
|
"Owner Group 4,Foo",
|
||||||
|
"Owner Group 5,Bar",
|
||||||
|
"Owner Group 6,Baz",
|
||||||
|
)
|
||||||
|
|
||||||
|
cls.csv_update_data = (
|
||||||
|
"id,description",
|
||||||
|
f"{owner_groups[0].pk},Foo",
|
||||||
|
f"{owner_groups[1].pk},Bar",
|
||||||
|
f"{owner_groups[2].pk},Baz",
|
||||||
|
)
|
||||||
|
|
||||||
|
cls.bulk_edit_data = {
|
||||||
|
'description': 'New description',
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class OwnerTestCase(ViewTestCases.AdminModelViewTestCase):
|
||||||
|
model = Owner
|
||||||
|
|
||||||
|
@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='User 1'),
|
||||||
|
User(username='User 2'),
|
||||||
|
User(username='User 3'),
|
||||||
|
)
|
||||||
|
User.objects.bulk_create(users)
|
||||||
|
|
||||||
|
owner_groups = (
|
||||||
|
OwnerGroup(name='Owner Group 1'),
|
||||||
|
OwnerGroup(name='Owner Group 2'),
|
||||||
|
OwnerGroup(name='Owner Group 3'),
|
||||||
|
OwnerGroup(name='Owner Group 4'),
|
||||||
|
)
|
||||||
|
OwnerGroup.objects.bulk_create(owner_groups)
|
||||||
|
|
||||||
|
owners = (
|
||||||
|
Owner(name='Owner 1'),
|
||||||
|
Owner(name='Owner 2'),
|
||||||
|
Owner(name='Owner 3'),
|
||||||
|
)
|
||||||
|
Owner.objects.bulk_create(owners)
|
||||||
|
|
||||||
|
# Assign users and groups to owners
|
||||||
|
owners[0].user_groups.add(groups[0])
|
||||||
|
owners[1].user_groups.add(groups[1])
|
||||||
|
owners[2].user_groups.add(groups[2])
|
||||||
|
owners[0].users.add(users[0])
|
||||||
|
owners[1].users.add(users[1])
|
||||||
|
owners[2].users.add(users[2])
|
||||||
|
|
||||||
|
cls.form_data = {
|
||||||
|
'name': 'Owner X',
|
||||||
|
'group': owner_groups[3].pk,
|
||||||
|
'user_groups': [groups[0].pk, groups[1].pk],
|
||||||
|
'users': [users[0].pk, users[1].pk],
|
||||||
|
'description': 'A new owner',
|
||||||
|
}
|
||||||
|
|
||||||
|
cls.csv_data = (
|
||||||
|
"name,group,description",
|
||||||
|
"Owner 4,Owner Group 4,Foo",
|
||||||
|
"Owner 5,Owner Group 4,Bar",
|
||||||
|
"Owner 6,Owner Group 4,Baz",
|
||||||
|
)
|
||||||
|
|
||||||
|
cls.csv_update_data = (
|
||||||
|
"id,description",
|
||||||
|
f"{owners[0].pk},Foo",
|
||||||
|
f"{owners[1].pk},Bar",
|
||||||
|
f"{owners[2].pk},Baz",
|
||||||
|
)
|
||||||
|
|
||||||
|
cls.bulk_edit_data = {
|
||||||
|
'description': 'New description',
|
||||||
|
}
|
||||||
|
|||||||
@@ -1113,6 +1113,21 @@ class ViewTestCases:
|
|||||||
"""
|
"""
|
||||||
maxDiff = None
|
maxDiff = None
|
||||||
|
|
||||||
|
class AdminModelViewTestCase(
|
||||||
|
GetObjectViewTestCase,
|
||||||
|
CreateObjectViewTestCase,
|
||||||
|
EditObjectViewTestCase,
|
||||||
|
DeleteObjectViewTestCase,
|
||||||
|
ListObjectsViewTestCase,
|
||||||
|
BulkImportObjectsViewTestCase,
|
||||||
|
BulkEditObjectsViewTestCase,
|
||||||
|
BulkDeleteObjectsViewTestCase,
|
||||||
|
):
|
||||||
|
"""
|
||||||
|
TestCase suitable for testing all standard View functions for objects which inherit from AdminModel.
|
||||||
|
"""
|
||||||
|
maxDiff = None
|
||||||
|
|
||||||
class DeviceComponentTemplateViewTestCase(
|
class DeviceComponentTemplateViewTestCase(
|
||||||
EditObjectViewTestCase,
|
EditObjectViewTestCase,
|
||||||
DeleteObjectViewTestCase,
|
DeleteObjectViewTestCase,
|
||||||
|
|||||||
Reference in New Issue
Block a user