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
911
1012@tag ('accessibility' )
1113class TestQuestionnaireAccessibility (StaticLiveServerTestCase ):
@@ -17,178 +19,159 @@ def setUpClass(cls):
1719 cls .playwright = sync_playwright ().start ()
1820 cls .browser = cls .playwright .chromium .launch ()
1921
22+ def setUp (self ):
23+ self .page = self .browser .new_page ()
24+
25+ current_user = UserFactory ()
26+ current_user .responseset_set .create ()
27+
28+ client = Client ()
29+ client .force_login (current_user )
30+
31+ # Extract the session cookie from the test client
32+ session_cookie_name = getattr (
33+ settings , 'SESSION_COOKIE_NAME' , 'sessionid'
34+ )
35+ session_cookie = client .cookies .get (session_cookie_name )
36+
37+ parsed_url = urlparse (self .live_server_url )
38+ domain = parsed_url .hostname
39+ self .page .context .add_cookies ([{
40+ 'name' : session_cookie .key ,
41+ 'value' : session_cookie .value ,
42+ 'domain' : domain ,
43+ 'path' : '/' ,
44+ }])
45+
46+
2047 @classmethod
2148 def tearDownClass (cls ):
2249 super ().tearDownClass ()
2350 cls .browser .close ()
2451 cls .playwright .stop ()
2552
2653 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 )
54+ self .page .goto (f"{ self .live_server_url } /start" )
55+ expect_no_accessibility_violations (self .page )
3056
3157 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 )
58+ self .page .goto (f"{ self .live_server_url } /start" )
59+ self .page .click ("text=Start now" )
60+ expect_no_accessibility_violations (self .page )
3661
3762 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 )
63+ self .page .goto (f"{ self .live_server_url } /have-you-ever-smoked" )
64+ expect_no_accessibility_violations (self .page )
4265
4366 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 )
67+ self .page .goto (f"{ self .live_server_url } /have-you-ever-smoked" )
68+ self .page .click ("text=Continue" )
69+ expect_no_accessibility_violations (self .page )
4970
5071 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 )
72+ self .page .goto (f"{ self .live_server_url } /date-of-birth" )
73+ expect_no_accessibility_violations (self .page )
5574
5675 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 )
76+ self .page .goto (f"{ self .live_server_url } /date-of-birth" )
77+ self .page .click ("text=Continue" )
78+ expect_no_accessibility_violations (self .page )
6279
6380 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 )
81+ self .page .goto (f"{ self .live_server_url } /height" )
82+ expect_no_accessibility_violations (self .page )
6883
6984 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 )
85+ self .page .goto (f"{ self .live_server_url } /height" )
86+ self .page .click ("text=Continue" )
87+ expect_no_accessibility_violations (self .page )
7588
7689 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 )
90+ self .page .goto (f"{ self .live_server_url } /height?unit=imperial" )
91+ expect_no_accessibility_violations (self .page )
8192
8293 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 )
94+ self .page .goto (f"{ self .live_server_url } /weight" )
95+ expect_no_accessibility_violations (self .page )
8796
8897 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 )
98+ self .page .goto (f"{ self .live_server_url } /weight" )
99+ self .page .click ("text=Continue" )
100+ expect_no_accessibility_violations (self .page )
94101
95102 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 )
103+ self .page .goto (f"{ self .live_server_url } /weight?unit=imperial" )
104+ expect_no_accessibility_violations (self .page )
100105
101106 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 )
107+ self .page .goto (f"{ self .live_server_url } /weight?unit=imperial" )
108+ self .page .click ("text=Continue" )
109+ expect_no_accessibility_violations (self .page )
107110
108111 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 )
112+ self .page .goto (f"{ self .live_server_url } /sex-at-birth" )
113+ expect_no_accessibility_violations (self .page )
113114
114115 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 )
116+ self .page .goto (f"{ self .live_server_url } /sex-at-birth" )
117+ self .page .click ("text=Continue" )
118+ expect_no_accessibility_violations (self .page )
120119
121120 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 )
121+ self .page .goto (f"{ self .live_server_url } /gender" )
122+ expect_no_accessibility_violations (self .page )
126123
127124 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 )
125+ self .page .goto (f"{ self .live_server_url } /gender" )
126+ self .page .click ("text=Continue" )
127+ expect_no_accessibility_violations (self .page )
133128
134129 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 )
130+ self .page .goto (f"{ self .live_server_url } /ethnicity" )
131+ expect_no_accessibility_violations (self .page )
139132
140133 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 )
134+ self .page .goto (f"{ self .live_server_url } /ethnicity" )
135+ self .page .click ("text=Continue" )
136+ expect_no_accessibility_violations (self .page )
146137
147138 # 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")
139+ #
140+ # setup_user(self. page, self.live_server_url)
141+ # self. page.goto(f"{self.live_server_url}/education")
151142 # expect_no_accessibility_violations(page)
152143
153144 # 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")
145+ #
146+ # setup_user(self. page, self.live_server_url)
147+ # self. page.goto(f"{self.live_server_url}/respiratory-conditions")
157148 # expect_no_accessibility_violations(page)
158149
159150 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 )
151+ self .page .goto (f"{ self .live_server_url } /asbestos-exposure" )
152+ self .page .click ("text=Continue" )
153+ expect_no_accessibility_violations (self .page )
165154
166155 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 )
156+ self .page .goto (f"{ self .live_server_url } /asbestos-exposure" )
157+ expect_no_accessibility_violations (self .page )
171158
172159 # 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")
160+ #
161+ # setup_user(self. page, self.live_server_url)
162+ # self. page.goto(f"{self.live_server_url}/cancer-diagnosis")
176163 # expect_no_accessibility_violations(page)
177164
178165 # 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")
166+ #
167+ # setup_user(self. page, self.live_server_url)
168+ # self. page.goto(f"{self.live_server_url}/family-history-lung-cancer")
182169 # expect_no_accessibility_violations(page)
183170
184171 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 )
172+ self .page .goto (f"{ self .live_server_url } /responses" )
173+ expect_no_accessibility_violations (self .page )
189174
190175 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 )
176+ self .page .goto (f"{ self .live_server_url } /your-results" )
177+ expect_no_accessibility_violations (self .page )
0 commit comments