11import pytest
22import logging
33from playwright .sync_api import Page
4+ from streamlit import user
45from classes .user .user import User
56from classes .subject .subject import Subject
67from pages .logout .log_out_page import LogoutPage
1112from utils .subject_assertion import subject_assertion
1213from utils import screening_subject_page_searcher
1314from utils .oracle .subject_selection_query_builder import SubjectSelectionQueryBuilder
15+ from utils .lynch_utils import insert_validated_lynch_patient_from_new_subject_with_age
1416
1517
1618@pytest .mark .wip
@@ -49,17 +51,14 @@ def debug_log_subject_db_row(nhs_no):
4951
5052 # Given I log in to BCSS "England" as user role "Hub Manager"
5153 login_role = "Hub Manager at BCS01"
52- UserTools .user_login (page , login_role )
53-
54- # Retrieve user details and user object
55- user_details = UserTools .retrieve_user (login_role )
56-
54+ user_role = UserTools .user_login (page , login_role , True )
55+ if user_role is None :
56+ raise ValueError (f"User role '{ login_role } ' could not be determined after login." )
57+
5758 # When I receive Lynch diagnosis "EPCAM" for a new subject in my hub aged "75" with diagnosis date "3 years ago" and last colonoscopy date "2 years ago"
58- # TODO: What is involved in receiving an "EPCAM" diagnosis? Is it covered by this code?
5959 # Get or create a subject suitable for Lynch self-referral
60- nhs_no = SubjectSelector .get_or_create_subject_for_lynch_self_referral (
61- screening_centre = user_details ["hub_code" ],
62- base_age = 75 ,
60+ nhs_no = insert_validated_lynch_patient_from_new_subject_with_age (
61+ "75" , "EPCAM" , "3 years ago" , "2 years ago" , user_role
6362 )
6463
6564 OracleDB ().exec_bcss_timed_events (nhs_number = nhs_no )
@@ -82,14 +81,14 @@ def debug_log_subject_db_row(nhs_no):
8281
8382 # Then my subject has been updated as follows:
8483 self_referral_criteria = {
85- # "calculated fobt due date": "Null",
86- # "calculated lynch due date": "Today",
84+ "calculated fobt due date" : "Null" ,
85+ "calculated lynch due date" : "Today" ,
8786 # "calculated surveillance due date": "Null",
8887 # "lynch due date": "Today",
8988 # "lynch due date date of change": "Null",
9089 # "lynch due date reason": "Self-referral",
9190 # "previous screening status": "Lynch Surveillance",
92- "screening due date" : "Null" ,
91+ # "screening due date": "Null",
9392 # "screening due date date of change": "Null",
9493 # "screening due date reason": "null",
9594 # "screening status": "Lynch Self-referral",
@@ -109,66 +108,66 @@ def debug_log_subject_db_row(nhs_no):
109108 "[ASSERTION PASSED] Subject details after self-referral are as expected"
110109 )
111110
112- # When I view the subject
113- screening_subject_page_searcher .navigate_to_subject_summary_page (page , nhs_no )
114-
115- # And I set the subject to Seeking Further Data
116- subject_page .set_seeking_further_data ()
117-
118- # Then my subject has been updated as follows:
119- seeking_further_data_criteria = {
120- "calculated fobt due date" : "Null" ,
121- "calculated lynch due date" : "today" ,
122- "calculated surveillance due date" : "Null" ,
123- "lynch due date" : "today" ,
124- "lynch due date date of change" : "Null" ,
125- "lynch due date reason" : "Self-referral" ,
126- "previous screening status" : "Lynch Self-referral" ,
127- "screening due date" : "Null" ,
128- "screening due date date of change" : "Null" ,
129- "screening due date reason" : "Null" ,
130- "subject has lynch diagnosis" : "Yes" ,
131- "subject lower fobt age" : "Default" ,
132- "subject lower lynch age" : "25" ,
133- "screening status" : "Seeking Further Data" ,
134- "screening status date of change" : "Today" ,
135- "screening status reason" : "Uncertified Death" ,
136- "surveillance due date" : "Null" ,
137- "surveillance due date date of change" : "Null" ,
138- "surveillance due date reason" : "Null" ,
139- }
140- debug_log_subject_db_row (nhs_no ) # For debug purposes - can be removed later
141-
142- subject_assertion (nhs_no , seeking_further_data_criteria )
143-
144- # When I set the subject from Seeking Further Data back to "Lynch Self-referral"
145- subject_page .set_self_referral_screening_status ()
146-
147- # Then my subject has been updated as follows:
148- reverted_criteria = {
149- "calculated fobt due date" : "Null" ,
150- "calculated lynch due date" : "today" ,
151- "calculated surveillance due date" : "Null" ,
152- "lynch due date" : "today" ,
153- "lynch due date date of change" : "Null" ,
154- "lynch due date reason" : "Self-referral" ,
155- "previous screening status" : "Lynch Self-referral" ,
156- "screening due date" : "Null" ,
157- "screening due date date of change" : "Null" ,
158- "screening due date reason" : "Null" ,
159- "subject has lynch diagnosis" : "Yes" ,
160- "subject lower fobt age" : "Default" ,
161- "subject lower lynch age" : "25" ,
162- "screening status" : "Lynch Self-referral" ,
163- "screening status date of change" : "Today" ,
164- "screening status reason" : "Reset seeking further data to Lynch Self-referral" ,
165- "surveillance due date" : "Null" ,
166- "surveillance due date date of change" : "Null" ,
167- "surveillance due date reason" : "Null" ,
168- }
169- debug_log_subject_db_row (nhs_no ) # For debug purposes - can be removed later
170-
171- subject_assertion (nhs_no , reverted_criteria )
172-
173- LogoutPage (page ).log_out ()
174- logging .info ("[TEST END] test_lynch_self_referral_seeking_further_data_flow" )
111+ # # When I view the subject
112+ # screening_subject_page_searcher.navigate_to_subject_summary_page(page, nhs_no)
113+
114+ # # And I set the subject to Seeking Further Data
115+ # subject_page.set_seeking_further_data()
116+
117+ # # Then my subject has been updated as follows:
118+ # seeking_further_data_criteria = {
119+ # "calculated fobt due date": "Null",
120+ # "calculated lynch due date": "today",
121+ # "calculated surveillance due date": "Null",
122+ # "lynch due date": "today",
123+ # "lynch due date date of change": "Null",
124+ # "lynch due date reason": "Self-referral",
125+ # "previous screening status": "Lynch Self-referral",
126+ # "screening due date": "Null",
127+ # "screening due date date of change": "Null",
128+ # "screening due date reason": "Null",
129+ # "subject has lynch diagnosis": "Yes",
130+ # "subject lower fobt age": "Default",
131+ # "subject lower lynch age": "25",
132+ # "screening status": "Seeking Further Data",
133+ # "screening status date of change": "Today",
134+ # "screening status reason": "Uncertified Death",
135+ # "surveillance due date": "Null",
136+ # "surveillance due date date of change": "Null",
137+ # "surveillance due date reason": "Null",
138+ # }
139+ # debug_log_subject_db_row(nhs_no) # For debug purposes - can be removed later
140+
141+ # subject_assertion(nhs_no, seeking_further_data_criteria)
142+
143+ # # When I set the subject from Seeking Further Data back to "Lynch Self-referral"
144+ # subject_page.set_self_referral_screening_status()
145+
146+ # # Then my subject has been updated as follows:
147+ # reverted_criteria = {
148+ # "calculated fobt due date": "Null",
149+ # "calculated lynch due date": "today",
150+ # "calculated surveillance due date": "Null",
151+ # "lynch due date": "today",
152+ # "lynch due date date of change": "Null",
153+ # "lynch due date reason": "Self-referral",
154+ # "previous screening status": "Lynch Self-referral",
155+ # "screening due date": "Null",
156+ # "screening due date date of change": "Null",
157+ # "screening due date reason": "Null",
158+ # "subject has lynch diagnosis": "Yes",
159+ # "subject lower fobt age": "Default",
160+ # "subject lower lynch age": "25",
161+ # "screening status": "Lynch Self-referral",
162+ # "screening status date of change": "Today",
163+ # "screening status reason": "Reset seeking further data to Lynch Self-referral",
164+ # "surveillance due date": "Null",
165+ # "surveillance due date date of change": "Null",
166+ # "surveillance due date reason": "Null",
167+ # }
168+ # debug_log_subject_db_row(nhs_no) # For debug purposes - can be removed later
169+
170+ # subject_assertion(nhs_no, reverted_criteria)
171+
172+ # LogoutPage(page).log_out()
173+ # logging.info("[TEST END] test_lynch_self_referral_seeking_further_data_flow")
0 commit comments