11import os
22
3+ from django .conf import settings
34from django .contrib .staticfiles .testing import StaticLiveServerTestCase
4- from django .test import tag
5+ from django .test import tag , Client
56from 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
710from .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' )
1114class 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 )
0 commit comments