Ejemplo n.º 1
0
 def setUp(self):
     self.fixture = fixtures.ServiceFixture()
     self.project = self.fixture.project
     self.associated_certification = factories.ServiceCertificationFactory()
     self.project.certifications.add(self.associated_certification)
     self.new_certification = factories.ServiceCertificationFactory()
     self.url = factories.ProjectFactory.get_url(
         self.project, action='update_certifications')
Ejemplo n.º 2
0
    def test_certification_state_is_erred_if_project_certifications_is_not_a_subset_of_service_certifications(
            self):
        self.client.force_authenticate(self.fixture.owner)
        link = self.fixture.service_project_link
        service_certification = factories.ServiceCertificationFactory()
        project_certification = factories.ServiceCertificationFactory()
        link.service.settings.certifications.add(service_certification)
        link.project.certifications.add(project_certification)
        url = factories.ProjectFactory.get_url(link.project)

        response = self.client.get(url)

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertIsNotNone('validation_state', response.data['services'][0])
        self.assertEqual(response.data['services'][0]['validation_state'],
                         "ERRED")
Ejemplo n.º 3
0
    def test_openstack_tenant_settings_certifications_are_not_copied_if_scope_is_not_tenant(self):
        instance = factories.InstanceFactory()
        certification = structure_factories.ServiceCertificationFactory()
        instance.service_project_link.service.settings.certifications.add(certification)

        settings = factories.OpenStackTenantServiceSettingsFactory(scope=instance)

        self.assertFalse(settings.certifications.exists())
Ejemplo n.º 4
0
    def test_link_validation_state_is_ERRED_if_service_does_not_satisfy_project_certifications(
            self):
        certification = factories.ServiceCertificationFactory()
        self.assertEqual(self.link.States.OK, self.link.validation_state)

        self.link.project.certifications.add(certification)

        self.assertEqual(self.link.States.ERRED, self.link.validation_state)
Ejemplo n.º 5
0
    def test_link_validation_state_is_OK_if_project_certifications_is_a_subset_of_service_certifications(
            self):
        certifications = factories.ServiceCertificationFactory.create_batch(2)
        self.link.project.certifications.add(*certifications)
        certifications.append(factories.ServiceCertificationFactory())

        self.link.service.settings.certifications.add(*certifications)

        self.assertEqual(self.link.States.OK, self.link.validation_state)
Ejemplo n.º 6
0
    def test_service_certification_state_is_ok_if_project_certifications_is_a_subset_of_service_certifications(
        self,
    ):
        self.client.force_authenticate(self.fixture.owner)
        link = self.fixture.service_project_link
        project_certifications = [factories.ServiceCertificationFactory()]
        service_certifications = project_certifications + [
            factories.ServiceCertificationFactory()
        ]
        link.service.settings.certifications.add(*service_certifications)
        link.project.certifications.add(*project_certifications)
        url = factories.ProjectFactory.get_url(link.project)

        response = self.client.get(url)

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertIsNotNone('validation_state', response.data['services'][0])
        self.assertEqual(response.data['services'][0]['validation_state'], "OK")
Ejemplo n.º 7
0
    def test_openstack_tenant_service_certifications_are_removed_if_tenant_settings_certifications_are_removed(self):
        tenant = openstack_factories.TenantFactory()
        tenant_service = factories.OpenStackTenantServiceFactory(settings__scope=tenant)
        new_certification = structure_factories.ServiceCertificationFactory()

        tenant.service_project_link.service.settings.certifications.add(new_certification)
        self.assertEqual(tenant_service.settings.certifications.count(), 1)
        tenant.service_project_link.service.settings.certifications.clear()

        self.assertEqual(tenant.service_project_link.service.settings.certifications.count(), 0)
        self.assertEquals(tenant_service.settings.certifications.count(), 0)
Ejemplo n.º 8
0
    def test_openstack_tenant_settings_certifications_are_not_copied_on_update(self):
        tenant = openstack_factories.TenantFactory()
        certification = structure_factories.ServiceCertificationFactory()
        tenant.service_project_link.service.settings.certifications.add(certification)
        settings = factories.OpenStackTenantServiceSettingsFactory(scope=tenant)
        self.assertEquals(settings.certifications.count(), 1)

        settings.name = 'new_name'
        settings.save()

        self.assertEquals(settings.certifications.count(), 1)
        self.assertEquals(settings.certifications.first().pk, certification.pk)
Ejemplo n.º 9
0
    def test_openstack_tenant_service_certifications_are_update_when_tenant_settings_certification_are_added(self):
        tenant = openstack_factories.TenantFactory()
        tenant_service1 = factories.OpenStackTenantServiceFactory(settings__scope=tenant)
        tenant_service2 = factories.OpenStackTenantServiceFactory(settings__scope=tenant)
        self.assertEqual(tenant_service1.settings.certifications.count(), 0)
        self.assertEqual(tenant_service2.settings.certifications.count(), 0)
        new_certification = structure_factories.ServiceCertificationFactory()

        tenant.service_project_link.service.settings.certifications.add(new_certification)

        self.assertTrue(tenant_service1.settings.certifications.filter(pk__in=[new_certification.pk]).exists())
        self.assertTrue(tenant_service2.settings.certifications.filter(pk__in=[new_certification.pk]).exists())
Ejemplo n.º 10
0
    def test_resource_cannot_be_created_for_invalid_service_project_link(self):
        self.fixture.project.certifications.add(factories.ServiceCertificationFactory())
        self.assertFalse(self.fixture.service_project_link.is_valid)

        payload = {
            'service_project_link': factories.TestServiceProjectLinkFactory.get_url(self.fixture.service_project_link),
            'name': 'impossible resource',
        }
        url = factories.TestNewInstanceFactory.get_list_url()

        self.client.force_authenticate(user=self.fixture.staff)
        response = self.client.post(url, payload)

        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
        self.assertIn('service_project_link', response.data)
Ejemplo n.º 11
0
    def test_user_can_specify_certifications(self):
        self.client.force_authenticate(self.fixture.owner)
        data = self._get_valid_project_payload(self.fixture.customer)
        certificate = factories.ServiceCertificationFactory()
        data['certifications'] = [{
            "url":
            factories.ServiceCertificationFactory.get_url(certificate)
        }]

        response = self.client.post(factories.ProjectFactory.get_list_url(),
                                    data)

        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
        self.assertTrue(
            Project.objects.filter(name=data['name'],
                                   customer=self.fixture.customer).exists())
        self.assertTrue(
            models.ServiceCertification.objects.filter(
                projects__name=data['name'], name=certificate.name).exists())