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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
import datetime
from http import HTTPStatus
import pytest
from django.test import RequestFactory
from django.urls import reverse
from engagements import models, views
from engagements.models import EngagementStrategy, RegulatoryCycle
from engagements.utils import populate_database
pytestmark = pytest.mark.django_db
@pytest.fixture
def test_data():
return populate_database()
@pytest.fixture
def request_factory():
return RequestFactory()
def test_dscs_for_ep(client, test_data, request_factory):
org = test_data["orgs"][0]
et = models.EngagementType.objects.get(name="INSPECTION")
si = test_data["sub_instruments"][0]
si2 = test_data["sub_instruments"][2]
si3 = test_data["sub_instruments"][3]
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, si2, si3)
url = reverse("engagements:plan_for_org", kwargs={"orgslug": org.slug})
client.force_login(test_data["superuser"])
response = client.get(url)
assert response.status_code == HTTPStatus.OK
assert response.context["entity"]
assert response.context["entity"].name == org.name
assert si in response.context["dscs"]
assert si2 in response.context["dscs"]
assert si3 in response.context["dscs"]
def test_get_blank_form(client, test_data, request_factory):
url = reverse("engagements:effort_create", kwargs={"eid": 1, "etype": "PLANNING"})
client.force_login(test_data["superuser"])
request = request_factory.get(url)
request.user = test_data["superuser"]
response = views.engagement_effort_create(request, eid=1, etype="PLANNING")
assert response.status_code == HTTPStatus.OK
# def test_get_form_to_create_engagement_strategy(client, request_factory):
# url = reverse("engagements:es-create")
# client.force_login(test_data["superuser"])
# request = request_factory.get(url)
# request.user = test_data["superuser"]
# response = views.CreateEngagementStrategy()
# assert response.status_code == HTTPStatus.OK
def test_create_engagement_strategy(client, user, org, regulatory_cycles):
# Define the URL for the create view
url = reverse("engagements:es-create")
client.force_login(user)
sy = RegulatoryCycle.objects.get(start_date__year="2022")
ey = RegulatoryCycle.objects.get(start_date__year="2024")
# Define sample data for the form
data = {
"organisation": org,
"start_year": sy,
"end_year": ey,
"description": "Example description",
"inspector_sign_off": "2022-01-10",
"owned_by": user,
"reviewed_by": user,
"management_sign_off": "2022-02-10",
"status": "DRAFT",
}
# Send a POST request to the view
response = client.post(url, data)
# Check that the response redirects (status code 302) after successful creation
assert response.status_code == 200
# Check that a new EngagementStrategy object was created in the database
assert EngagementStrategy.objects.filter(organisation__name="MOD").exists()
# def test_create_view_uses_correct_form(self):
# # Define the URL for the create view
# url = reverse("engagement_strategy_create")
#
# # Send a GET request to the view
# response = self.client.get(url)
#
# # Check that the response uses the correct form class
# self.assertIsInstance(response.context["form"], EngagementStrategyCreateForm)
|