|
2 | 2 | from cmip_ref_metrics_pmp import provider |
3 | 3 | from cmip_ref_metrics_pmp.variability_modes import ExtratropicalModesOfVariability |
4 | 4 |
|
5 | | -from cmip_ref.database import Database |
6 | | -from cmip_ref.executor import handle_execution_result |
7 | 5 | from cmip_ref.models import MetricExecutionResult as MetricExecutionResultModel |
8 | 6 | from cmip_ref.solver import solve_metric_executions |
9 | | -from cmip_ref_core.metrics import MetricExecutionResult |
10 | | -from cmip_ref_core.pycmec.metric import CMECMetric |
11 | | -from cmip_ref_core.pycmec.output import CMECOutput |
| 7 | +from cmip_ref.testing import validate_result |
12 | 8 |
|
13 | 9 | variability_metrics = [ |
14 | 10 | pytest.param(metric, id=metric.slug) |
|
17 | 13 | ] |
18 | 14 |
|
19 | 15 |
|
20 | | -def validate_result(config, result: MetricExecutionResult): |
21 | | - database = Database.from_config(config) |
22 | | - metric_execution_result = MetricExecutionResultModel( |
23 | | - metric_execution_group_id=1, |
24 | | - dataset_hash=result.definition.metric_dataset.hash, |
25 | | - output_fragment=str(result.definition.output_fragment()), |
26 | | - ) |
27 | | - database.session.add(metric_execution_result) |
28 | | - database.session.flush() |
29 | | - |
30 | | - assert result.successful |
31 | | - |
32 | | - # Validate bundles |
33 | | - CMECMetric.load_from_json(result.to_output_path(result.metric_bundle_filename)) |
34 | | - CMECOutput.load_from_json(result.to_output_path(result.output_bundle_filename)) |
35 | | - |
36 | | - # Create a fake log file |
37 | | - result.to_output_path("out.log").touch() |
38 | | - |
39 | | - # This checks if the bundles are valid |
40 | | - handle_execution_result( |
41 | | - config, database=database, metric_execution_result=metric_execution_result, result=result |
42 | | - ) |
43 | | - |
44 | | - |
45 | 16 | @pytest.mark.slow |
46 | 17 | @pytest.mark.parametrize("metric", variability_metrics) |
47 | 18 | def test_variability_modes(metric: ExtratropicalModesOfVariability, data_catalog, tmp_path, config, mocker): |
|
0 commit comments