| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287 |
- 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 = {
- 'groups': [],
- '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'),
- Contact(name='Contact 2'),
- Contact(name='Contact 3'),
- )
- Contact.objects.bulk_create(contacts)
- contacts[0].groups.add(contact_groups[0])
- contacts[1].groups.add(contact_groups[0])
- contacts[2].groups.add(contact_groups[0])
- cls.create_data = [
- {
- 'name': 'Contact 4',
- 'groups': [contact_groups[1].pk],
- },
- {
- 'name': 'Contact 5',
- },
- {
- 'name': 'Contact 6',
- },
- ]
- class ContactAssignmentTest(APIViewTestCases.APIViewTestCase):
- model = ContactAssignment
- brief_fields = ['contact', 'display', 'id', 'priority', 'role', 'url']
- bulk_update_data = {
- 'priority': ContactPriorityChoices.PRIORITY_INACTIVE,
- }
- user_permissions = ('tenancy.view_contact', )
- @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,
- },
- ]
|