Skip to content

Commit 19fa589

Browse files
committed
Add more tests for func products
1 parent e45c0ec commit 19fa589

File tree

2 files changed

+52
-2
lines changed

2 files changed

+52
-2
lines changed

services/web/server/src/simcore_service_webserver/functions/_controller/_functions_rpc.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,12 @@ async def delete_function_job(
238238
)
239239

240240

241-
@router.expose(reraise_if_error_type=(FunctionJobCollectionIDNotFoundError,))
241+
@router.expose(
242+
reraise_if_error_type=(
243+
FunctionJobCollectionIDNotFoundError,
244+
FunctionJobCollectionReadAccessDeniedError,
245+
)
246+
)
242247
async def delete_function_job_collection(
243248
app: web.Application,
244249
*,

services/web/server/tests/unit/with_dbs/04/functions_rpc/test_functions_controller_rpc.py

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
# import simcore_service_webserver.functions._functions_controller_rpc as functions_rpc
2222
from models_library.functions_errors import (
2323
FunctionIDNotFoundError,
24+
FunctionJobCollectionReadAccessDeniedError,
2425
FunctionJobIDNotFoundError,
2526
FunctionJobReadAccessDeniedError,
2627
FunctionReadAccessDeniedError,
@@ -153,6 +154,15 @@ async def test_register_get_delete_function(
153154
product_name=osparc_product_name,
154155
)
155156

157+
with pytest.raises(FunctionReadAccessDeniedError):
158+
# Attempt to delete the function by another user
159+
await functions_rpc.delete_function(
160+
rabbitmq_rpc_client=rpc_client,
161+
function_id=registered_function.uid,
162+
user_id=other_logged_user["id"],
163+
product_name="this_is_not_osparc",
164+
)
165+
156166
# Delete the function using its ID
157167
await functions_rpc.delete_function(
158168
rabbitmq_rpc_client=rpc_client,
@@ -812,6 +822,7 @@ async def test_function_job_collection(
812822
mock_function: ProjectFunction,
813823
rpc_client: RabbitMQRPCClient,
814824
logged_user: UserInfoDict,
825+
other_logged_user: UserInfoDict,
815826
osparc_product_name: ProductName,
816827
):
817828
# Register the function first
@@ -867,9 +878,43 @@ async def test_function_job_collection(
867878
)
868879
assert registered_collection.uid is not None
869880

870-
# Assert the registered collection matches the input collection
881+
# Get the function job collection
882+
retrieved_collection = await functions_rpc.get_function_job_collection(
883+
rabbitmq_rpc_client=rpc_client,
884+
function_job_collection_id=registered_collection.uid,
885+
user_id=logged_user["id"],
886+
product_name=osparc_product_name,
887+
)
888+
assert retrieved_collection.uid == registered_collection.uid
871889
assert registered_collection.job_ids == function_job_ids
872890

891+
# Test denied access for another user
892+
with pytest.raises(FunctionJobCollectionReadAccessDeniedError):
893+
await functions_rpc.get_function_job_collection(
894+
rabbitmq_rpc_client=rpc_client,
895+
function_job_collection_id=registered_collection.uid,
896+
user_id=other_logged_user["id"],
897+
product_name=osparc_product_name,
898+
)
899+
900+
# Test denied access for another product
901+
with pytest.raises(FunctionJobCollectionReadAccessDeniedError):
902+
await functions_rpc.get_function_job_collection(
903+
rabbitmq_rpc_client=rpc_client,
904+
function_job_collection_id=registered_collection.uid,
905+
user_id=other_logged_user["id"],
906+
product_name="this_is_not_osparc",
907+
)
908+
909+
# Attempt to delete the function job collection by another user
910+
with pytest.raises(FunctionJobCollectionReadAccessDeniedError):
911+
await functions_rpc.delete_function_job_collection(
912+
rabbitmq_rpc_client=rpc_client,
913+
function_job_collection_id=registered_collection.uid,
914+
user_id=other_logged_user["id"],
915+
product_name=osparc_product_name,
916+
)
917+
873918
await functions_rpc.delete_function_job_collection(
874919
rabbitmq_rpc_client=rpc_client,
875920
function_job_collection_id=registered_collection.uid,

0 commit comments

Comments
 (0)