Skip to content

Commit 195f26a

Browse files
committed
Issue #163 add milestone tracking to benchmarks
1 parent a5c2946 commit 195f26a

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

qa/benchmarks/tests/test_benchmarks.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,21 +32,24 @@ def test_run_benchmark(
3232
tmp_path: Path,
3333
track_metric,
3434
upload_assets_on_fail,
35-
request
35+
request,
3636
):
3737
track_metric("scenario_id", scenario.id)
3838
# Check if a backend override has been provided via cli options.
3939
override_backend = request.config.getoption("--override-backend")
4040
backend_filter = request.config.getoption("--backend-filter")
4141
if backend_filter and not re.match(backend_filter, scenario.backend):
42-
#TODO apply filter during scenario retrieval, but seems to be hard to retrieve cli param
43-
pytest.skip(f"skipping scenario {scenario.id} because backend {scenario.backend} does not match filter {backend_filter!r}")
42+
# TODO apply filter during scenario retrieval, but seems to be hard to retrieve cli param
43+
pytest.skip(
44+
f"skipping scenario {scenario.id} because backend {scenario.backend} does not match filter {backend_filter!r}"
45+
)
4446
backend = scenario.backend
4547
if override_backend:
4648
_log.info(f"Overriding backend URL with {override_backend!r}")
4749
backend = override_backend
4850

4951
connection: openeo.Connection = connection_factory(url=backend)
52+
track_metric("milestone", "connected", update=True)
5053

5154
# TODO #14 scenario option to use synchronous instead of batch job mode?
5255
job = connection.create_job(
@@ -55,26 +58,34 @@ def test_run_benchmark(
5558
additional=scenario.job_options,
5659
)
5760
track_metric("job_id", job.job_id)
61+
track_metric("milestone", "job created", update=True)
5862

5963
# TODO: monitor timing and progress
6064
# TODO: abort excessively long batch jobs? https://github.com/Open-EO/openeo-python-client/issues/589
6165
job.start_and_wait()
66+
# TODO: "job started" milestone
67+
track_metric("milestone", "job finished", update=True)
6268

6369
collect_metrics_from_job_metadata(job, track_metric=track_metric)
70+
track_metric("milestone", "job metadata obtained", update=True)
6471

6572
results = job.get_results()
73+
track_metric("milestone", "job results metadata obtained", update=True)
6674
collect_metrics_from_results_metadata(results, track_metric=track_metric)
6775

6876
# Download actual results
6977
actual_dir = tmp_path / "actual"
7078
paths = results.download_files(target=actual_dir, include_stac_metadata=True)
79+
track_metric("milestone", "job results downloaded", update=True)
80+
7181
# Upload assets on failure
7282
upload_assets_on_fail(*paths)
7383

7484
# Compare actual results with reference data
7585
reference_dir = download_reference_data(
7686
scenario=scenario, reference_dir=tmp_path / "reference"
7787
)
88+
track_metric("milestone", "benchmark reference data downloaded", update=True)
7889

7990
assert_job_results_allclose(
8091
actual=actual_dir,
@@ -83,3 +94,4 @@ def test_run_benchmark(
8394
rtol=scenario.reference_options.get("rtol", 1e-6),
8495
atol=scenario.reference_options.get("atol", 1e-6),
8596
)
97+
track_metric("milestone", "compared actuals with reference data", update=True)

0 commit comments

Comments
 (0)