summaryrefslogtreecommitdiffstats
path: root/engagements/tests/test_views.py
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--engagements/tests/test_views.py91
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)