diff --git a/config.example.json b/config.example.json index 1ea8ef5..0d08d1d 100644 --- a/config.example.json +++ b/config.example.json @@ -145,7 +145,20 @@ "trade_session_start_time": "17:00", "trade_session_end_time": "22:00" }, - "time_sessions": {} + "time_sessions": { + "ORDER_NOR": { + "start_offset_minutes": 10, + "end_time": "19:30" + }, + "ORDER_EXCH": { + "start_time": "19:30", + "end_time": "19:45" + }, + "TRADE": { + "start_time": "19:45", + "end_time": "19:50" + } + } } }, "RA": { @@ -176,7 +189,20 @@ "delivery_offset_days": 1, "expiry_time": "20:30", "type_prefix": "REC", - "time_sessions": {} + "time_sessions": { + "ORDER_NOR": { + "start_offset_minutes": 10, + "end_time": "19:30" + }, + "ORDER_EXCH": { + "start_time": "19:30", + "end_time": "19:45" + }, + "TRADE": { + "start_time": "19:45", + "end_time": "19:50" + } + } } } } diff --git a/tests/locators.py b/tests/locators.py index 0d876b3..5ce4763 100644 --- a/tests/locators.py +++ b/tests/locators.py @@ -36,6 +36,7 @@ class Locator(object): tokendeliverystartdate = "//input[@placeholder='DELIVERY_START_DATE']" tokendeliveryenddate = "//input[@placeholder='DELIVERY_END_DATE']" tokenexpirydate = "//input[@placeholder='Token Expiry Date']" + tokentype = "//input[@name='TYPE' or @placeholder='TYPE']" tokentradedate = "//input[@placeholder='Trade Date']" upcordernormalstart = "//input[@name='ses3StartTime']" upcordernormalend = "//input[@name='ses3EndTime']" diff --git a/tests/setup/tokens/test_trading_token.py b/tests/setup/tokens/test_trading_token.py index 7b877ec..06346ca 100644 --- a/tests/setup/tokens/test_trading_token.py +++ b/tests/setup/tokens/test_trading_token.py @@ -3,6 +3,7 @@ from datetime import datetime, timedelta import pytest from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait +from selenium.webdriver.support import expected_conditions as EC from tests.config_reader import get_setup_configs, parse_product_codes from tests.helpers import ( @@ -133,11 +134,11 @@ def complete_time_session_edits(driver, step, token, next_day): edit_time_session_row( driver, step, - "ORDER_NOR", + "ORDER_NORMAL", order_nor_start_time, order_nor_end_time ) - edit_time_session_row(driver, step, "ORDER_EXCH", order_exch_start_time, order_exch_end_time) + edit_time_session_row(driver, step, "ORDER_EXCHANGE", order_exch_start_time, order_exch_end_time) edit_time_session_row(driver, step, "TRADE", trade_start_time, trade_end_time) click_first_grid_button(driver, "Token Details") @@ -150,6 +151,7 @@ def complete_time_session_edits(driver, step, token, next_day): def complete_time_session_edits_from_saved_token(driver, step, token): step.click((By.XPATH, Locator.tokentimesessionbtn), "open_time_session") + WebDriverWait(driver, 20).until(EC.url_contains("timeSessionView")) click_first_grid_button(driver, "Time Session Details") step.capture("open_time_session_details") step.capture("before_edit_order_normal") @@ -166,11 +168,11 @@ def complete_time_session_edits_from_saved_token(driver, step, token): edit_time_session_row( driver, step, - "ORDER_NOR", + "ORDER_NORMAL", order_nor_start_time, order_nor_end_time ) - edit_time_session_row(driver, step, "ORDER_EXCH", order_exch_start_time, order_exch_end_time) + edit_time_session_row(driver, step, "ORDER_EXCHANGE", order_exch_start_time, order_exch_end_time) edit_time_session_row(driver, step, "TRADE", trade_start_time, trade_end_time) click_first_grid_button(driver, "Token Details") @@ -291,6 +293,11 @@ def create_and_activate_token(driver, step, token): next_day, token_expiry = get_delivery_date_and_expiry(token) + if token.get("product_type", "").upper() == "REC": + token_type_prefix = token.get("type_prefix", "REC") + token_type = f"{token_type_prefix}-{datetime.now().strftime('%d%m%Y')}" + step.type((By.XPATH, Locator.tokentype), token_type, f"enter_type_{product_code.lower()}") + if token.get("product_type", "").upper() == "UPC": today = datetime.now().strftime("%d/%m/%Y") if token.get("generation_mode") == "AnyDayUPC": @@ -310,9 +317,14 @@ def create_and_activate_token(driver, step, token): continue type_first_visible_input(driver, locator, value) - if token.get("generation_mode") not in ("WeeklyUPC", "MonthlyUPC"): + if ( + token.get("generation_mode") not in ("WeeklyUPC", "MonthlyUPC") + and token.get("product_type", "").upper() != "REC" + ): step.type((By.XPATH, Locator.tokendeliverystartdate), next_day, f"enter_delivery_start_date_{product_code.lower()}") step.type((By.XPATH, Locator.tokendeliveryenddate), next_day, f"enter_delivery_end_date_{product_code.lower()}") + + if token.get("generation_mode") not in ("WeeklyUPC", "MonthlyUPC"): step.type((By.XPATH, Locator.tokenexpirydate), token_expiry, f"enter_token_expiry_date_{product_code.lower()}") step.click((By.XPATH, Locator.savetokenbtn), f"save_token_{product_code.lower()}")