Skip to content

Commit ac1ad3a

Browse files
committed
ongoing
1 parent 245036e commit ac1ad3a

File tree

1 file changed

+70
-24
lines changed

1 file changed

+70
-24
lines changed

tests/e2e-playwright/tests/metamodeling/test_response_surface_modeling.py

Lines changed: 70 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,16 @@
1010
MINUTE,
1111
RobustWebSocket,
1212
ServiceType,
13-
wait_for_service_running,
1413
)
1514

1615
_WAITING_FOR_SERVICE_TO_START: Final[int] = 5 * MINUTE
16+
_WAITING_FOR_SERVICE_TO_APPEAR: Final[int] = 2 * MINUTE
1717
_DEFAULT_RESPONSE_TO_WAIT_FOR: Final[re.Pattern] = re.compile(
1818
r"/flask/list_function_job_collections_for_functionid"
1919
)
2020

21+
_FUNCTION_NAME: Final[str] = "playwright_test_function"
22+
2123

2224
def test_response_surface_modeling(
2325
page: Page,
@@ -30,31 +32,75 @@ def test_response_surface_modeling(
3032
product_url: AnyUrl,
3133
is_service_legacy: bool,
3234
):
33-
with (
34-
log_context(
35-
logging.INFO,
36-
f"Waiting for {service_key} to be responsive (waiting for {_DEFAULT_RESPONSE_TO_WAIT_FOR})",
37-
),
38-
page.expect_response(
39-
_DEFAULT_RESPONSE_TO_WAIT_FOR, timeout=_WAITING_FOR_SERVICE_TO_START
40-
),
41-
):
42-
project_data = create_project_from_service_dashboard(
43-
ServiceType.DYNAMIC, service_key, None, service_version
35+
# 1. create the initial study with jsonifier
36+
with log_context(logging.INFO, "Create new study..."):
37+
jsonifier_project_data = create_project_from_service_dashboard(
38+
ServiceType.COMPUTATIONAL, "jsonifier", None, service_version
4439
)
45-
assert "workbench" in project_data, "Expected workbench to be in project data!"
40+
assert (
41+
"workbench" in jsonifier_project_data
42+
), "Expected workbench to be in project data!"
4643
assert isinstance(
47-
project_data["workbench"], dict
44+
jsonifier_project_data["workbench"], dict
4845
), "Expected workbench to be a dict!"
49-
node_ids: list[str] = list(project_data["workbench"])
46+
node_ids: list[str] = list(jsonifier_project_data["workbench"])
5047
assert len(node_ids) == 1, "Expected 1 node in the workbench!"
48+
# create the number parameter
49+
page.get_by_test_id("newNodeBtn").click()
50+
page.get_by_placeholder("Filter").click()
51+
page.get_by_placeholder("Filter").fill("number parameter")
52+
page.get_by_placeholder("Filter").press("Enter")
5153

52-
wait_for_service_running(
53-
page=page,
54-
node_id=node_ids[0],
55-
websocket=log_in_and_out,
56-
timeout=_WAITING_FOR_SERVICE_TO_START,
57-
press_start_button=False,
58-
product_url=product_url,
59-
is_service_legacy=is_service_legacy,
60-
)
54+
# connect the jsonifier to the parameter
55+
page.get_by_test_id("nodeTreeItem").filter(has_text="jsonifier").click()
56+
page.locator(
57+
"body > div:nth-child(5) > div:nth-child(5) > div:nth-child(3) > div:nth-child(3) > div > div:nth-child(2) > div > div > div:nth-child(3) > div:nth-child(4) > div:nth-child(1) > div > div > div:nth-child(2) > div:nth-child(2) > div > div > div > div:nth-child(2) > div.qx-panelview-content > div > div:nth-child(18)"
58+
).click()
59+
60+
# 2. convert it to a function
61+
# 3. start a RSM with that function
62+
63+
# with log_context(
64+
# logging.INFO,
65+
# f"Waiting for {service_key} to be responsive (waiting for {_DEFAULT_RESPONSE_TO_WAIT_FOR})",
66+
# ):
67+
# project_data = create_project_from_service_dashboard(
68+
# ServiceType.DYNAMIC, service_key, None, service_version
69+
# )
70+
# assert "workbench" in project_data, "Expected workbench to be in project data!"
71+
# assert isinstance(project_data["workbench"], dict), (
72+
# "Expected workbench to be a dict!"
73+
# )
74+
# node_ids: list[str] = list(project_data["workbench"])
75+
# assert len(node_ids) == 1, "Expected 1 node in the workbench!"
76+
77+
# wait_for_service_running(
78+
# page=page,
79+
# node_id=node_ids[0],
80+
# websocket=log_in_and_out,
81+
# timeout=_WAITING_FOR_SERVICE_TO_START,
82+
# press_start_button=False,
83+
# product_url=product_url,
84+
# is_service_legacy=is_service_legacy,
85+
# )
86+
87+
# service_iframe = page.frame_locator("iframe")
88+
# with log_context(logging.INFO, "Waiting for the RSM to be ready..."):
89+
# service_iframe.get_by_role("grid").wait_for(
90+
# state="visible", timeout=_WAITING_FOR_SERVICE_TO_APPEAR
91+
# )
92+
93+
# # select the function
94+
# service_iframe.get_by_role("gridcell", name=_FUNCTION_NAME).click()
95+
96+
# # Find the first input field (textbox) in the iframe
97+
# min_input_field = service_iframe.get_by_role("textbox").nth(0)
98+
# min_input_field.fill("1")
99+
# max_input_field = service_iframe.get_by_role("textbox").nth(1)
100+
# max_input_field.fill("10")
101+
102+
# # click on next
103+
# service_iframe.get_by_role("button", name="Next").click()
104+
105+
# # then we wait a long time
106+
# page.wait_for_timeout(1 * MINUTE)

0 commit comments

Comments
 (0)