Skip to content
Snippets Groups Projects
Commit 57eae57e authored by Janet Goldstein's avatar Janet Goldstein
Browse files

Gripe: fix broken capability service tests

parent 4dd0f25a
No related branches found
No related tags found
1 merge request!744Gripe: fix broken capability service tests
Pipeline #4129 passed
......@@ -26,6 +26,8 @@ from hypothesis import given
from hypothesis import strategies as st
# N.B. these imports ARE used!
import pytest
from workspaces.capability.enums import CapabilityRequestState, QueueState
from workspaces.capability.schema import (
Capability,
......@@ -43,7 +45,6 @@ from .conftest import (
TEST_CAPABILITY_REQUEST_ID,
clear_test_database,
)
import pytest
pytest_plugins = ["testing.utils.conftest"]
......
......@@ -18,12 +18,18 @@
""" Unit tests for Capability Service """
# pylint: disable=C0116, C0301, E0401, R0201
from datetime import datetime
from unittest.mock import patch
import pytest
from workspaces.capability.schema import CapabilityExecution
from workspaces.capability.enums import CapabilityVersionState
from workspaces.capability.schema import (
Capability,
CapabilityExecution,
CapabilityRequest,
CapabilityVersion,
)
from workspaces.capability.services.capability_info import CapabilityInfo
from workspaces.capability.services.capability_service import CapabilityService
......@@ -57,26 +63,46 @@ class TestCapabilityService:
(request,) = mock_capability_info.save_entity.call_args.args
assert request.ingested is True
# FIXME: rewrite this test so it succeeds.
@pytest.mark.skip("TODO: broken; needs rewrite")
def test_on_carta_ready(
self,
mock_capability_service: CapabilityService,
mock_capability_info: CapabilityInfo,
mock_capability_execution: CapabilityExecution,
mock_capability_service: CapabilityService,
):
"""
Are we catching the "carta-ready" message and saving the metadata
to the capability request version?
Does on_carta_ready() behave as expected?
:param mock_capability_service: stand-in for capability service
:param mock_capability_info: stand-in for capability info
:param mock_capability_execution: stand-in for capability execution
:param mock_capability_info: passes for a CapabilityInfo
:param mock_capability_service: thinks it's a CapabilityService
:return:
"""
fake_capability = Capability()
fake_capability.name = "null"
fake_capability_request = CapabilityRequest()
fake_capability_request.id = 1
fake_capability_request.capability = fake_capability
fake_capability_request.capability_name = fake_capability.name
fake_exec = CapabilityExecution()
fake_exec.created_at = fake_exec.updated_at = datetime.now()
fake_exec.capability = fake_capability
fake_exec.capability_request_id = fake_capability_request.id
fake_exec.capability_name = fake_capability.name
fake_exec.version_number = 1
fake_exec.state_name = CapabilityVersionState.Complete.name
fake_v1 = CapabilityVersion()
fake_v1.version_number = 1
fake_v1.capability = fake_capability
fake_v1.capability_name = fake_capability.name
fake_v1.capability_request_id = fake_capability_request.id
fake_v1.request = fake_capability_request
fake_v1.capability_request = fake_capability_request
fake_v1.parameters = {"user_email": "nobody@nowhere.edu"}
fake_v1.executions = [fake_exec]
wf_request_id = -2
carta_url = "decartes_image_carta_url"
carta_url = "descartes_image_carta_url"
fake_carta_ready_msg = {
"service": "capability",
"routing_key": "capability",
......@@ -84,16 +110,15 @@ class TestCapabilityService:
"subject": {"workflow_request_id": wf_request_id, "argument": {"parent_wf_request_id": -1}},
"type": "carta-ready",
}
save_entity_old_call_count = mock_capability_info.save_entity.call_count
with patch(
"workspaces.capability.services.capability_info.CapabilityInfo.lookup_execution_by_workflow_request_id",
return_value=mock_capability_execution,
return_value=fake_exec,
):
mock_capability_service.on_carta_ready(**fake_carta_ready_msg)
assert mock_capability_info.save_entity.call_count == save_entity_old_call_count + 1
with patch("workspaces.capability.services.capability_info.CapabilityInfo.save_entity"):
save_entity_old_call_count = mock_capability_info.save_entity.call_count
mock_capability_service.on_carta_ready(**fake_carta_ready_msg)
assert mock_capability_info.save_entity.call_count == save_entity_old_call_count + 1
(request_version,) = mock_capability_info.save_entity.call_args.args
assert request_version.version_number > 0
assert request_version.workflow_metadata["carta_url"] == carta_url
(request_version,) = mock_capability_info.save_entity.call_args.args
assert request_version.version_number > 0
assert request_version.workflow_metadata["carta_url"] == carta_url
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment