Example #1
0
 def test_delete_network_provider_teammate(self):
     provider = base.DataProviderFactory(created_by=self.creator)
     self.check_permission_for_teammate(
         method="GET",
         url=reverse("provider:delete_network", kwargs={"pk": provider.pk}),
     )
Example #2
0
 def test_list_providers(self):
     self.erase_logging_file()
     base.DataProviderFactory(created_by=self.creator)
     resp = self.client.get(reverse("provider:list"))
     self.assertTemplateUsed(resp, "data_provider/list.html")
     self.logging()
Example #3
0
 def test_delete_non_network_provider_teammate(self):
     provider = base.DataProviderFactory(created_by=self.creator)
     self.check_permission_for_teammate(method='GET',
                                        url=reverse(
                                            'provider:delete_non_network',
                                            kwargs={'pk': provider.pk}))
Example #4
0
 def test_delete_network_provider_auth(self):
     provider = base.DataProviderFactory(created_by=self.creator)
     self.check_authenticated_user_redirect_all_methods(
         url=reverse("provider:delete_network", kwargs={"pk": provider.pk}),
         redirect_url=reverse("provider:list"),
     )
Example #5
0
 def test_delete_non_network_provider_non_auth(self):
     provider = base.DataProviderFactory(created_by=self.creator)
     self.check_user_redirect_all_methods(
         url=reverse('provider:delete_non_network',
                     kwargs={'pk': provider.pk}),
         redirect_url=self.redirect_login_url)
Example #6
0
 def test_edit_non_network_provider_auth(self):
     provider = base.DataProviderFactory(created_by=self.creator)
     self.check_authenticated_user_redirect_all_methods(
         url=reverse('provider:edit_non_network',
                     kwargs={'pk': provider.pk}),
         redirect_url=reverse('provider:list'))
Example #7
0
 def test_detail_provider_non_auth(self):
     provider = base.DataProviderFactory(created_by=self.creator)
     self.check_user_redirect(method='GET',
                              url=reverse('provider:detail',
                                          kwargs={'pk': provider.pk}),
                              redirect_url=self.redirect_login_url)
Example #8
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)
Example #9
0
    def test_transition(self):
        self.erase_logging_file()
        self.login_creator()
        data = base.DataFactory(name="Test data", created_by=self.creator)
        provider = base.DataProviderFactory(name="Test provider",
                                            created_by=self.creator)
        data_provider = base.DataProviderRelationFactory(
            data=data, created_by=self.creator, provider=provider)
        items = [data, data_provider]
        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
            },
            {
                "source": "ready",
                "target": "valid",
                "user": self.creator
            },
        ]

        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(
                    "data:transition",
                    kwargs={
                        "source": transition["source"],
                        "target": transition["target"],
                        "pk": data.pk,
                    },
                ))
            self.assertRedirects(
                response, reverse("data:detail", kwargs={"pk": data.pk}))
            for item in items:
                getattr(item, "refresh_from_db")()
                self.assertEqual((getattr(item, "state")).name,
                                 transition["target"])
            if transition["target"] == "valid":
                for item in items:
                    item.state = transition["source"]
                    item.save()
        self.logging(check_username=False)