Skip to content

Commit 8fc0f42

Browse files
committed
PPHA-475: Switch out Participant for NHS Login User
Stop using Participant with unique id and begin using NHS Login user to associate ResponseSet records directly with a verified individual TODO: Replace POST /start with a more generic way of creating RsponseSet objects compatible with NHS Login journeys
1 parent b06c3b7 commit 8fc0f42

File tree

70 files changed

+517
-1028
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+517
-1028
lines changed

lung_cancer_screening/core/tests/acceptance/helpers/user_interaction_helpers.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
from playwright.sync_api import expect
22
from .test_helpers import check_labels
33

4-
def setup_participant(page, live_server_url):
5-
participant_id = 'abc123'
4+
def setup_user(page, live_server_url):
5+
user_id = 'abc123'
66
page.goto(f"{live_server_url}/start")
7-
fill_in_and_submit_participant_id(page, participant_id)
7+
fill_in_and_submit_user_id(page, user_id)
88

9-
def fill_in_and_submit_participant_id(page, participant_id):
10-
page.fill("input[name='participant_id']", participant_id)
9+
def fill_in_and_submit_user_id(page, user_id):
10+
page.fill("input[name='user_id']", user_id)
1111
page.click('text=Start now')
1212

1313

Lines changed: 119 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
import os
22

3+
from django.conf import settings
34
from django.contrib.staticfiles.testing import StaticLiveServerTestCase
4-
from django.test import tag
5+
from django.test import tag, Client
56
from playwright.sync_api import sync_playwright
7+
from urllib.parse import urlparse
68

9+
from lung_cancer_screening.questions.tests.factories.user_factory import UserFactory
710
from .helpers.assertion_helpers import expect_no_accessibility_violations
8-
from .helpers.user_interaction_helpers import setup_participant
11+
from .helpers.user_interaction_helpers import setup_user
912

1013
@tag('accessibility')
1114
class TestQuestionnaireAccessibility(StaticLiveServerTestCase):
@@ -17,178 +20,180 @@ def setUpClass(cls):
1720
cls.playwright = sync_playwright().start()
1821
cls.browser = cls.playwright.chromium.launch()
1922

23+
def setUp(self):
24+
self.page = self.browser.new_page()
25+
26+
current_user = UserFactory()
27+
current_user.responseset_set.create()
28+
29+
client = Client()
30+
client.force_login(current_user)
31+
32+
# Extract the session cookie from the test client
33+
session_cookie_name = getattr(
34+
settings, 'SESSION_COOKIE_NAME', 'sessionid'
35+
)
36+
session_cookie = client.cookies.get(session_cookie_name)
37+
38+
parsed_url = urlparse(self.live_server_url)
39+
domain = parsed_url.hostname
40+
self.page.context.add_cookies([{
41+
'name': session_cookie.key,
42+
'value': session_cookie.value,
43+
'domain': domain,
44+
'path': '/',
45+
}])
46+
47+
2048
@classmethod
2149
def tearDownClass(cls):
2250
super().tearDownClass()
2351
cls.browser.close()
2452
cls.playwright.stop()
2553

2654
def test_start_page_accessibility(self):
27-
page = self.browser.new_page()
28-
page.goto(f"{self.live_server_url}/start")
29-
expect_no_accessibility_violations(page)
55+
self.page.goto(f"{self.live_server_url}/start")
56+
expect_no_accessibility_violations(self.page)
3057

3158
def test_start_page_errors_accessibility(self):
32-
page = self.browser.new_page()
33-
page.goto(f"{self.live_server_url}/start")
34-
page.click("text=Start now")
35-
expect_no_accessibility_violations(page)
59+
self.page.goto(f"{self.live_server_url}/start")
60+
self.page.click("text=Start now")
61+
expect_no_accessibility_violations(self.page)
3662

3763
def test_have_you_ever_smoked_page_accessibility(self):
38-
page = self.browser.new_page()
39-
setup_participant(page, self.live_server_url)
40-
page.goto(f"{self.live_server_url}/have-you-ever-smoked")
41-
expect_no_accessibility_violations(page)
64+
setup_user(self.page, self.live_server_url)
65+
self.page.goto(f"{self.live_server_url}/have-you-ever-smoked")
66+
expect_no_accessibility_violations(self.page)
4267

4368
def test_have_you_ever_smoked_page_errors_accessibility(self):
44-
page = self.browser.new_page()
45-
setup_participant(page, self.live_server_url)
46-
page.goto(f"{self.live_server_url}/have-you-ever-smoked")
47-
page.click("text=Continue")
48-
expect_no_accessibility_violations(page)
69+
setup_user(self.page, self.live_server_url)
70+
self.page.goto(f"{self.live_server_url}/have-you-ever-smoked")
71+
self.page.click("text=Continue")
72+
expect_no_accessibility_violations(self.page)
4973

5074
def test_date_of_birth_page_accessibility(self):
51-
page = self.browser.new_page()
52-
setup_participant(page, self.live_server_url)
53-
page.goto(f"{self.live_server_url}/date-of-birth")
54-
expect_no_accessibility_violations(page)
75+
setup_user(self.page, self.live_server_url)
76+
self.page.goto(f"{self.live_server_url}/date-of-birth")
77+
expect_no_accessibility_violations(self.page)
5578

5679
def test_date_of_birth_page_errors_accessibility(self):
57-
page = self.browser.new_page()
58-
setup_participant(page, self.live_server_url)
59-
page.goto(f"{self.live_server_url}/date-of-birth")
60-
page.click("text=Continue")
61-
expect_no_accessibility_violations(page)
80+
setup_user(self.page, self.live_server_url)
81+
self.page.goto(f"{self.live_server_url}/date-of-birth")
82+
self.page.click("text=Continue")
83+
expect_no_accessibility_violations(self.page)
6284

6385
def test_height_page_accessibility(self):
64-
page = self.browser.new_page()
65-
setup_participant(page, self.live_server_url)
66-
page.goto(f"{self.live_server_url}/height")
67-
expect_no_accessibility_violations(page)
86+
setup_user(self.page, self.live_server_url)
87+
self.page.goto(f"{self.live_server_url}/height")
88+
expect_no_accessibility_violations(self.page)
6889

6990
def test_height_page_errors_accessibility(self):
70-
page = self.browser.new_page()
71-
setup_participant(page, self.live_server_url)
72-
page.goto(f"{self.live_server_url}/height")
73-
page.click("text=Continue")
74-
expect_no_accessibility_violations(page)
91+
setup_user(self.page, self.live_server_url)
92+
self.page.goto(f"{self.live_server_url}/height")
93+
self.page.click("text=Continue")
94+
expect_no_accessibility_violations(self.page)
7595

7696
def test_height_imperial_page_accessibility(self):
77-
page = self.browser.new_page()
78-
setup_participant(page, self.live_server_url)
79-
page.goto(f"{self.live_server_url}/height?unit=imperial")
80-
expect_no_accessibility_violations(page)
97+
setup_user(self.page, self.live_server_url)
98+
self.page.goto(f"{self.live_server_url}/height?unit=imperial")
99+
expect_no_accessibility_violations(self.page)
81100

82101
def test_weight_page_accessibility(self):
83-
page = self.browser.new_page()
84-
setup_participant(page, self.live_server_url)
85-
page.goto(f"{self.live_server_url}/weight")
86-
expect_no_accessibility_violations(page)
102+
setup_user(self.page, self.live_server_url)
103+
self.page.goto(f"{self.live_server_url}/weight")
104+
expect_no_accessibility_violations(self.page)
87105

88106
def test_weight_page_errors_accessibility(self):
89-
page = self.browser.new_page()
90-
setup_participant(page, self.live_server_url)
91-
page.goto(f"{self.live_server_url}/weight")
92-
page.click("text=Continue")
93-
expect_no_accessibility_violations(page)
107+
setup_user(self.page, self.live_server_url)
108+
self.page.goto(f"{self.live_server_url}/weight")
109+
self.page.click("text=Continue")
110+
expect_no_accessibility_violations(self.page)
94111

95112
def test_weight_imperial_page_accessibility(self):
96-
page = self.browser.new_page()
97-
setup_participant(page, self.live_server_url)
98-
page.goto(f"{self.live_server_url}/weight?unit=imperial")
99-
expect_no_accessibility_violations(page)
113+
setup_user(self.page, self.live_server_url)
114+
self.page.goto(f"{self.live_server_url}/weight?unit=imperial")
115+
expect_no_accessibility_violations(self.page)
100116

101117
def test_weight_imperial_page_errors_accessibility(self):
102-
page = self.browser.new_page()
103-
setup_participant(page, self.live_server_url)
104-
page.goto(f"{self.live_server_url}/weight?unit=imperial")
105-
page.click("text=Continue")
106-
expect_no_accessibility_violations(page)
118+
setup_user(self.page, self.live_server_url)
119+
self.page.goto(f"{self.live_server_url}/weight?unit=imperial")
120+
self.page.click("text=Continue")
121+
expect_no_accessibility_violations(self.page)
107122

108123
def test_sex_at_birth_page_accessibility(self):
109-
page = self.browser.new_page()
110-
setup_participant(page, self.live_server_url)
111-
page.goto(f"{self.live_server_url}/sex-at-birth")
112-
expect_no_accessibility_violations(page)
124+
setup_user(self.page, self.live_server_url)
125+
self.page.goto(f"{self.live_server_url}/sex-at-birth")
126+
expect_no_accessibility_violations(self.page)
113127

114128
def test_sex_at_birth_page_errors_accessibility(self):
115-
page = self.browser.new_page()
116-
setup_participant(page, self.live_server_url)
117-
page.goto(f"{self.live_server_url}/sex-at-birth")
118-
page.click("text=Continue")
119-
expect_no_accessibility_violations(page)
129+
setup_user(self.page, self.live_server_url)
130+
self.page.goto(f"{self.live_server_url}/sex-at-birth")
131+
self.page.click("text=Continue")
132+
expect_no_accessibility_violations(self.page)
120133

121134
def test_gender_page_accessibility(self):
122-
page = self.browser.new_page()
123-
setup_participant(page, self.live_server_url)
124-
page.goto(f"{self.live_server_url}/gender")
125-
expect_no_accessibility_violations(page)
135+
setup_user(self.page, self.live_server_url)
136+
self.page.goto(f"{self.live_server_url}/gender")
137+
expect_no_accessibility_violations(self.page)
126138

127139
def test_gender_page_errors_accessibility(self):
128-
page = self.browser.new_page()
129-
setup_participant(page, self.live_server_url)
130-
page.goto(f"{self.live_server_url}/gender")
131-
page.click("text=Continue")
132-
expect_no_accessibility_violations(page)
140+
setup_user(self.page, self.live_server_url)
141+
self.page.goto(f"{self.live_server_url}/gender")
142+
self.page.click("text=Continue")
143+
expect_no_accessibility_violations(self.page)
133144

134145
def test_ethnicity_page_accessibility(self):
135-
page = self.browser.new_page()
136-
setup_participant(page, self.live_server_url)
137-
page.goto(f"{self.live_server_url}/ethnicity")
138-
expect_no_accessibility_violations(page)
146+
setup_user(self.page, self.live_server_url)
147+
self.page.goto(f"{self.live_server_url}/ethnicity")
148+
expect_no_accessibility_violations(self.page)
139149

140150
def test_ethnicity_page_errors_accessibility(self):
141-
page = self.browser.new_page()
142-
setup_participant(page, self.live_server_url)
143-
page.goto(f"{self.live_server_url}/ethnicity")
144-
page.click("text=Continue")
145-
expect_no_accessibility_violations(page)
151+
setup_user(self.page, self.live_server_url)
152+
self.page.goto(f"{self.live_server_url}/ethnicity")
153+
self.page.click("text=Continue")
154+
expect_no_accessibility_violations(self.page)
146155

147156
# def test_education_page_accessibility(self):
148-
# page = self.browser.new_page()
149-
# setup_participant(page, self.live_server_url)
150-
# page.goto(f"{self.live_server_url}/education")
157+
#
158+
# setup_user(self.page, self.live_server_url)
159+
# self.page.goto(f"{self.live_server_url}/education")
151160
# expect_no_accessibility_violations(page)
152161

153162
# def test_respiratory_conditions_page_accessibility(self):
154-
# page = self.browser.new_page()
155-
# setup_participant(page, self.live_server_url)
156-
# page.goto(f"{self.live_server_url}/respiratory-conditions")
163+
#
164+
# setup_user(self.page, self.live_server_url)
165+
# self.page.goto(f"{self.live_server_url}/respiratory-conditions")
157166
# expect_no_accessibility_violations(page)
158167

159168
def test_asbestos_exposure_page_errors_accessibility(self):
160-
page = self.browser.new_page()
161-
setup_participant(page, self.live_server_url)
162-
page.goto(f"{self.live_server_url}/asbestos-exposure")
163-
page.click("text=Continue")
164-
expect_no_accessibility_violations(page)
169+
setup_user(self.page, self.live_server_url)
170+
self.page.goto(f"{self.live_server_url}/asbestos-exposure")
171+
self.page.click("text=Continue")
172+
expect_no_accessibility_violations(self.page)
165173

166174
def test_asbestos_exposure_page_accessibility(self):
167-
page = self.browser.new_page()
168-
setup_participant(page, self.live_server_url)
169-
page.goto(f"{self.live_server_url}/asbestos-exposure")
170-
expect_no_accessibility_violations(page)
175+
setup_user(self.page, self.live_server_url)
176+
self.page.goto(f"{self.live_server_url}/asbestos-exposure")
177+
expect_no_accessibility_violations(self.page)
171178

172179
# def test_cancer_diagnosis_page_accessibility(self):
173-
# page = self.browser.new_page()
174-
# setup_participant(page, self.live_server_url)
175-
# page.goto(f"{self.live_server_url}/cancer-diagnosis")
180+
#
181+
# setup_user(self.page, self.live_server_url)
182+
# self.page.goto(f"{self.live_server_url}/cancer-diagnosis")
176183
# expect_no_accessibility_violations(page)
177184

178185
# def test_family_history_lung_cancer_page_accessibility(self):
179-
# page = self.browser.new_page()
180-
# setup_participant(page, self.live_server_url)
181-
# page.goto(f"{self.live_server_url}/family-history-lung-cancer")
186+
#
187+
# setup_user(self.page, self.live_server_url)
188+
# self.page.goto(f"{self.live_server_url}/family-history-lung-cancer")
182189
# expect_no_accessibility_violations(page)
183190

184191
def test_responses_page_accessibility(self):
185-
page = self.browser.new_page()
186-
setup_participant(page, self.live_server_url)
187-
page.goto(f"{self.live_server_url}/responses")
188-
expect_no_accessibility_violations(page)
192+
setup_user(self.page, self.live_server_url)
193+
self.page.goto(f"{self.live_server_url}/responses")
194+
expect_no_accessibility_violations(self.page)
189195

190196
def test_your_results_page_accessibility(self):
191-
page = self.browser.new_page()
192-
setup_participant(page, self.live_server_url)
193-
page.goto(f"{self.live_server_url}/your-results")
194-
expect_no_accessibility_violations(page)
197+
setup_user(self.page, self.live_server_url)
198+
self.page.goto(f"{self.live_server_url}/your-results")
199+
expect_no_accessibility_violations(self.page)

lung_cancer_screening/questions/forms/asbestos_exposure_form.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55

66
class AsbestosExposureForm(forms.ModelForm):
77
def __init__(self, *args, **kwargs):
8-
self.participant = kwargs.pop('participant')
8+
self.user = kwargs.pop('user')
99
super().__init__(*args, **kwargs)
10-
self.instance.participant = self.participant
10+
self.instance.user = self.user
1111

1212
self.fields["asbestos_exposure"] = TypedChoiceField(
1313
choices=[(True, 'Yes'), (False, 'No')],

lung_cancer_screening/questions/forms/date_of_birth_form.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66

77
class DateOfBirthForm(forms.ModelForm):
88
def __init__(self, *args, **kwargs):
9-
self.participant = kwargs.pop('participant')
9+
self.user = kwargs.pop('user')
1010
super().__init__(*args, **kwargs)
11-
self.instance.participant = self.participant
11+
self.instance.user = self.user
1212

1313
invalid_error_message = 'Date of birth must be a real date'
1414
self.fields["date_of_birth"] = SplitDateField(

lung_cancer_screening/questions/forms/ethnicity_form.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
class EthnicityForm(forms.ModelForm):
77

88
def __init__(self, *args, **kwargs):
9-
self.participant = kwargs.pop('participant')
9+
self.user = kwargs.pop('user')
1010
super().__init__(*args, **kwargs)
11-
self.instance.participant = self.participant
11+
self.instance.user = self.user
1212

1313
self.fields["ethnicity"] = ChoiceField(
1414
choices=EthnicityValues.choices,

lung_cancer_screening/questions/forms/gender_form.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
class GenderForm(forms.ModelForm):
77

88
def __init__(self, *args, **kwargs):
9-
self.participant = kwargs.pop('participant')
9+
self.user = kwargs.pop('user')
1010
super().__init__(*args, **kwargs)
11-
self.instance.participant = self.participant
11+
self.instance.user = self.user
1212

1313
self.fields["gender"] = ChoiceField(
1414
choices=GenderValues.choices,

lung_cancer_screening/questions/forms/have_you_ever_smoked_form.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
class HaveYouEverSmokedForm(forms.ModelForm):
77

88
def __init__(self, *args, **kwargs):
9-
self.participant = kwargs.pop('participant')
9+
self.user = kwargs.pop('user')
1010
super().__init__(*args, **kwargs)
11-
self.instance.participant = self.participant
11+
self.instance.user = self.user
1212

1313
self.fields["have_you_ever_smoked"] = TypedChoiceField(
1414
choices=HaveYouEverSmokedValues.choices,

0 commit comments

Comments
 (0)