mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
270 lines
8.9 KiB
Python
270 lines
8.9 KiB
Python
from django.urls import reverse
|
|
|
|
from dcim.models import Site
|
|
from tenancy.choices import *
|
|
from tenancy.models import *
|
|
from utilities.testing import APITestCase, APIViewTestCases
|
|
|
|
|
|
class AppTest(APITestCase):
|
|
|
|
def test_root(self):
|
|
|
|
url = reverse('tenancy-api:api-root')
|
|
response = self.client.get('{}?format=api'.format(url), **self.header)
|
|
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
|
|
class TenantGroupTest(APIViewTestCases.APIViewTestCase):
|
|
model = TenantGroup
|
|
brief_fields = ['_depth', 'description', 'display', 'id', 'name', 'slug', 'tenant_count', 'url']
|
|
bulk_update_data = {
|
|
'description': 'New description',
|
|
}
|
|
|
|
@classmethod
|
|
def setUpTestData(cls):
|
|
|
|
parent_tenant_groups = (
|
|
TenantGroup.objects.create(name='Parent Tenant Group 1', slug='parent-tenant-group-1'),
|
|
TenantGroup.objects.create(name='Parent Tenant Group 2', slug='parent-tenant-group-2'),
|
|
)
|
|
|
|
TenantGroup.objects.create(name='Tenant Group 1', slug='tenant-group-1', parent=parent_tenant_groups[0])
|
|
TenantGroup.objects.create(name='Tenant Group 2', slug='tenant-group-2', parent=parent_tenant_groups[0])
|
|
TenantGroup.objects.create(name='Tenant Group 3', slug='tenant-group-3', parent=parent_tenant_groups[0])
|
|
|
|
cls.create_data = [
|
|
{
|
|
'name': 'Tenant Group 4',
|
|
'slug': 'tenant-group-4',
|
|
'parent': parent_tenant_groups[1].pk,
|
|
},
|
|
{
|
|
'name': 'Tenant Group 5',
|
|
'slug': 'tenant-group-5',
|
|
'parent': parent_tenant_groups[1].pk,
|
|
},
|
|
{
|
|
'name': 'Tenant Group 6',
|
|
'slug': 'tenant-group-6',
|
|
'parent': parent_tenant_groups[1].pk,
|
|
},
|
|
]
|
|
|
|
|
|
class TenantTest(APIViewTestCases.APIViewTestCase):
|
|
model = Tenant
|
|
brief_fields = ['description', 'display', 'id', 'name', 'slug', 'url']
|
|
bulk_update_data = {
|
|
'group': None,
|
|
'description': 'New description',
|
|
}
|
|
|
|
@classmethod
|
|
def setUpTestData(cls):
|
|
|
|
tenant_groups = (
|
|
TenantGroup.objects.create(name='Tenant Group 1', slug='tenant-group-1'),
|
|
TenantGroup.objects.create(name='Tenant Group 2', slug='tenant-group-2'),
|
|
)
|
|
|
|
tenants = (
|
|
Tenant(name='Tenant 1', slug='tenant-1', group=tenant_groups[0]),
|
|
Tenant(name='Tenant 2', slug='tenant-2', group=tenant_groups[0]),
|
|
Tenant(name='Tenant 3', slug='tenant-3', group=tenant_groups[0]),
|
|
)
|
|
Tenant.objects.bulk_create(tenants)
|
|
|
|
cls.create_data = [
|
|
{
|
|
'name': 'Tenant 4',
|
|
'slug': 'tenant-4',
|
|
'group': tenant_groups[1].pk,
|
|
},
|
|
{
|
|
'name': 'Tenant 5',
|
|
'slug': 'tenant-5',
|
|
'group': tenant_groups[1].pk,
|
|
},
|
|
{
|
|
'name': 'Tenant 6',
|
|
'slug': 'tenant-6',
|
|
'group': tenant_groups[1].pk,
|
|
},
|
|
]
|
|
|
|
|
|
class ContactGroupTest(APIViewTestCases.APIViewTestCase):
|
|
model = ContactGroup
|
|
brief_fields = ['_depth', 'contact_count', 'description', 'display', 'id', 'name', 'slug', 'url']
|
|
bulk_update_data = {
|
|
'description': 'New description',
|
|
}
|
|
|
|
@classmethod
|
|
def setUpTestData(cls):
|
|
|
|
parent_contact_groups = (
|
|
ContactGroup.objects.create(name='Parent Contact Group 1', slug='parent-contact-group-1'),
|
|
ContactGroup.objects.create(name='Parent Contact Group 2', slug='parent-contact-group-2'),
|
|
)
|
|
|
|
ContactGroup.objects.create(name='Contact Group 1', slug='contact-group-1', parent=parent_contact_groups[0])
|
|
ContactGroup.objects.create(name='Contact Group 2', slug='contact-group-2', parent=parent_contact_groups[0])
|
|
ContactGroup.objects.create(name='Contact Group 3', slug='contact-group-3', parent=parent_contact_groups[0])
|
|
|
|
cls.create_data = [
|
|
{
|
|
'name': 'Contact Group 4',
|
|
'slug': 'contact-group-4',
|
|
'parent': parent_contact_groups[1].pk,
|
|
},
|
|
{
|
|
'name': 'Contact Group 5',
|
|
'slug': 'contact-group-5',
|
|
'parent': parent_contact_groups[1].pk,
|
|
},
|
|
{
|
|
'name': 'Contact Group 6',
|
|
'slug': 'contact-group-6',
|
|
'parent': parent_contact_groups[1].pk,
|
|
},
|
|
]
|
|
|
|
|
|
class ContactRoleTest(APIViewTestCases.APIViewTestCase):
|
|
model = ContactRole
|
|
brief_fields = ['description', 'display', 'id', 'name', 'slug', 'url']
|
|
create_data = [
|
|
{
|
|
'name': 'Contact Role 4',
|
|
'slug': 'contact-role-4',
|
|
},
|
|
{
|
|
'name': 'Contact Role 5',
|
|
'slug': 'contact-role-5',
|
|
},
|
|
{
|
|
'name': 'Contact Role 6',
|
|
'slug': 'contact-role-6',
|
|
},
|
|
]
|
|
bulk_update_data = {
|
|
'description': 'New description',
|
|
}
|
|
|
|
@classmethod
|
|
def setUpTestData(cls):
|
|
|
|
contact_roles = (
|
|
ContactRole(name='Contact Role 1', slug='contact-role-1'),
|
|
ContactRole(name='Contact Role 2', slug='contact-role-2'),
|
|
ContactRole(name='Contact Role 3', slug='contact-role-3'),
|
|
)
|
|
ContactRole.objects.bulk_create(contact_roles)
|
|
|
|
|
|
class ContactTest(APIViewTestCases.APIViewTestCase):
|
|
model = Contact
|
|
brief_fields = ['description', 'display', 'id', 'name', 'url']
|
|
bulk_update_data = {
|
|
'group': None,
|
|
'comments': 'New comments',
|
|
}
|
|
|
|
@classmethod
|
|
def setUpTestData(cls):
|
|
|
|
contact_groups = (
|
|
ContactGroup.objects.create(name='Contact Group 1', slug='contact-group-1'),
|
|
ContactGroup.objects.create(name='Contact Group 2', slug='contact-group-2'),
|
|
)
|
|
|
|
contacts = (
|
|
Contact(name='Contact 1', group=contact_groups[0]),
|
|
Contact(name='Contact 2', group=contact_groups[0]),
|
|
Contact(name='Contact 3', group=contact_groups[0]),
|
|
)
|
|
Contact.objects.bulk_create(contacts)
|
|
|
|
cls.create_data = [
|
|
{
|
|
'name': 'Contact 4',
|
|
'group': contact_groups[1].pk,
|
|
},
|
|
{
|
|
'name': 'Contact 5',
|
|
'group': contact_groups[1].pk,
|
|
},
|
|
{
|
|
'name': 'Contact 6',
|
|
},
|
|
]
|
|
|
|
|
|
class ContactAssignmentTest(APIViewTestCases.APIViewTestCase):
|
|
model = ContactAssignment
|
|
brief_fields = ['contact', 'display', 'id', 'priority', 'role', 'url']
|
|
bulk_update_data = {
|
|
'priority': ContactPriorityChoices.PRIORITY_INACTIVE,
|
|
}
|
|
|
|
@classmethod
|
|
def setUpTestData(cls):
|
|
|
|
sites = (
|
|
Site(name='Site 1', slug='site-1'),
|
|
Site(name='Site 2', slug='site-2'),
|
|
)
|
|
Site.objects.bulk_create(sites)
|
|
|
|
contacts = (
|
|
Contact(name='Contact 1'),
|
|
Contact(name='Contact 2'),
|
|
Contact(name='Contact 3'),
|
|
Contact(name='Contact 4'),
|
|
Contact(name='Contact 5'),
|
|
Contact(name='Contact 6'),
|
|
)
|
|
Contact.objects.bulk_create(contacts)
|
|
|
|
contact_roles = (
|
|
ContactRole(name='Contact Role 1', slug='contact-role-1'),
|
|
ContactRole(name='Contact Role 2', slug='contact-role-2'),
|
|
ContactRole(name='Contact Role 3', slug='contact-role-3'),
|
|
)
|
|
ContactRole.objects.bulk_create(contact_roles)
|
|
|
|
contact_assignments = (
|
|
ContactAssignment(object=sites[0], contact=contacts[0], role=contact_roles[0], priority=ContactPriorityChoices.PRIORITY_PRIMARY),
|
|
ContactAssignment(object=sites[0], contact=contacts[1], role=contact_roles[1], priority=ContactPriorityChoices.PRIORITY_SECONDARY),
|
|
ContactAssignment(object=sites[0], contact=contacts[2], role=contact_roles[2], priority=ContactPriorityChoices.PRIORITY_TERTIARY),
|
|
)
|
|
ContactAssignment.objects.bulk_create(contact_assignments)
|
|
|
|
cls.create_data = [
|
|
{
|
|
'object_type': 'dcim.site',
|
|
'object_id': sites[1].pk,
|
|
'contact': contacts[3].pk,
|
|
'role': contact_roles[0].pk,
|
|
'priority': ContactPriorityChoices.PRIORITY_PRIMARY,
|
|
},
|
|
{
|
|
'object_type': 'dcim.site',
|
|
'object_id': sites[1].pk,
|
|
'contact': contacts[4].pk,
|
|
'role': contact_roles[1].pk,
|
|
'priority': ContactPriorityChoices.PRIORITY_SECONDARY,
|
|
},
|
|
{
|
|
'object_type': 'dcim.site',
|
|
'object_id': sites[1].pk,
|
|
'contact': contacts[5].pk,
|
|
'role': contact_roles[2].pk,
|
|
'priority': ContactPriorityChoices.PRIORITY_TERTIARY,
|
|
},
|
|
]
|