Skip to content

Commit 7a6f256

Browse files
committed
Integration tests: add a simpler reftest fixture
1 parent 726040f commit 7a6f256

File tree

4 files changed

+49
-10
lines changed

4 files changed

+49
-10
lines changed

tests/integration/conftest.py

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525

2626
from cylc.flow.config import WorkflowConfig
2727
from cylc.flow.option_parsers import Options
28-
from cylc.flow.network.client import WorkflowRuntimeClient
2928
from cylc.flow.pathutil import get_cylc_run_dir
3029
from cylc.flow.rundb import CylcWorkflowDAO
3130
from cylc.flow.scripts.validate import ValidateOptions
@@ -48,6 +47,7 @@
4847
)
4948

5049
if TYPE_CHECKING:
50+
from cylc.flow.network.client import WorkflowRuntimeClient
5151
from cylc.flow.scheduler import Scheduler
5252
from cylc.flow.task_proxy import TaskProxy
5353

@@ -326,7 +326,7 @@ def _inner(
326326
def gql_query():
327327
"""Execute a GraphQL query given a workflow runtime client."""
328328
async def _gql_query(
329-
client: WorkflowRuntimeClient, query_str: str
329+
client: 'WorkflowRuntimeClient', query_str: str
330330
) -> object:
331331
ret = await client.async_request(
332332
'graphql', {
@@ -511,7 +511,7 @@ def reflog():
511511
512512
"""
513513

514-
def _reflog(schd, flow_nums=False):
514+
def _reflog(schd: 'Scheduler', flow_nums: bool = False) -> Set[tuple]:
515515
submit_task_jobs = schd.task_job_mgr.submit_task_jobs
516516
triggers = set()
517517

@@ -613,3 +613,22 @@ def _set_stop(mode=None):
613613
schd._set_stop = set_stop
614614

615615
return _complete
616+
617+
618+
@pytest.fixture
619+
def reftest(run, reflog, complete):
620+
"""Fixture that runs a simple reftest.
621+
622+
Combines the `reflog` and `complete` fixtures.
623+
"""
624+
async def _reftest(
625+
schd: 'Scheduler',
626+
flow_nums: bool = False,
627+
) -> Set[tuple]:
628+
async with run(schd):
629+
triggers = reflog(schd, flow_nums)
630+
await complete(schd)
631+
632+
return triggers
633+
634+
return _reftest

tests/integration/test_examples.py

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -240,9 +240,6 @@ async def test_reflog(flow, scheduler, run, reflog, complete):
240240
they can be compared with the expected outcome.
241241
"""
242242
id_ = flow({
243-
'scheduler': {
244-
'allow implicit tasks': 'True',
245-
},
246243
'scheduling': {
247244
'initial cycle point': '1',
248245
'final cycle point': '1',
@@ -271,3 +268,25 @@ async def test_reflog(flow, scheduler, run, reflog, complete):
271268
('1/x', None),
272269
('1/z', ('1/b',)),
273270
}
271+
272+
273+
async def test_reftest(flow, scheduler, reftest):
274+
"""Test the triggering of tasks.
275+
276+
This uses the reftest fixture which combines the reflog and
277+
complete fixtures. Suitable for use when you just want to do a simple
278+
reftest.
279+
"""
280+
id_ = flow({
281+
'scheduling': {
282+
'graph': {
283+
'R1': 'a => b'
284+
}
285+
}
286+
})
287+
schd = scheduler(id_, paused_start=False)
288+
289+
assert await reftest(schd) == {
290+
('1/a', None),
291+
('1/b', ('1/a',)),
292+
}

tests/integration/tui/screenshots/test_scheduler_logs.workflow-configuration-file.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
<span style="color:#000000;background:#e5e5e5"></span><span style="color:#000000;background:#e5e5e5"> </span><span style="color:#000000;background:#e5e5e5"> [[root]] </span><span style="color:#000000;background:#e5e5e5"> </span><span style="color:#000000;background:#e5e5e5"></span>
1212
<span style="color:#000000;background:#e5e5e5"></span><span style="color:#000000;background:#e5e5e5"> </span><span style="color:#000000;background:#e5e5e5"> [[[simulation]]] </span><span style="color:#000000;background:#e5e5e5"> </span><span style="color:#000000;background:#e5e5e5"></span>
1313
<span style="color:#000000;background:#e5e5e5"></span><span style="color:#000000;background:#e5e5e5"> </span><span style="color:#000000;background:#e5e5e5"> default run length = PT0S </span><span style="color:#000000;background:#e5e5e5"> </span><span style="color:#000000;background:#e5e5e5"></span>
14-
<span style="color:#000000;background:#e5e5e5"></span><span style="color:#000000;background:#e5e5e5"> </span><span style="color:#000000;background:#e5e5e5"> </span><span style="color:#000000;background:#e5e5e5"> </span><span style="color:#000000;background:#e5e5e5"></span>
15-
<span style="color:#000000;background:#e5e5e5"></span><span style="color:#000000;background:#e5e5e5"> </span><span style="color:#000000;background:#e5e5e5"> </span><span style="color:#000000;background:#e5e5e5"> </span><span style="color:#000000;background:#e5e5e5"></span>
14+
<span style="color:#000000;background:#e5e5e5"></span><span style="color:#000000;background:#e5e5e5"> </span><span style="color:#000000;background:#e5e5e5">[scheduler] </span><span style="color:#000000;background:#e5e5e5"> </span><span style="color:#000000;background:#e5e5e5"></span>
15+
<span style="color:#000000;background:#e5e5e5"></span><span style="color:#000000;background:#e5e5e5"> </span><span style="color:#000000;background:#e5e5e5"> allow implicit tasks = True </span><span style="color:#000000;background:#e5e5e5"> </span><span style="color:#000000;background:#e5e5e5"></span>
1616
<span style="color:#000000;background:#e5e5e5"></span><span style="color:#000000;background:#e5e5e5"> </span><span style="color:#000000;background:#e5e5e5"> </span><span style="color:#000000;background:#e5e5e5"> </span><span style="color:#000000;background:#e5e5e5"></span>
1717
<span style="color:#000000;background:#e5e5e5"></span><span style="color:#000000;background:#e5e5e5"> </span><span style="color:#000000;background:#e5e5e5"> </span><span style="color:#000000;background:#e5e5e5"> </span><span style="color:#000000;background:#e5e5e5"></span>
1818
<span style="color:#000000;background:#e5e5e5"></span><span style="color:#000000;background:#e5e5e5"> </span><span style="color:#000000;background:#e5e5e5"> </span><span style="color:#000000;background:#e5e5e5"> </span><span style="color:#000000;background:#e5e5e5"></span>

tests/integration/utils/flow_tools.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,10 @@ def _make_flow(
7373
.setdefault('simulation', {})
7474
.setdefault('default run length', 'PT0S')
7575
)
76-
conf = flow_config_str(conf)
76+
# allow implicit tasks by default:
77+
conf.setdefault('scheduler', {}).setdefault('allow implicit tasks', 'True')
7778
with open((flow_run_dir / WorkflowFiles.FLOW_FILE), 'w+') as flow_file:
78-
flow_file.write(conf)
79+
flow_file.write(flow_config_str(conf))
7980
return id_
8081

8182

0 commit comments

Comments
 (0)