Source code for ewoks.tests.test_icat
from ..bindings import execute_graph
[docs]
def test_upload_context(mock_icat_client):
graph = {
"graph": {"id": "demo", "label": "demo", "schema_version": "1.1"},
"links": [],
"nodes": [
{
"default_inputs": [
{"name": "a", "value": 42},
{"name": "delay", "value": 0},
],
"id": "task0",
"task_identifier": "ewokscore.tests.examples.tasks.sumtask.SumTask",
"task_type": "class",
},
],
}
execute_graph(
graph,
inputs=[{"name": "delay", "value": 0, "all": False}],
upload_parameters={},
)
args, kwargs = mock_icat_client.return_value.store_processed_data.call_args
assert not args
assert set(kwargs) == {"metadata"}
assert set(kwargs["metadata"]) == {"startDate", "endDate"}
duration = kwargs["metadata"]["endDate"] - kwargs["metadata"]["startDate"]
delay = 1
margin = 0.5
execute_graph(
graph,
inputs=[{"name": "delay", "value": delay + margin, "all": False}],
upload_parameters={},
)
args, kwargs = mock_icat_client.return_value.store_processed_data.call_args
assert not args
assert set(kwargs) == {"metadata"}
assert set(kwargs["metadata"]) == {"startDate", "endDate"}
duration_with_delay = (
kwargs["metadata"]["endDate"] - kwargs["metadata"]["startDate"]
)
difference = duration_with_delay - duration
assert difference.total_seconds() > delay