Add RTM session and configurable token generator flow
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
from unittest.mock import Mock
|
||||
from datetime import datetime
|
||||
|
||||
from tests.locators import Locator
|
||||
from tests.setup.tokens import test_trading_token as actions
|
||||
|
||||
|
||||
def test_rtm_saves_generator_token_without_idas_activation(monkeypatch):
|
||||
events = []
|
||||
monkeypatch.setattr(actions, "open_trading_maintenance_page", lambda driver, menu: events.append(menu))
|
||||
monkeypatch.setattr(actions, "handle_transient_popups", lambda driver: None)
|
||||
monkeypatch.setattr(
|
||||
actions, "select_bootstrap_dropdown_by_id",
|
||||
lambda driver, field, value, exact=False: events.append((field, value, exact)),
|
||||
)
|
||||
idas_flow = Mock()
|
||||
monkeypatch.setattr(actions, "create_and_activate_token", idas_flow)
|
||||
step = Mock()
|
||||
step.click.side_effect = lambda locator, name: events.append(locator[1])
|
||||
monkeypatch.setattr(actions, "get_rtm_token_times", lambda token: (
|
||||
"23/09/2026 00:00", "23/09/2026 23:59", "10:15", "20:00",
|
||||
))
|
||||
monkeypatch.setattr(actions, "type_first_visible_input", lambda driver, locator, value: events.append((locator, value)))
|
||||
|
||||
actions.run_token_setup(Mock(), step, {
|
||||
"product_type": "RTM", "market_code": "NATIONAL",
|
||||
"product_code": "RTM", "generation_mode": "RTM",
|
||||
})
|
||||
|
||||
assert events == [
|
||||
Locator.tokengenerator,
|
||||
("marketCode", "NATIONAL", True),
|
||||
("productCode", "RTM", True),
|
||||
("tokenMstr.genMode", "RTM", True),
|
||||
Locator.addnewtokenbtn,
|
||||
(Locator.rtmdeliveryfromdate, "23/09/2026 00:00"),
|
||||
(Locator.rtmdeliverytodate, "23/09/2026 23:59"),
|
||||
(Locator.rtmsessionstarttime, "10:15"),
|
||||
(Locator.rtmsessionendtime, "20:00"),
|
||||
Locator.savetokenbtn,
|
||||
]
|
||||
step.type.assert_not_called()
|
||||
idas_flow.assert_not_called()
|
||||
|
||||
|
||||
def test_idas_keeps_existing_creation_and_activation_flow(monkeypatch):
|
||||
idas_flow = Mock()
|
||||
rtm_flow = Mock()
|
||||
monkeypatch.setattr(actions, "create_and_activate_token", idas_flow)
|
||||
monkeypatch.setattr(actions, "open_rtm_new_token", rtm_flow)
|
||||
driver, step = Mock(), Mock()
|
||||
token = {"product_type": "IDAS", "product_code": "IDAS4"}
|
||||
|
||||
actions.run_token_setup(driver, step, token)
|
||||
|
||||
idas_flow.assert_called_once_with(driver, step, token)
|
||||
rtm_flow.assert_not_called()
|
||||
|
||||
|
||||
def test_rtm_token_timing_defaults_and_overrides():
|
||||
now = datetime(2026, 9, 23, 10, 58)
|
||||
assert actions.get_rtm_token_times({}, now) == (
|
||||
"23/09/2026 00:00", "23/09/2026 23:59", "11:03", "20:00",
|
||||
)
|
||||
assert actions.get_rtm_token_times({
|
||||
"delivery_offset_days": 1,
|
||||
"delivery_from_time": "01:30", "delivery_to_time": "22:00",
|
||||
"session_start_offset_minutes": 12, "session_end_time": "21:15",
|
||||
}, now) == (
|
||||
"24/09/2026 01:30", "24/09/2026 22:00", "11:10", "21:15",
|
||||
)
|
||||
Reference in New Issue
Block a user