Skip to content

Commit 81c0dc6

Browse files
continue fixing
1 parent e5e1813 commit 81c0dc6

File tree

2 files changed

+27
-10
lines changed

2 files changed

+27
-10
lines changed

services/director-v2/src/simcore_service_director_v2/modules/db/repositories/projects_nodes.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@
33
import sqlalchemy as sa
44
from models_library.projects import NodesDict, ProjectID
55
from models_library.projects_nodes import Node, NodeID
6-
from simcore_postgres_database.utils_projects_nodes import ProjectNode
6+
from simcore_postgres_database.utils_projects_nodes import (
7+
ProjectNode,
8+
ProjectNodesNodeNotFoundError,
9+
)
710

811
from ..tables import projects_nodes
912
from ._base import BaseRepository
@@ -50,3 +53,17 @@ async def exists_node(self, project_id: ProjectID, node_id: NodeID) -> bool:
5053
)
5154
).fetchone()
5255
return result is not None
56+
57+
async def get_project_id_from_node(self, node_id: NodeID) -> ProjectID:
58+
async with self.db_engine.acquire() as conn:
59+
result = await (
60+
await conn.execute(
61+
sa.select(projects_nodes.c.project_uuid).where(
62+
projects_nodes.c.node_id == f"{node_id}"
63+
)
64+
)
65+
).fetchone()
66+
if result is None:
67+
raise ProjectNodesNodeNotFoundError(node_id=node_id)
68+
69+
return ProjectID(result[0])

services/director-v2/tests/unit/with_dbs/test_modules_db_repositories_projects.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,6 @@
1313
from pytest_simcore.helpers.monkeypatch_envs import setenvs_from_dict
1414
from pytest_simcore.helpers.typing_env import EnvVarsDict
1515
from simcore_postgres_database.utils_projects_nodes import ProjectNodesNodeNotFoundError
16-
from simcore_service_director_v2.modules.db.repositories.projects import (
17-
ProjectsRepository,
18-
)
1916
from simcore_service_director_v2.modules.db.repositories.projects_nodes import (
2017
ProjectsNodesRepository,
2118
)
@@ -81,7 +78,7 @@ async def project(
8178
return await project(registered_user(), workbench=workbench)
8279

8380

84-
async def test_is_node_present_in_workbench(
81+
async def test_exists_node(
8582
initialized_app: FastAPI,
8683
project: ProjectAtDB,
8784
workbench: dict[str, Any],
@@ -117,15 +114,18 @@ async def test_is_node_present_in_workbench(
117114

118115

119116
async def test_get_project_id_from_node(
120-
initialized_app: FastAPI, project: ProjectAtDB, faker: Faker
117+
initialized_app: FastAPI,
118+
project: ProjectAtDB,
119+
workbench: dict[str, Any],
120+
faker: Faker,
121121
):
122-
project_repository = get_repository(initialized_app, ProjectsRepository)
123-
for node_uuid in project.workbench:
122+
project_nodes_repo = get_repository(initialized_app, ProjectsNodesRepository)
123+
for node_uuid in workbench:
124124
assert (
125-
await project_repository.get_project_id_from_node(NodeID(node_uuid))
125+
await project_nodes_repo.get_project_id_from_node(NodeID(node_uuid))
126126
== project.uuid
127127
)
128128

129129
not_existing_node_id = faker.uuid4(cast_to=None)
130130
with pytest.raises(ProjectNodesNodeNotFoundError):
131-
await project_repository.get_project_id_from_node(not_existing_node_id)
131+
await project_nodes_repo.get_project_id_from_node(not_existing_node_id)

0 commit comments

Comments
 (0)