Skip to content

Commit

Permalink
Add basic tests for _load_extra_facets
Browse files Browse the repository at this point in the history
  • Loading branch information
Klaus Zimmermann committed Jun 8, 2021
1 parent 4142fb0 commit 7032553
Show file tree
Hide file tree
Showing 4 changed files with 58 additions and 1 deletion.
12 changes: 12 additions & 0 deletions tests/sample_data/extra_facets/override/test6-01.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
PROJECT1:
Amon:
tas:
source_var_name: "t2m"
cds_var_name: "temperature_2m"
uas:
source_var_name: "u10n"
cds_var_name: "10m_u-component_of_neutral_wind"
vas:
source_var_name: "v10n"
cds_var_name: "10m_v-component_of_neutral_wind"
6 changes: 6 additions & 0 deletions tests/sample_data/extra_facets/override/test6-02.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
PROJECT1:
Amon:
vas:
source_var_name: "10v"
cds_var_name: "v-component_of_neutral_wind_at_10m"
5 changes: 5 additions & 0 deletions tests/sample_data/extra_facets/simple/test6-01.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
PROJECT1:
Amon:
tas: {source_var_name: "2t", cds_var_name: "2m_temperature"}
psl: {source_var_name: "msl", cds_var_name: "mean_sea_level_pressure"}
36 changes: 35 additions & 1 deletion tests/unit/test_config.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
import pytest

from esmvalcore._config._config import _deep_update
from esmvalcore._config._config import (
_deep_update,
_load_extra_facets,
importlib_files,
)

TEST_DEEP_UPDATE = [([{}], {}), ([dict(a=1, b=2), dict(a=3)], dict(a=3, b=2)),
([
Expand All @@ -15,3 +19,33 @@ def test_deep_update(dictionaries, expected_merged):
for update in dictionaries[1:]:
merged = _deep_update(merged, update)
assert expected_merged == merged


BASE_PATH = importlib_files('tests') / 'sample_data' / 'extra_facets'

TEST_LOAD_EXTRA_FACETS = [
('test-nonexistent', tuple(), {}),
('test-nonexistent', (BASE_PATH / 'simple', ), {}),
('test6', (BASE_PATH / 'simple', ),
dict(PROJECT1=dict(Amon=dict(
tas=dict(cds_var_name='2m_temperature', source_var_name='2t'),
psl=dict(cds_var_name='mean_sea_level_pressure',
source_var_name='msl'))))),
('test6', (BASE_PATH / 'simple', BASE_PATH / 'override'),
dict(PROJECT1=dict(Amon=dict(
tas=dict(cds_var_name='temperature_2m', source_var_name='t2m'),
psl=dict(cds_var_name='mean_sea_level_pressure',
source_var_name='msl'),
uas=dict(cds_var_name='10m_u-component_of_neutral_wind',
source_var_name='u10n'),
vas=dict(cds_var_name='v-component_of_neutral_wind_at_10m',
source_var_name='10v'),
)))),
]


@pytest.mark.parametrize('project, extra_facets_dir, expected',
TEST_LOAD_EXTRA_FACETS)
def test_load_extra_facets(project, extra_facets_dir, expected):
extra_facets = _load_extra_facets(project, extra_facets_dir)
assert extra_facets == expected

0 comments on commit 7032553

Please sign in to comment.