|
3 | 3 | get_kit_id_logged_from_db, |
4 | 4 | ) |
5 | 5 | from pages.base_page import BasePage |
| 6 | +from pages.fit_test_kits.log_devices_page import LogDevicesPage |
| 7 | +from pages.fit_test_kits.fit_test_kits_page import FITTestKitsPage |
6 | 8 | from datetime import datetime |
7 | 9 | import logging |
8 | 10 | import pandas as pd |
|
17 | 19 | KitServiceManagementRepository, |
18 | 20 | ) |
19 | 21 | from classes.kit_status import KitStatus |
20 | | -from pages.fit_test_kits.fit_test_kits_page import FITTestKitsPage |
21 | | -from pages.fit_test_kits.log_devices_page import LogDevicesPage |
22 | | -from playwright.sync_api import Page |
| 22 | +from oracle.oracle_specific_functions import execute_fit_kit_stored_procedures |
23 | 23 |
|
24 | 24 |
|
25 | 25 | class FitKitGeneration: |
@@ -127,16 +127,16 @@ def get_fit_kit_for_subject_sql(self, nhs_no: str, logged: bool, read: bool) -> |
127 | 127 | sql_query = [] |
128 | 128 | sql_query.append( |
129 | 129 | """ |
130 | | - SELECT kitid |
131 | | - FROM tk_items_t |
132 | | - WHERE tk_type_id > 1 |
133 | | - AND kitid = ( |
134 | | - SELECT MAX(tkx.kitid) |
135 | | - FROM tk_items_t tkx |
136 | | - LEFT OUTER JOIN kit_queue kq ON kq.device_id = tkx.device_id |
137 | | - WHERE tkx.tk_type_id > 1 |
138 | | - AND tkx.screening_subject_id = :subject_id |
139 | | - """ |
| 130 | + SELECT kitid |
| 131 | + FROM tk_items_t |
| 132 | + WHERE tk_type_id > 1 |
| 133 | + AND kitid = ( |
| 134 | + SELECT MAX(tkx.kitid) |
| 135 | + FROM tk_items_t tkx |
| 136 | + LEFT OUTER JOIN kit_queue kq ON kq.device_id = tkx.device_id |
| 137 | + WHERE tkx.tk_type_id > 1 |
| 138 | + AND tkx.screening_subject_id = :subject_id |
| 139 | + """ |
140 | 140 | ) |
141 | 141 | if logged: |
142 | 142 | sql_query.append(" AND tkx.logged_in_flag = 'Y' ") |
@@ -239,11 +239,6 @@ def read_latest_logged_kit( |
239 | 239 | ) -> None: |
240 | 240 | """ |
241 | 241 | Reads the subject's latest logged FIT kit and updates its status/result. |
242 | | - Args: |
243 | | - user (UserRoleType): The user performing the action. |
244 | | - kit_type (int): The type of the kit. |
245 | | - kit (str): The FIT kit ID to be read. |
246 | | - kit_result (str): The result of the kit reading. Valid values are "NORMAL", "ABNORMAL", "SPOILT", "TECHNICAL_FAILURE". |
247 | 242 | """ |
248 | 243 | logging.info("start: read_latest_logged_kit") |
249 | 244 |
|
@@ -293,37 +288,35 @@ def read_latest_logged_kit( |
293 | 288 | kit_queue_record.authoriser_user_code = "AUTOTEST" |
294 | 289 | kit_queue_record.test_result = result_reading |
295 | 290 | kit_queue_record.error_code = result_code |
| 291 | + logging.debug(f"kit queue record: {kit_queue_record.__str__()}") |
296 | 292 | kit_queue_repo.update_kit_service_management_record(kit_queue_record) |
297 | 293 |
|
298 | 294 | # Immediately process the kit queue (don't wait for the scheduled DB job to kick in) |
299 | | - kit_queue_repo.process_kit_queue() |
| 295 | + execute_fit_kit_stored_procedures() |
300 | 296 |
|
301 | 297 | except Exception as e: |
302 | 298 | raise RuntimeError(f"Error occurred while reading latest logged kit: {e}") |
303 | 299 |
|
304 | 300 | logging.info("exit: read_latest_logged_kit") |
305 | 301 |
|
306 | | - def log_fit_kit(self, page: Page, nhs_no: str) -> str: |
307 | | - """Logs the FIT kit for a given subject. |
| 302 | + def log_fit_kits(self, page, fit_kit: str, sample_date: datetime) -> None: |
| 303 | + """ |
| 304 | + Navigates to the log devices page and logs FIT kits |
308 | 305 | Args: |
309 | | - page (Page): The Playwright page object. |
310 | | - nhs_no (str): The NHS number of the subject. |
311 | | - Returns: |
312 | | - str: The FIT kit ID that was successfully logged. |
| 306 | + fit_kit (str): The device id of the FIT kit |
| 307 | + sample_date (datetime): The date you want to select for the sample date field |
313 | 308 | """ |
314 | 309 | BasePage(page).click_main_menu_link() |
315 | | - fit_kit = FitKitGeneration().get_fit_kit_for_subject_sql(nhs_no, False, False) |
316 | 310 | BasePage(page).go_to_fit_test_kits_page() |
317 | 311 | FITTestKitsPage(page).go_to_log_devices_page() |
318 | | - logging.info(f"Logging FIT Device ID: {fit_kit}") |
| 312 | + logging.info(f"[FIT KITS] Logging FIT Device ID: {fit_kit}") |
319 | 313 | LogDevicesPage(page).fill_fit_device_id_field(fit_kit) |
320 | | - sample_date = datetime.now() |
321 | | - logging.info(f"Setting sample date to {sample_date}") |
322 | 314 | LogDevicesPage(page).fill_sample_date_field(sample_date) |
323 | 315 | LogDevicesPage(page).log_devices_title.get_by_text("Scan Device").wait_for() |
324 | 316 | try: |
325 | 317 | LogDevicesPage(page).verify_successfully_logged_device_text() |
326 | | - logging.info(f"{fit_kit} Successfully logged") |
| 318 | + logging.info(f"[UI ASSERTIONS COMPLETE] {fit_kit} Successfully logged") |
327 | 319 | except Exception as e: |
328 | | - pytest.fail(f"{fit_kit} unsuccessfully logged: {str(e)}") |
329 | | - return fit_kit |
| 320 | + pytest.fail( |
| 321 | + f"[UI ASSERTIONS FAILED] {fit_kit} unsuccessfully logged: {str(e)}" |
| 322 | + ) |
0 commit comments