Skip to content

Commit b7f341b

Browse files
committed
wip
1 parent 8ffa5ee commit b7f341b

File tree

2 files changed

+49
-33
lines changed

2 files changed

+49
-33
lines changed

pages/subject/subject_lynch_page.py

Lines changed: 39 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,14 @@
66
class SubjectPage(BasePage):
77
"""Page object for interacting with subject-related actions."""
88

9-
def __init__(self, page: Page):
10-
super().__init__(page)
11-
self.page = page
9+
class StatusCodes:
10+
LYNCH_SELF_REFERRAL = "4005"
11+
SEEKING_FURTHER_DATA = "4007"
12+
13+
class ReasonCodes:
14+
SELF_REFERRAL = "11316"
15+
UNCERTIFIED_DEATH = "11314"
16+
RESET_TO_SELF_REFERRAL = "11529"
1217

1318
class TestData:
1419
hub_manager_role = "Hub Manager"
@@ -18,10 +23,26 @@ class TestData:
1823
last_colonoscopy_date = "2 years ago"
1924
screening_status_lynch_self_referral = "Lynch Self-referral"
2025

26+
def __init__(self, page: Page):
27+
super().__init__(page)
28+
self.page = page
29+
2130
def self_refer_subject(self) -> None:
22-
"""Implement UI steps to self-refer the subject."""
23-
logging.warning("[TODO] self_refer_subject not yet implemented.")
24-
# TODO: Implement UI steps to self-refer the subject
31+
"""Perform UI steps to self-refer the subject."""
32+
logging.info("[UI ACTION] Self-referring the subject")
33+
34+
# Select 'Lynch Self-referral' from the dropdown
35+
self.page.get_by_label("Change Screening Status").select_option(
36+
self.StatusCodes.LYNCH_SELF_REFERRAL
37+
)
38+
39+
# Select reason: 'Self-referral' (value: 11316)
40+
self.page.get_by_label("Reason").select_option(self.ReasonCodes.SELF_REFERRAL)
41+
42+
# Click the update button
43+
self.safe_accept_dialog(
44+
self.page.get_by_role("button", name="Update Subject Data")
45+
)
2546

2647
def set_seeking_further_data(self) -> None:
2748
"""Set the subject to Seeking Further Data."""
@@ -32,13 +53,13 @@ def set_seeking_further_data(self) -> None:
3253

3354
# Select 'Seeking Further Data' from the screening status dropdown
3455
self.page.get_by_label("Change Screening Status").select_option(
35-
"4007"
36-
) # Seeking Further Data
56+
self.StatusCodes.SEEKING_FURTHER_DATA
57+
)
3758

3859
# Select 'Uncertified Death' as the reason
3960
self.page.get_by_label("Reason", exact=True).select_option(
40-
"11314"
41-
) # Uncertified Death
61+
self.ReasonCodes.UNCERTIFIED_DEATH
62+
)
4263

4364
# Click the update button
4465
self.safe_accept_dialog(
@@ -49,11 +70,15 @@ def set_self_referral_screening_status(self) -> None:
4970
"""Set the screening status to 'Lynch Self-referral' with reason 'Reset seeking further data to Lynch Self-referral'."""
5071
logging.info("[UI ACTION] Setting screening status to 'Lynch Self-referral'")
5172

52-
# Select 'Lynch Self-referral' (value: 4005)
53-
self.page.get_by_label("Change Screening Status").select_option("4005")
73+
# Select 'Lynch Self-referral'
74+
self.page.get_by_label("Change Screening Status").select_option(
75+
self.StatusCodes.LYNCH_SELF_REFERRAL
76+
)
5477

55-
# Select reason: 'Reset seeking further data to Lynch Self-referral' (value: 11529)
56-
self.page.get_by_label("Reason").select_option("11529")
78+
# Select reason: 'Reset seeking further data to Lynch Self-referral'
79+
self.page.get_by_label("Reason").select_option(
80+
self.ReasonCodes.RESET_TO_SELF_REFERRAL
81+
)
5782

5883
# Click the update button
5984
self.page.get_by_role("button", name="Update Subject Data").click()

tests/test_lynch_self_referral_seeking_further_data_flow.py

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from classes.subject.subject import Subject
55
from classes.user.user import User
66
from pages.logout.log_out_page import LogoutPage
7-
from utils.oracle.oracle import OracleDB, OracleSubjectTools
7+
from utils.oracle.oracle import OracleDB
88
from utils.oracle.subject_selection_query_builder import SubjectSelectionQueryBuilder
99
from utils.oracle.subject_selector import SubjectSelector
1010
from utils.user_tools import UserTools
@@ -37,16 +37,8 @@ def test_lynch_self_referral_seeking_further_data_flow(page: Page) -> None:
3737
login_role = "Hub Manager at BCS01"
3838
UserTools.user_login(page, login_role)
3939

40-
criteria = {
41-
"subject age": "75",
42-
"subject has lynch diagnosis": "Yes",
43-
"screening status": "Lynch Self-referral",
44-
"subject hub code": "BCS01",
45-
}
46-
4740
# Retrieve user details and user object
4841
user_details = UserTools.retrieve_user(login_role)
49-
user = UserTools.get_user_object(user_details)
5042

5143
# # TODO: 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"
5244
# Get or create a subject suitable for Lynch self-referral
@@ -62,13 +54,12 @@ def test_lynch_self_referral_seeking_further_data_flow(page: Page) -> None:
6254
# Then Comment: NHS number
6355
logging.info(f"[SUBJECT CREATION] Created subject's NHS number: {nhs_no}")
6456

65-
# TODO: When I self refer the subject
66-
# And I press OK on my confirmation prompt
57+
# When I self refer the subject
6758
subject_page.self_refer_subject()
6859
logging.info("[UI ACTION] Self-referred the subject")
6960

7061
# Then my subject has been updated as follows:
71-
criteria = {
62+
self_referral_criteria = {
7263
"calculated fobt due date": "Null",
7364
"calculated lynch due date": "today",
7465
"calculated surveillance due date": "Null",
@@ -90,19 +81,19 @@ def test_lynch_self_referral_seeking_further_data_flow(page: Page) -> None:
9081
"surveillance due date reason": "Null",
9182
}
9283

93-
subject_assertion(nhs_no, criteria)
84+
subject_assertion(nhs_no, self_referral_criteria)
9485
logging.info(
9586
"[ASSERTION PASSED] Subject details after self-referral are as expected"
9687
)
9788

9889
# When I view the subject
9990
screening_subject_page_searcher.navigate_to_subject_summary_page(page, nhs_no)
10091

101-
# When I set the subject to Seeking Further Data
92+
# And I set the subject to Seeking Further Data
10293
subject_page.set_seeking_further_data()
10394

10495
# Then my subject has been updated as follows:
105-
criteria = {
96+
seeking_further_data_criteria = {
10697
"calculated fobt due date": "Null",
10798
"calculated lynch due date": "today",
10899
"calculated surveillance due date": "Null",
@@ -124,13 +115,13 @@ def test_lynch_self_referral_seeking_further_data_flow(page: Page) -> None:
124115
"surveillance due date reason": "Null",
125116
}
126117

127-
subject_assertion(nhs_no, criteria)
118+
subject_assertion(nhs_no, seeking_further_data_criteria)
128119

129120
# When I set the subject from Seeking Further Data back to "Lynch Self-referral"
130121
subject_page.set_self_referral_screening_status()
131122

132123
# Then my subject has been updated as follows:
133-
criteria = {
124+
reverted_criteria = {
134125
"calculated fobt due date": "Null",
135126
"calculated lynch due date": "today",
136127
"calculated surveillance due date": "Null",
@@ -152,13 +143,13 @@ def test_lynch_self_referral_seeking_further_data_flow(page: Page) -> None:
152143
"surveillance due date reason": "Null",
153144
}
154145

155-
subject_assertion(nhs_no, criteria)
146+
subject_assertion(nhs_no, reverted_criteria)
156147

157148
LogoutPage(page).log_out()
158149
logging.info("[TEST END] test_lynch_self_referral_seeking_further_data_flow")
159150

160151

161-
# Helper Functions
152+
# Helper Functions - TODO: move to a utils file later
162153
def prepare_subject_with_lynch_diagnosis(
163154
page: Page,
164155
user: User,

0 commit comments

Comments
 (0)