Skip to content

Commit c3ba242

Browse files
Refactor topology tests and update type hints to UUID.
Updated e2e topology tests for improved node and edge selection logic. Refactored service ID and dependency parameters in type hints from `int` to `UUID | str` for consistency and clarity across various modules.
1 parent 6b4b46c commit c3ba242

File tree

4 files changed

+15
-18
lines changed

4 files changed

+15
-18
lines changed

keep/api/models/db/topology.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ class TopologyServiceDependencyUpdateRequestDto(
317317

318318

319319
class DeleteServicesRequest(BaseModel, extra="ignore"):
320-
service_ids: List[int]
320+
service_ids: List[UUID | str]
321321

322322

323323
class TopologyServiceYAML(TopologyServiceCreateRequestDTO, extra="ignore"):

keep/api/routes/topology.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -425,7 +425,7 @@ def update_dependency(
425425
"/dependency/{dependency_id}", description="Deleting a dependency manually"
426426
)
427427
def delete_dependency(
428-
dependency_id: int,
428+
dependency_id: UUID | str,
429429
authenticated_entity: AuthenticatedEntity = Depends(
430430
IdentityManagerFactory.get_auth_verifier(["write:topology"])
431431
),

keep/topologies/topologies_service.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ def get_service_application_ids_dict(
100100

101101

102102
def validate_non_manual_exists(
103-
service_ids: list[int], session: Session, tenant_id: str
103+
service_ids: list[UUID | str], session: Session, tenant_id: str
104104
) -> bool:
105105
non_manual_exists = session.query(
106106
exists()
@@ -677,7 +677,7 @@ def update_dependency(
677677
session.close()
678678

679679
@staticmethod
680-
def delete_dependency(dependency_id: int, session: Session, tenant_id: str):
680+
def delete_dependency(dependency_id: UUID | str, session: Session, tenant_id: str):
681681
try:
682682
db_dependency: TopologyServiceDependency = (
683683
TopologiesService.get_dependency_by_id(

tests/e2e_tests/test_topology.py

+11-14
Original file line numberDiff line numberDiff line change
@@ -75,36 +75,33 @@ def test_topology_manual(browser: Page, setup_page_logging, failure_artifacts):
7575
for _ in range(5):
7676
zoom_out_button.click()
7777

78+
node_1 = browser.locator("div.react-flow__node-service").filter(has_text="SERVICE_ID_1")
79+
node_2 = browser.locator("div.react-flow__node-service").filter(has_text="SERVICE_ID_2")
80+
node_3 = browser.locator("div.react-flow__node-service").filter(has_text="SERVICE_ID_3")
81+
7882
# Connect nodes by dragging source to target handles
79-
source_handle = browser.locator("div[data-id='1-1-right-source']")
80-
target_handle_2 = browser.locator("div[data-id='1-2-left-target']")
81-
target_handle_3 = browser.locator("div[data-id='1-3-left-target']")
83+
source_handle = node_1.locator("div[data-handlepos='right']")
84+
target_handle_2 = node_2.locator("div[data-handlepos='left']")
85+
target_handle_3 = node_3.locator("div[data-handlepos='left']")
8286

8387
source_handle.drag_to(target_handle_2)
8488
source_handle.drag_to(target_handle_3)
8589

8690
browser.wait_for_timeout(1000)
8791

8892
# Validate edge connection
89-
edge_1_to_2 = browser.locator(
90-
"g.react-flow__edge[aria-label='Edge from 1 to 2']"
91-
)
93+
edge_1_to_2 = browser.locator("g.react-flow__edge").first
9294
expect(edge_1_to_2).to_have_count(1)
93-
edge_1_to_3 = browser.locator(
94-
"g.react-flow__edge[aria-label='Edge from 1 to 3']"
95-
)
95+
edge_1_to_3 = browser.locator("g.react-flow__edge").last
9696
expect(edge_1_to_3).to_have_count(1)
9797

9898
# Delete edge
9999
edge_end = edge_1_to_2.locator("circle.react-flow__edgeupdater-target")
100100
edge_end.drag_to(browser.locator("body"), force=True)
101-
expect(
102-
browser.locator("g.react-flow__edge[aria-label='Edge from 1 to 2']")
103-
).to_have_count(0)
104101

105102
# Ensure remaining edges are intact
106103
expect(
107-
browser.locator("g.react-flow__edge[aria-label='Edge from 1 to 3']")
104+
browser.locator("g.react-flow__edge")
108105
).to_have_count(1)
109106
browser.wait_for_timeout(2000)
110107

@@ -120,7 +117,7 @@ def test_topology_manual(browser: Page, setup_page_logging, failure_artifacts):
120117
browser.locator("div.react-flow__node").filter(has_text="SERVICE_ID_1")
121118
).to_have_count(0)
122119
expect(
123-
browser.locator("g.react-flow__edge[aria-label='Edge from 1 to 3']")
120+
browser.locator("g.react-flow__edge")
124121
).to_have_count(0)
125122

126123
# Update node name and verify the change

0 commit comments

Comments
 (0)