1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
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)
|