@@ -23,43 +23,61 @@ def outputs(self) -> List[str]:
2323
2424 def test_all_defaults (self ):
2525 result = self .invoke_cli (['level' , TEST_ZARR_DIR ])
26- self ._assert_result_ok (result , [((1 , 1 , 1 , 1 , 1 ), (90 , 90 ), (180 , 180 )),
27- ((1 , 1 , 1 , 1 , 1 ), (90 ,), (180 ,))], LevelDataTest .TEST_OUTPUT ,
28- 'Level 1 of 2 written after .*\n '
29- 'Level 2 of 2 written after .*\n '
30- '2 level\(s\) written into test.levels after .*\n ' )
26+ self ._assert_result_ok (
27+ result , [((1 , 1 , 1 , 1 , 1 ), (90 , 90 ), (180 , 180 )),
28+ ((1 , 1 , 1 , 1 , 1 ), (90 ,), (180 ,))],
29+ LevelDataTest .TEST_OUTPUT ,
30+ 'Level 1 of 2 written after .*\n '
31+ 'Level 2 of 2 written after .*\n '
32+ '2 level\(s\) written into test.levels after .*\n '
33+ )
3134
3235 def test_with_output (self ):
33- result = self .invoke_cli (['level' , TEST_ZARR_DIR , '--output' , 'my.levels' ])
34- self ._assert_result_ok (result , [((1 , 1 , 1 , 1 , 1 ), (90 , 90 ), (180 , 180 )),
35- ((1 , 1 , 1 , 1 , 1 ), (90 ,), (180 ,))], 'my.levels' ,
36- 'Level 1 of 2 written after .*\n '
37- 'Level 2 of 2 written after .*\n '
38- '2 level\(s\) written into my.levels after .*\n ' )
36+ result = self .invoke_cli (['level' , TEST_ZARR_DIR ,
37+ '--output' , 'my.levels' ])
38+ self ._assert_result_ok (
39+ result , [((1 , 1 , 1 , 1 , 1 ), (90 , 90 ), (180 , 180 )),
40+ ((1 , 1 , 1 , 1 , 1 ), (90 ,), (180 ,))], 'my.levels' ,
41+ 'Level 1 of 2 written after .*\n '
42+ 'Level 2 of 2 written after .*\n '
43+ '2 level\(s\) written into my.levels after .*\n '
44+ )
3945
4046 def test_with_tile_size_and_num_levels (self ):
41- result = self .invoke_cli (['level' , TEST_ZARR_DIR , '-t' , '90,45' , '-n' , '4' ])
42- self ._assert_result_ok (result , [((1 , 1 , 1 , 1 , 1 ), (45 , 45 , 45 , 45 ), (90 , 90 , 90 , 90 )),
43- ((1 , 1 , 1 , 1 , 1 ), (45 , 45 ), (90 , 90 )),
44- ((1 , 1 , 1 , 1 , 1 ), (45 ,), (90 ,))], LevelDataTest .TEST_OUTPUT ,
45- 'Level 1 of 3 written after .*\n '
46- 'Level 2 of 3 written after .*\n '
47- 'Level 3 of 3 written after .*\n '
48- '3 level\(s\) written into test.levels after .*\n ' )
49-
50- def _assert_result_ok (self , result , level_chunks : List [Tuple ], output_path : str , message_regex : str ):
47+ result = self .invoke_cli (['level' , TEST_ZARR_DIR ,
48+ '-t' , '90,45' , '-n' , '4' ])
49+ self ._assert_result_ok (
50+ result , [((1 , 1 , 1 , 1 , 1 ), (45 , 45 , 45 , 45 ), (90 , 90 , 90 , 90 )),
51+ ((1 , 1 , 1 , 1 , 1 ), (45 , 45 ), (90 , 90 )),
52+ ((1 , 1 , 1 , 1 , 1 ), (45 ,), (90 ,))],
53+ LevelDataTest .TEST_OUTPUT ,
54+ 'Level 1 of 3 written after .*\n '
55+ 'Level 2 of 3 written after .*\n '
56+ 'Level 3 of 3 written after .*\n '
57+ '3 level\(s\) written into test.levels after .*\n '
58+ )
59+
60+ def _assert_result_ok (self ,
61+ result ,
62+ level_chunks : List [Tuple ],
63+ output_path : str ,
64+ message_regex : str ):
5165 self .assertEqual (0 , result .exit_code )
5266 self .assertRegex (result .stdout , message_regex )
5367 self .assertTrue (os .path .isdir (output_path ))
5468 level_datasets = read_levels (output_path )
5569 level = 0
5670 for level_dataset in level_datasets :
5771 assert_cube (level_dataset )
58- self .assertEqual ({'precipitation' , 'soil_moisture' , 'temperature' },
72+ self .assertEqual ({'precipitation' ,
73+ 'soil_moisture' ,
74+ 'temperature' },
5975 set (level_dataset .data_vars .keys ()))
6076 for var_name , var in level_dataset .data_vars .items ():
6177 var_chunks = level_chunks [level ]
62- self .assertEqual (var_chunks , var .chunks , f'{ var_name } at level { level } ' )
78+ self .assertEqual (var_chunks ,
79+ var .chunks ,
80+ f'{ var_name } at level { level } ' )
6381 level += 1
6482
6583 def _assert_result_not_ok (self , result , message_regex : str ):
@@ -74,7 +92,8 @@ def test_level_with_nc(self):
7492 ])
7593 self .assertEqual (0 , result .exit_code )
7694 self .assertTrue (os .path .isdir (LevelDataTest .TEST_OUTPUT ))
77- self .assertEqual ({'0.zarr' , '1.zarr' , '2.zarr' }, set (os .listdir (LevelDataTest .TEST_OUTPUT )))
95+ self .assertEqual ({'0.zarr' , '1.zarr' , '2.zarr' },
96+ set (os .listdir (LevelDataTest .TEST_OUTPUT )))
7897
7998 def test_level_with_zarr (self ):
8099 result = self .invoke_cli (["level" ,
@@ -84,7 +103,8 @@ def test_level_with_zarr(self):
84103 ])
85104 self .assertEqual (0 , result .exit_code )
86105 self .assertTrue (os .path .isdir (LevelDataTest .TEST_OUTPUT ))
87- self .assertEqual ({'0.zarr' , '1.zarr' , '2.zarr' }, set (os .listdir (LevelDataTest .TEST_OUTPUT )))
106+ self .assertEqual ({'0.zarr' , '1.zarr' , '2.zarr' },
107+ set (os .listdir (LevelDataTest .TEST_OUTPUT )))
88108
89109 def test_level_with_zarr_link (self ):
90110 result = self .invoke_cli (["level" ,
@@ -95,7 +115,8 @@ def test_level_with_zarr_link(self):
95115 ])
96116 self .assertEqual (0 , result .exit_code )
97117 self .assertTrue (os .path .isdir (LevelDataTest .TEST_OUTPUT ))
98- self .assertEqual ({'0.link' , '1.zarr' , '2.zarr' }, set (os .listdir (LevelDataTest .TEST_OUTPUT )))
118+ self .assertEqual ({'0.link' , '1.zarr' , '2.zarr' },
119+ set (os .listdir (LevelDataTest .TEST_OUTPUT )))
99120
100121 def test_level_with_zarr_num_levels_max (self ):
101122 result = self .invoke_cli (["level" ,
@@ -106,43 +127,56 @@ def test_level_with_zarr_num_levels_max(self):
106127 ])
107128 self .assertEqual (0 , result .exit_code )
108129 self .assertTrue (os .path .isdir (LevelDataTest .TEST_OUTPUT ))
109- self .assertEqual ({'0.zarr' , '1.zarr' }, set (os .listdir (LevelDataTest .TEST_OUTPUT )))
130+ self .assertEqual ({'0.zarr' , '1.zarr' },
131+ set (os .listdir (LevelDataTest .TEST_OUTPUT )))
110132
111133 def test_invalid_inputs (self ):
112134 result = self .invoke_cli (["level" ,
113135 "-t" , "a45" ,
114136 "-o" , LevelDataTest .TEST_OUTPUT ,
115137 TEST_NC_FILE ,
116138 ])
117- self ._assert_result_not_ok (result ,
118- "Error\\ : Invalid tile sizes in TILE_SIZE found: "
119- "invalid literal for int\\ (\\ ) with base 10\\ : 'a45'\n " )
139+ self ._assert_result_not_ok (
140+ result ,
141+ "Error\\ : Invalid tile sizes in TILE_SIZE found: "
142+ "invalid literal for int\\ (\\ ) with base 10\\ : 'a45'\n "
143+ )
120144
121145 result = self .invoke_cli (["level" ,
122146 "-t" , "-3" ,
123147 "-o" , LevelDataTest .TEST_OUTPUT ,
124148 TEST_NC_FILE ,
125149 ])
126- self ._assert_result_not_ok (result ,
127- "Error\\ : Invalid tile sizes in TILE_SIZE found\\ : "
128- "all items must be positive integer numbers\n " )
150+ self ._assert_result_not_ok (
151+ result ,
152+ "Error\\ : Invalid tile sizes in TILE_SIZE found\\ : "
153+ "all items must be positive integer numbers\n "
154+ )
129155
130156 result = self .invoke_cli (["level" ,
131157 "-t" , "45,45,45" ,
132158 "-o" , LevelDataTest .TEST_OUTPUT ,
133159 TEST_NC_FILE ])
134- self ._assert_result_not_ok (result ,
135- "Error\\ : TILE_SIZE must have 2 tile sizes separated by ','\n " )
160+ self ._assert_result_not_ok (
161+ result ,
162+ "Error\\ : TILE_SIZE must have 2 tile sizes separated by ','\n "
163+ )
136164
137165 result = self .invoke_cli (["level" ,
138166 "-n" , "0" ,
139167 "-o" , LevelDataTest .TEST_OUTPUT ,
140168 TEST_NC_FILE ])
141- self ._assert_result_not_ok (result ,
142- "NUM_LEVELS_MAX must be a positive integer\n " )
169+ self ._assert_result_not_ok (
170+ result ,
171+ "NUM_LEVELS_MAX must be a positive integer\n "
172+ )
143173
144174 def test_with_existing_output (self ):
145- result = self .invoke_cli (['level' , TEST_ZARR_DIR , '--output' , 'my.levels' ])
146- result = self .invoke_cli (['level' , TEST_ZARR_DIR , '--output' , 'my.levels' ])
147- self ._assert_result_not_ok (result , 'Error: output \' my\\ .levels\' already exists\n ' )
148-
175+ result = self .invoke_cli (['level' , TEST_ZARR_DIR ,
176+ '--output' , 'my.levels' ])
177+ result = self .invoke_cli (['level' , TEST_ZARR_DIR ,
178+ '--output' , 'my.levels' ])
179+ self ._assert_result_not_ok (
180+ result ,
181+ 'Error: output \' my\\ .levels\' already exists\n '
182+ )
0 commit comments