diff options
Diffstat (limited to 'engagements/tests/test_views.py')
-rw-r--r-- | engagements/tests/test_views.py | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/engagements/tests/test_views.py b/engagements/tests/test_views.py new file mode 100644 index 0000000..f25eb3a --- /dev/null +++ b/engagements/tests/test_views.py @@ -0,0 +1,91 @@ +import datetime +from http import HTTPStatus + +from django.test import RequestFactory, TestCase +from django.urls import reverse + +from engagements import models, views +from engagements.utils import populate_database + + +class TestModels(TestCase): + @classmethod + def setUpTestData(cls): + cls.request = RequestFactory() # for use in _ep_request_factory test + cls.data = populate_database() + + def test_dscs_for_ep(self): + org = self.data["orgs"][0] + # we set up an engagement and effort for this org + et = models.EngagementType.objects.get(name="INSPECTION") + si = self.data["sub_instruments"][0] + si2 = self.data["sub_instruments"][2] + si3 = self.data["sub_instruments"][3] + # si_not = self.data["sub_instruments"][1] + engagement = models.Engagement.objects.create( + proposed_start_date=datetime.date(2022, 10, 10), + proposed_end_date=datetime.date(2022, 10, 10), + engagement_type=et, + external_party=org, + ) + ef1 = models.EngagementEffort.objects.create( + is_planned=True, + effort_type="REGULATION", + proposed_start_date=datetime.date(2022, 10, 10), + proposed_end_date=datetime.date(2022, 10, 10), + engagement=engagement, + ) + ef1.sub_instruments.add(si) # DSC 1 + ef1.sub_instruments.add(si2) # DSC 3 + ef1.sub_instruments.add(si3) # DSC 4 + ef1.save() + url = reverse("engagements:plan_for_org", kwargs={"orgslug": org.slug}) + self.client.force_login(self.data["superuser"]) + response = self.client.get(url) + self.assertEqual(response.status_code, HTTPStatus.OK) + self.assertTrue(response.context["entity"]) + self.assertEqual(response.context["entity"].name, org.name) + self.assertIn(si, response.context["dscs"]) + self.assertIn(si2, response.context["dscs"]) + self.assertIn(si3, response.context["dscs"]) + self.assertEqual(response.context["dscs"].count(), 3) + # self.assertNotIn(si_not, response.context["dscs"]) + + def test_dscs_for_ep_request_factory(self): + """ + On the EP page, we expect to see a list of all DSCs related to effort + for this organisation. + + Included this here for reference + """ + org = self.data["orgs"][0] + url = reverse("engagements:plan_for_org", kwargs={"orgslug": org.slug}) + request = self.request.get(url) + request.user = self.data["superuser"] + response = views.engagement_plan_for(request, org.slug) + self.assertEqual(response.status_code, HTTPStatus.OK) + + +class TestEngagementEffortView(TestCase): + @classmethod + def setUpTestData(cls): + cls.request = RequestFactory() # for use in _ep_request_factory test + cls.data = populate_database() + + def test_get_blank_form(self): + url = reverse("engagements:effort_create", kwargs={"eid": 1, "etype": "PLANNING"}) + self.client.force_login(self.data["superuser"]) + request = self.request.get(url) + request.user = self.data["superuser"] + response = views.engagement_effort_create(request, eid=1, etype="PLANNING") + self.assertEqual(response.status_code, HTTPStatus.OK) + + # def test_post_data(self): + # url = reverse( + # "engagements:effort_create", kwargs={"eid": 1, "etype": "PLANNING"} + # ) + # self.client.force_login(self.data["superuser"]) + # request = self.request.post(url, {"proposed_start_date": "toss"}) + # request.user = self.data["superuser"] + # response = views.engagement_effort_create(request, eid=1, etype="PLANNING") + # self.assertEqual(response.status_code, HTTPStatus.OK) |