Beispiel #1
0
    def setUp(self):

        self.client = Client()

        tenantgroup = TenantGroup(name='Tenant Group 1', slug='tenant-group-1')
        tenantgroup.save()

        Tenant.objects.bulk_create([
            Tenant(name='Tenant 1', slug='tenant-1', group=tenantgroup),
            Tenant(name='Tenant 2', slug='tenant-2', group=tenantgroup),
            Tenant(name='Tenant 3', slug='tenant-3', group=tenantgroup),
        ])
Beispiel #2
0
    def setUp(self):

        self.client = Client()

        tenantgroup = TenantGroup(name='Tenant Group 1', slug='tenant-group-1')
        tenantgroup.save()

        Tenant.objects.bulk_create([
            Tenant(name='Tenant 1', slug='tenant-1', group=tenantgroup),
            Tenant(name='Tenant 2', slug='tenant-2', group=tenantgroup),
            Tenant(name='Tenant 3', slug='tenant-3', group=tenantgroup),
        ])
    def setUp(self):
        user = create_test_user(permissions=['tenancy.view_tenant'])
        self.client = Client()
        self.client.force_login(user)

        tenantgroup = TenantGroup(name='Tenant Group 1', slug='tenant-group-1')
        tenantgroup.save()

        Tenant.objects.bulk_create([
            Tenant(name='Tenant 1', slug='tenant-1', group=tenantgroup),
            Tenant(name='Tenant 2', slug='tenant-2', group=tenantgroup),
            Tenant(name='Tenant 3', slug='tenant-3', group=tenantgroup),
        ])
Beispiel #4
0
    def test_complete_tenant(self):

        group = TenantGroup(name="Corporations")
        group.save()
        tenant = Tenant(name="ACME",
                        slug="a-c-m-e",
                        description="The ACME Corp",
                        group=group)
        tenant.save()
        self.assertEquals("ACME", tenant.name)
        self.assertEquals("a-c-m-e", tenant.slug)
        self.assertEquals("The ACME Corp", tenant.description)
        self.assertEquals(group, tenant.group)
Beispiel #5
0
 def test_group_has_parent_group(self):
     parent = TenantGroup(name="parent")
     parent.save()
     child = TenantGroup(name="child1", parent=parent)
     child.save()
Beispiel #6
0
 def test_slug_is_generated_on_save(self):
     group = TenantGroup(name="OPS")
     self.assertEquals("", group.slug)
     group.save()
     self.assertEquals("ops", group.slug)
    def handle(self, *args, **options):
        dry_run = options['dry_run']
        quiet = options['quiet']

        tenant_obj_type = ContentType.objects.get_for_model(Tenant)
        device_obj_type = ContentType.objects.get_for_model(Device)

        # Create a new Tenant Group called Members.
        try:
            tg = TenantGroup.objects.get(name="Members")
        except TenantGroup.DoesNotExist:
            tg = TenantGroup(name='Members')
            if dry_run:
                self.stdout.write(
                    'Would have created a Tenant Group called Members')
            else:
                tg.save()
                if not quiet:
                    self.stdout.write('Created Tenant Group called Members')

        # Create a new Custom Field called MemberType
        # and add it to Tenant.
        try:
            member_type = CustomField.objects.get(name="member_type")
        except CustomField.DoesNotExist:
            member_type = CustomField(
                type=CustomFieldTypeChoices.TYPE_SELECT,
                name='member_type',
                required=False,
                choices=MEMBER_TYPES,
            )
            if dry_run:
                self.stdout.write(
                    'Would have created a Custom Field called member_type')
            else:
                member_type.save()
                member_type.content_types.set([tenant_obj_type])
                if not quiet:
                    self.stdout.write(
                        'Created Custom Field called member_type')

        # Create a new Custom Field called crm_id
        # and add it to Tenant.
        try:
            crm_id = CustomField.objects.get(name="crm_id")
        except CustomField.DoesNotExist:
            crm_id = CustomField(
                type=CustomFieldTypeChoices.TYPE_TEXT,
                name='crm_id',
                required=False,
                default='',
            )
            if dry_run:
                self.stdout.write(
                    'Would have created a Custom Field called crm_id')
            else:
                crm_id.save()
                crm_id.content_types.set([tenant_obj_type])
                if not quiet:
                    self.stdout.write('Created Custom Field called crm_id')

        # Create a new Custom Field called active
        # and add it to Tenant.
        try:
            active = CustomField.objects.get(name="active")
        except CustomField.DoesNotExist:
            active = CustomField(
                type=CustomFieldTypeChoices.TYPE_BOOLEAN,
                name='active',
                required=False,
                default=True,
            )
            if dry_run:
                self.stdout.write(
                    'Would have created a Custom Field called active')
            else:
                active.save()
                active.content_types.set([tenant_obj_type])
                if not quiet:
                    self.stdout.write('Created Custom Field called active')

        # Create a new Custom Field called legacy_id
        # and add it to Device
        try:
            legacy_id = CustomField.objects.get(name="legacy_id")
        except CustomField.DoesNotExist:
            legacy_id = CustomField(
                type=CustomFieldTypeChoices.TYPE_TEXT,
                name='legacy_id',
                required=False,
                default='',
            )
            if dry_run:
                self.stdout.write(
                    'Would have created a Custom Field called legacy_id')
            else:
                legacy_id.save()
                legacy_id.content_types.set([device_obj_type])
                if not quiet:
                    self.stdout.write('Created Custom Field called legacy_id')
Beispiel #8
0
    def test_create_configcontext(self):

        region1 = Region.objects.create(name='Test Region 1',
                                        slug='test-region-1')
        region2 = Region.objects.create(name='Test Region 2',
                                        slug='test-region-2')
        site1 = Site.objects.create(name='Test Site 1', slug='test-site-1')
        site2 = Site.objects.create(name='Test Site 2', slug='test-site-2')
        role1 = DeviceRole.objects.create(name='Test Role 1',
                                          slug='test-role-1')
        role2 = DeviceRole.objects.create(name='Test Role 2',
                                          slug='test-role-2')
        platform1 = Platform.objects.create(name='Test Platform 1',
                                            slug='test-platform-1')
        platform2 = Platform.objects.create(name='Test Platform 2',
                                            slug='test-platform-2')
        tenantgroup1 = TenantGroup(name='Test Tenant Group 1',
                                   slug='test-tenant-group-1')
        tenantgroup1.save()
        tenantgroup2 = TenantGroup(name='Test Tenant Group 2',
                                   slug='test-tenant-group-2')
        tenantgroup2.save()
        tenant1 = Tenant.objects.create(name='Test Tenant 1',
                                        slug='test-tenant-1')
        tenant2 = Tenant.objects.create(name='Test Tenant 2',
                                        slug='test-tenant-2')
        tag1 = Tag.objects.create(name='Test Tag 1', slug='test-tag-1')
        tag2 = Tag.objects.create(name='Test Tag 2', slug='test-tag-2')

        data = {
            'name': 'Test Config Context 4',
            'weight': 1000,
            'regions': [region1.pk, region2.pk],
            'sites': [site1.pk, site2.pk],
            'roles': [role1.pk, role2.pk],
            'platforms': [platform1.pk, platform2.pk],
            'tenant_groups': [tenantgroup1.pk, tenantgroup2.pk],
            'tenants': [tenant1.pk, tenant2.pk],
            'tags': [tag1.slug, tag2.slug],
            'data': {
                'foo': 'XXX'
            }
        }

        url = reverse('extras-api:configcontext-list')
        response = self.client.post(url, data, format='json', **self.header)

        self.assertHttpStatus(response, status.HTTP_201_CREATED)
        self.assertEqual(ConfigContext.objects.count(), 4)
        configcontext4 = ConfigContext.objects.get(pk=response.data['id'])
        self.assertEqual(configcontext4.name, data['name'])
        self.assertEqual(region1.pk, data['regions'][0])
        self.assertEqual(region2.pk, data['regions'][1])
        self.assertEqual(site1.pk, data['sites'][0])
        self.assertEqual(site2.pk, data['sites'][1])
        self.assertEqual(role1.pk, data['roles'][0])
        self.assertEqual(role2.pk, data['roles'][1])
        self.assertEqual(platform1.pk, data['platforms'][0])
        self.assertEqual(platform2.pk, data['platforms'][1])
        self.assertEqual(tenantgroup1.pk, data['tenant_groups'][0])
        self.assertEqual(tenantgroup2.pk, data['tenant_groups'][1])
        self.assertEqual(tenant1.pk, data['tenants'][0])
        self.assertEqual(tenant2.pk, data['tenants'][1])
        self.assertEqual(tag1.slug, data['tags'][0])
        self.assertEqual(tag2.slug, data['tags'][1])
        self.assertEqual(configcontext4.data, data['data'])