Beispiel #1
0
    def test_edit_non_network_provider(self):
        self.login_creator()
        self.erase_logging_file()
        data = self._DATA
        data["is_network"] = False
        details_data = self._DETAILS_DATA
        data.update(**details_data)
        provider = base.DataProviderFactory(is_network=False,
                                            created_by=self.creator)
        details = base.DataProviderDetailsFactory(data_provider=provider,
                                                  created_by=self.creator)
        resp = self.client.post(
            reverse("provider:edit_non_network", kwargs={"pk": provider.pk}),
            data)

        self.assertEqual(resp.status_code, 302)
        provider.refresh_from_db()
        data["networks"] = []
        self.check_object(provider, data)
        details.refresh_from_db()
        details_data.pop("provider_type")
        for attr in details_data.keys():
            self.assertEqual(getattr(details, attr), data[attr])
        self.assertEqual(
            getattr(details, "provider_type").pk, data["provider_type"])
        self.logging()
Beispiel #2
0
    def test_transition_changes_requested_feedback(self):
        self.erase_logging_file()
        self.login_creator()
        provider = base.DataProviderFactory(
            is_network=True,
            state="ready",
            name="Test provider",
            created_by=self.creator,
        )
        provider_details = base.DataProviderDetailsFactory(
            data_provider=provider, state="ready", created_by=self.creator)
        items = [provider, provider_details]
        for item in items:
            self.assertEqual((getattr(item, "state")).name, "ready")

        self.client.force_login(self.other_user)
        self.client.post(
            reverse(
                "provider:transition",
                kwargs={
                    "source": "ready",
                    "target": "changes",
                    "pk": provider.pk
                },
            ),
            {"feedback": "this is a feedback test"},
        )
        getattr(provider, "refresh_from_db")()
        self.assertEqual(provider.state, "changes")
        self.assertEqual(provider.feedback, "this is a feedback test")
Beispiel #3
0
 def test_detail_provider_non_network(self):
     self.erase_logging_file()
     self.login_creator()
     provider = base.DataProviderFactory(is_network=False,
                                         created_by=self.creator)
     base.DataProviderDetailsFactory(data_provider=provider,
                                     created_by=self.creator)
     resp = self.client.get(
         reverse("provider:detail", kwargs={"pk": provider.pk}))
     self.assertEqual(resp.context["provider"], provider)
     self.logging()
Beispiel #4
0
 def test_delete_data_provider_non_network_related_objects(self):
     self.login_creator()
     provider = base.DataProviderFactory(is_network=False,
                                         created_by=self.creator)
     data = base.DataFactory(created_by=self.creator)
     base.DataProviderDetailsFactory(data_provider=provider,
                                     created_by=self.creator)
     base.DataProviderRelationFactory(provider=provider,
                                      data=data,
                                      created_by=self.creator)
     self.client.post(
         reverse("provider:delete_non_network", kwargs={"pk": provider.pk}))
     self.check_objects_are_soft_deleted(models.DataProviderDetails)
     self.check_objects_are_soft_deleted(models.DataProviderRelation)
Beispiel #5
0
 def test_edit_non_network_provider_fail_detail_form_validation(self):
     self.login_creator()
     self.erase_logging_file()
     data = self._DATA
     data["is_network"] = False
     provider = base.DataProviderFactory(is_network=False,
                                         created_by=self.creator)
     base.DataProviderDetailsFactory(data_provider=provider,
                                     created_by=self.creator)
     resp = self.client.post(
         reverse("provider:edit_non_network", kwargs={"pk": provider.pk}),
         data)
     detail_errors = {
         field: self.REQUIRED_ERROR
         for field in self.details_required_fields
     }
     self.assertDictEqual(resp.context["details"].errors, detail_errors)
Beispiel #6
0
    def test_transition_existent_state_no_transition_non_network(self):
        self.login_creator()
        provider = base.DataProviderFactory(is_network=False,
                                            name='Test provider',
                                            created_by=self.creator)
        provider_details = base.DataProviderDetailsFactory(
            data_provider=provider, created_by=self.creator)
        items = ([provider, provider_details])
        response = self.client.post(
            reverse('provider:transition',
                    kwargs={
                        'source': 'draft',
                        'target': 'valid',
                        'pk': provider.pk
                    }))
        self.assertEqual(response.status_code, 404)

        for item in items:
            getattr(item, 'refresh_from_db')()
            self.assertEqual((getattr(item, 'state')).name, 'draft')
Beispiel #7
0
 def test_transition_with_draft_data_non_network(self):
     self.erase_logging_file()
     self.login_creator()
     provider = base.DataProviderFactory(is_network=False,
                                         name='Test provider',
                                         created_by=self.creator)
     provider_details = base.DataProviderDetailsFactory(
         data_provider=provider, created_by=self.creator)
     items = ([provider, provider_details])
     for item in items:
         self.assertEqual((getattr(item, 'state')).name, 'draft')
     self.client.force_login(self.creator)
     response = self.client.get(
         reverse('provider:transition',
                 kwargs={
                     'source': 'draft',
                     'target': 'ready',
                     'pk': provider.pk
                 }))
     self.assertTrue(response.status_code, 200)
Beispiel #8
0
    def test_transition_existent_state_no_transition_non_network(self):
        self.login_creator()
        provider = base.DataProviderFactory(is_network=False,
                                            name="Test provider",
                                            created_by=self.creator)
        provider_details = base.DataProviderDetailsFactory(
            data_provider=provider, created_by=self.creator)
        items = [provider, provider_details]
        response = self.client.post(
            reverse(
                "provider:transition",
                kwargs={
                    "source": "draft",
                    "target": "valid",
                    "pk": provider.pk
                },
            ))
        self.assertEqual(response.status_code, 404)

        for item in items:
            getattr(item, "refresh_from_db")()
            self.assertEqual((getattr(item, "state")).name, "draft")
Beispiel #9
0
 def test_transition_with_draft_data_non_network(self):
     self.erase_logging_file()
     self.login_creator()
     provider = base.DataProviderFactory(is_network=False,
                                         name="Test provider",
                                         created_by=self.creator)
     provider_details = base.DataProviderDetailsFactory(
         data_provider=provider, created_by=self.creator)
     items = [provider, provider_details]
     for item in items:
         self.assertEqual((getattr(item, "state")).name, "draft")
     self.client.force_login(self.creator)
     response = self.client.get(
         reverse(
             "provider:transition",
             kwargs={
                 "source": "draft",
                 "target": "ready",
                 "pk": provider.pk
             },
         ))
     self.assertTrue(response.status_code, 200)
Beispiel #10
0
    def test_transition_non_network(self):
        self.erase_logging_file()
        self.login_creator()
        provider = base.DataProviderFactory(is_network=False,
                                            name="Test provider",
                                            created_by=self.creator)
        provider_details = base.DataProviderDetailsFactory(
            data_provider=provider, created_by=self.creator)
        items = [provider, provider_details]
        for item in items:
            self.assertEqual((getattr(item, "state")).name, "draft")

        transitions = [
            {
                "source": "draft",
                "target": "ready",
                "user": self.creator
            },
            {
                "source": "ready",
                "target": "draft",
                "user": self.creator
            },
            {
                "source": "draft",
                "target": "ready",
                "user": self.creator
            },
            {
                "source": "ready",
                "target": "changes",
                "user": self.other_user
            },
            {
                "source": "changes",
                "target": "draft",
                "user": self.creator
            },
            {
                "source": "draft",
                "target": "ready",
                "user": self.creator
            },
            {
                "source": "ready",
                "target": "valid",
                "user": self.other_user
            },
        ]

        for transition in transitions:
            for item in items:
                self.assertEqual((getattr(item, "state")).name,
                                 transition["source"])
            self.client.force_login(transition["user"])
            response = self.client.post(
                reverse(
                    "provider:transition",
                    kwargs={
                        "source": transition["source"],
                        "target": transition["target"],
                        "pk": provider.pk,
                    },
                ))
            self.assertRedirects(
                response, reverse("provider:detail",
                                  kwargs={"pk": provider.pk}))
            for item in items:
                getattr(item, "refresh_from_db")()
                self.assertEqual((getattr(item, "state")).name,
                                 transition["target"])
        self.logging(check_username=False)
Beispiel #11
0
    def test_transition_non_network(self):
        self.erase_logging_file()
        self.login_creator()
        provider = base.DataProviderFactory(is_network=False,
                                            name='Test provider',
                                            created_by=self.creator)
        provider_details = base.DataProviderDetailsFactory(
            data_provider=provider, created_by=self.creator)
        items = ([provider, provider_details])
        for item in items:
            self.assertEqual((getattr(item, 'state')).name, 'draft')

        transitions = [
            {
                'source': 'draft',
                'target': 'ready',
                'user': self.creator
            },
            {
                'source': 'ready',
                'target': 'draft',
                'user': self.creator
            },
            {
                'source': 'draft',
                'target': 'ready',
                'user': self.creator
            },
            {
                'source': 'ready',
                'target': 'changes',
                'user': self.other_user
            },
            {
                'source': 'changes',
                'target': 'draft',
                'user': self.creator
            },
            {
                'source': 'draft',
                'target': 'ready',
                'user': self.creator
            },
            {
                'source': 'ready',
                'target': 'valid',
                'user': self.other_user
            },
        ]

        for transition in transitions:
            for item in items:
                self.assertEqual((getattr(item, 'state')).name,
                                 transition['source'])
            self.client.force_login(transition['user'])
            response = self.client.post(
                reverse('provider:transition',
                        kwargs={
                            'source': transition['source'],
                            'target': transition['target'],
                            'pk': provider.pk
                        }))
            self.assertRedirects(
                response, reverse('provider:detail',
                                  kwargs={'pk': provider.pk}))
            for item in items:
                getattr(item, 'refresh_from_db')()
                self.assertEqual((getattr(item, 'state')).name,
                                 transition['target'])
        self.logging(check_username=False)