mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
75 lines
2.4 KiB
Python
75 lines
2.4 KiB
Python
from django.contrib.auth.models import Group, User
|
|
from django.contrib.contenttypes.models import ContentType
|
|
from django.urls import reverse
|
|
|
|
from users.models import ObjectPermission
|
|
from utilities.testing import APIViewTestCases, APITestCase
|
|
|
|
|
|
class AppTest(APITestCase):
|
|
|
|
def test_root(self):
|
|
|
|
url = reverse('users-api:api-root')
|
|
response = self.client.get('{}?format=api'.format(url), **self.header)
|
|
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
|
|
class ObjectPermissionTest(APIViewTestCases.APIViewTestCase):
|
|
model = ObjectPermission
|
|
brief_fields = ['actions', 'groups', 'id', 'object_types', 'users']
|
|
|
|
@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', is_active=True),
|
|
User(username='User 2', is_active=True),
|
|
User(username='User 3', is_active=True),
|
|
)
|
|
User.objects.bulk_create(users)
|
|
|
|
object_type = ContentType.objects.get(app_label='dcim', model='device')
|
|
|
|
for i in range(0, 3):
|
|
objectpermission = ObjectPermission(
|
|
actions=['view', 'add', 'change', 'delete'],
|
|
constraints={'name': f'TEST{i+1}'}
|
|
)
|
|
objectpermission.save()
|
|
objectpermission.object_types.add(object_type)
|
|
objectpermission.groups.add(groups[i])
|
|
objectpermission.users.add(users[i])
|
|
|
|
cls.create_data = [
|
|
{
|
|
'object_types': ['dcim.site'],
|
|
'groups': [groups[0].pk],
|
|
'users': [users[0].pk],
|
|
'actions': ['view', 'add', 'change', 'delete'],
|
|
'constraints': {'name': 'TEST4'},
|
|
},
|
|
{
|
|
'object_types': ['dcim.site'],
|
|
'groups': [groups[1].pk],
|
|
'users': [users[1].pk],
|
|
'actions': ['view', 'add', 'change', 'delete'],
|
|
'constraints': {'name': 'TEST5'},
|
|
},
|
|
{
|
|
'object_types': ['dcim.site'],
|
|
'groups': [groups[2].pk],
|
|
'users': [users[2].pk],
|
|
'actions': ['view', 'add', 'change', 'delete'],
|
|
'constraints': {'name': 'TEST6'},
|
|
},
|
|
]
|