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

Gripe: fix broken capability info tests

parent 7b7b3677
No related branches found
No related tags found
1 merge request!814Gripe: fix broken capability info tests
Pipeline #4471 passed
......@@ -22,20 +22,19 @@
""" Tests for CapabilityInfo """
# pylint: disable=C0301, E0401, E0402, R0913, W0621
import datetime
from typing import Dict, List, Optional, Set
from unittest.mock import MagicMock
from unittest.mock import MagicMock, patch
from hypothesis import given, settings
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,
CapabilityExecution,
CapabilityRequest,
CapabilityTemplate,
CapabilityVersion,
CapabilityVersionFile,
QaStaff,
......@@ -274,10 +273,6 @@ def test_unpause_capability(mock_capability_info: CapabilityInfo, capability_jso
assert capability.paused is False
@pytest.mark.skip(
"Broken by capability templates."
" Tries to use 'None' type capability to make request and fails on template render."
)
@given(st.sampled_from(SAMPLE_CAPABILITY_NAMES), st.one_of(st.none(), st.lists(st.text())))
def test_create_capability_request(
mock_capability_info: CapabilityInfo,
......@@ -293,9 +288,10 @@ def test_create_capability_request(
:return:
"""
with clear_test_database(mock_capability_info):
expected_request = mock_capability_info.create_capability_request(cap_name, parameters)
request_query = mock_capability_info.session.query(CapabilityRequest).filter_by(id=expected_request.id)
found_request = request_query.first()
with patch("workspaces.capability.services.capability_info.CapabilityInfo.run_wrester", return_value={}):
expected_request = mock_capability_info.create_capability_request(cap_name, parameters)
request_query = mock_capability_info.session.query(CapabilityRequest).filter_by(id=expected_request.id)
found_request = request_query.first()
assert expected_request.__json__() == found_request.__json__()
......@@ -340,28 +336,38 @@ def test_lookup_capability(mock_capability_info: CapabilityInfo, capability_json
assert expected_capability.__json__() == actual_capability.__json__()
@pytest.mark.skip(
"Broken by capability templates."
" Tries to use 'None' type capability to make request and fails on template render."
)
def test_lookup_capability_request(
mock_capability_info: CapabilityInfo, mock_capability_requests: List[CapabilityRequest]
):
def test_lookup_capability_request(mock_capability_info: CapabilityInfo):
"""
Can we find a given CapabilityRequest?
:param mock_capability_info:
:param mock_capability_requests:
:return:
"""
for expected_request in mock_capability_requests:
template = CapabilityTemplate(filename="PPR.xml", content=str.encode("mi CASA es su CASA"))
capability = Capability()
capability.name = "std_calibration"
capability.id = 1
capability.templates = [template]
expected_request = CapabilityRequest()
expected_request.id = 1
expected_request.capability = capability
expected_request.updated_at = expected_request.created_at = datetime.date(1996, 2, 3)
mock_capability_info.save_entity(expected_request)
with patch(
"workspaces.capability.services.capability_info.CapabilityInfo.run_wrester",
return_value={
"sdmId": "my-lil-project.sb37232973.eb37273554.58745.99721613426",
"projectCode:": "my-lil-project",
"title": "Can this marriage be saved?",
"starttime": 58745.9972239583,
"observer": "Patti Postdoc",
"created_at": "2022-02-18T14:26:14",
"telescope": "EVLA",
},
):
actual_request = mock_capability_info.lookup_capability_request(expected_request.id)
assert expected_request.__json__() == actual_request.__json__()
@pytest.mark.skip("TODO: broken by sorting")
# FIXME: broken by sorting of capability requests
@given(
st.sampled_from(SAMPLE_CAPABILITY_NAMES),
st.lists(
......@@ -385,16 +391,17 @@ def test_lookup_active_capability_requests(
mock_capability_info.session.commit()
all_requests = mock_capability_info.session.query(CapabilityRequest).all()
print(">>> REQUESTS FOUND:\n")
for request in all_requests:
print(request.id)
expected_actives = [r.__json__() for r in all_requests if r.state != "Complete" and r.capability_name == cap_name]
print(">>> REQUESTS EXPECTED:\n")
for request in expected_actives:
print(request.id)
active_requests_json = mock_capability_info.lookup_active_capability_requests(cap_name)
assert active_requests_json["active_requests"] == expected_actives
active_requests_json = mock_capability_info.lookup_active_capability_requests(cap_name)["active_requests"]
assert len(active_requests_json) == len(expected_actives)
for active_request in active_requests_json:
assert active_request in expected_actives
for expected_request in expected_actives:
assert expected_request in active_requests_json
@given(
......@@ -467,7 +474,7 @@ def test_lookup_execution(mock_capability_info: CapabilityInfo, execution_json:
@given(st.from_type(CapabilityRequest))
def test_save_entity(mock_capability_info: CapabilityInfo, request_to_save_json: CapabilityRequest):
def test_save_entity(mock_capability_info: CapabilityInfo, request_to_save_json: Dict):
"""
Given a save-able entity
When the entity is requested to be saved
......
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