-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathtest_zppy_e3sm_to_cmip.py
More file actions
128 lines (109 loc) · 4.33 KB
/
test_zppy_e3sm_to_cmip.py
File metadata and controls
128 lines (109 loc) · 4.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
import pytest
from zppy.e3sm_to_cmip import check_and_define_parameters, check_parameters_for_bash
from zppy.utils import ParameterNotProvidedError
def test_check_parameters_for_bash():
c = {"ts_grid": "grid"}
check_parameters_for_bash(c)
c = {"ts_grid": ""}
with pytest.raises(ParameterNotProvidedError):
check_parameters_for_bash(c)
c = {"component": "atm", "ts_atm_grid": "atm_grid"}
check_parameters_for_bash(c)
c = {"component": "lnd", "ts_land_grid": "land_grid"}
check_parameters_for_bash(c)
c = {"component": "atm", "ts_land_grid": "land_grid"}
with pytest.raises(ParameterNotProvidedError):
check_parameters_for_bash(c)
c = {"component": "lnd", "ts_atm_grid": "atm_grid"}
with pytest.raises(ParameterNotProvidedError):
check_parameters_for_bash(c)
c = {"ts_atm_grid": "atm_grid"}
with pytest.raises(ParameterNotProvidedError):
check_parameters_for_bash(c)
c = {"ts_land_grid": "land_grid"}
with pytest.raises(ParameterNotProvidedError):
check_parameters_for_bash(c)
def test_check_and_define_parameters():
sub = "name_of_this_subsection"
# Guess the subsection
c = {"ts_subsection": "subsection", "guess_section_parameters": True}
check_and_define_parameters(c, sub)
assert c["ts_subsection"] == "subsection"
c = {"ts_subsection": "", "guess_section_parameters": True}
check_and_define_parameters(c, sub)
assert c["ts_subsection"] == "name_of_this_subsection"
c = {
"component": "atm",
"ts_atm_subsection": "atm_subsection",
"guess_section_parameters": True,
}
check_and_define_parameters(c, sub)
assert c["ts_subsection"] == "atm_subsection"
c = {
"component": "lnd",
"ts_land_subsection": "land_subsection",
"guess_section_parameters": True,
}
check_and_define_parameters(c, sub)
assert c["ts_subsection"] == "land_subsection"
c = {
"component": "atm",
"ts_land_subsection": "land_subsection",
"guess_section_parameters": True,
}
check_and_define_parameters(c, sub)
assert c["ts_subsection"] == "name_of_this_subsection"
c = {
"component": "lnd",
"ts_atm_subsection": "atm_subsection",
"guess_section_parameters": True,
}
check_and_define_parameters(c, sub)
assert c["ts_subsection"] == "name_of_this_subsection"
c = {"ts_atm_subsection": "atm_subsection", "guess_section_parameters": True}
check_and_define_parameters(c, sub)
assert c["ts_subsection"] == "name_of_this_subsection"
c = {"ts_land_subsection": "land_subsection", "guess_section_parameters": True}
check_and_define_parameters(c, sub)
assert c["ts_subsection"] == "name_of_this_subsection"
# Don't guess the subsection
c = {"ts_subsection": "subsection", "guess_section_parameters": False}
check_and_define_parameters(c, sub)
assert c["ts_subsection"] == "subsection"
c = {"ts_subsection": "", "guess_section_parameters": False}
with pytest.raises(ParameterNotProvidedError):
check_and_define_parameters(c, sub)
c = {
"component": "atm",
"ts_atm_subsection": "atm_subsection",
"guess_section_parameters": False,
}
with pytest.raises(ParameterNotProvidedError):
check_and_define_parameters(c, sub)
c = {
"component": "lnd",
"ts_land_subsection": "land_subsection",
"guess_section_parameters": False,
}
with pytest.raises(ParameterNotProvidedError):
check_and_define_parameters(c, sub)
c = {
"component": "atm",
"ts_land_subsection": "land_subsection",
"guess_section_parameters": False,
}
with pytest.raises(ParameterNotProvidedError):
check_and_define_parameters(c, sub)
c = {
"component": "lnd",
"ts_atm_subsection": "atm_subsection",
"guess_section_parameters": False,
}
with pytest.raises(ParameterNotProvidedError):
check_and_define_parameters(c, sub)
c = {"ts_atm_subsection": "atm_subsection", "guess_section_parameters": False}
with pytest.raises(ParameterNotProvidedError):
check_and_define_parameters(c, sub)
c = {"ts_land_subsection": "land_subsection", "guess_section_parameters": False}
with pytest.raises(ParameterNotProvidedError):
check_and_define_parameters(c, sub)