@@ -36,7 +36,7 @@ def test_file(request, metop_reader):
3636 test_file_name = next ((f for f in reduced_data_files if f .name .startswith (product_type )), None )
3737 test_file_path = reduced_data_folder / test_file_name
3838
39- return test_file_path
39+ return str ( test_file_path )
4040
4141
4242@pytest .mark .parametrize ("test_file" , ["ASCA_SZO" ], indirect = True )
@@ -45,7 +45,7 @@ def test_get_keys(metop_reader, test_file):
4545 Simple test for metop_reader.get_key
4646 """
4747 # arrange
48- ds = metop_reader .open_dataset (file_path = str ( test_file ) )
48+ ds = metop_reader .open_dataset (test_file )
4949
5050 # act
5151 keys = metop_reader .get_keys (ds )
@@ -69,7 +69,7 @@ def test_close_dataset(metop_reader, test_file):
6969 """
7070 # arrange
7171 import juliacall
72- ds = metop_reader .open_dataset (file_path = str ( test_file ) )
72+ ds = metop_reader .open_dataset (test_file )
7373
7474 # act
7575 metop_reader .close_dataset (ds )
@@ -85,7 +85,7 @@ def test_shape(metop_reader, test_file):
8585 Simple test for metop_reader.shape.
8686 """
8787 # arrange
88- ds = metop_reader .open_dataset (file_path = str ( test_file ) )
88+ ds = metop_reader .open_dataset (test_file )
8989
9090 # act
9191 latitude = ds ['latitude' ]
@@ -110,7 +110,7 @@ def test_read_single_value(metop_reader, test_file):
110110 """
111111 # arrange
112112 import datetime
113- ds = metop_reader .open_dataset (file_path = str ( test_file ) )
113+ ds = metop_reader .open_dataset (test_file )
114114
115115 # act
116116 CO2_radiance = ds ["gs1cspect" ][91 , 0 , 0 , 0 ]
@@ -137,7 +137,7 @@ def test_read_array(metop_reader, test_file):
137137 """
138138 # arrange
139139 import numpy as np
140- ds = metop_reader .open_dataset (file_path = str ( test_file ) )
140+ ds = metop_reader .open_dataset (test_file )
141141
142142 # act
143143 latitude_julia = metop_reader .as_array (ds ['latitude' ])
@@ -165,7 +165,7 @@ def test_type_stable_array(metop_reader, test_file):
165165 """
166166 # arrange
167167 import numpy as np
168- ds = metop_reader .open_dataset (file_path = str ( test_file ) , maskingvalue = float ("nan" ))
168+ ds = metop_reader .open_dataset (test_file , maskingvalue = float ("nan" ))
169169
170170 # act
171171 latitude = np .array (metop_reader .as_array (ds ['latitude' ]), copy = None )
@@ -186,7 +186,7 @@ def test_different_file_types(metop_reader, test_file):
186186 Test that different types of test files can be opened.
187187 """
188188 # act
189- ds = metop_reader .open_dataset (file_path = str ( test_file ) )
189+ ds = metop_reader .open_dataset (test_file )
190190
191191 # assert
192192 assert ds is not None
@@ -204,7 +204,7 @@ def test_no_auto_convert(metop_reader, test_file):
204204 """
205205 # arrange
206206 from juliacall import Main as jl
207- ds = metop_reader .open_dataset (file_path = str ( test_file ) , auto_convert = False )
207+ ds = metop_reader .open_dataset (test_file , auto_convert = False )
208208
209209 # act
210210 start_time = ds ["record_start_time" ][2 ]
@@ -216,4 +216,29 @@ def test_no_auto_convert(metop_reader, test_file):
216216 assert start_time .millisecond == 73275381
217217
218218 # clean
219- metop_reader .close_dataset (ds )
219+ metop_reader .close_dataset (ds )
220+
221+
222+ @pytest .mark .parametrize ("test_file" , ["ASCA_SZO" ], indirect = True )
223+ def test_with_dataset (metop_reader , test_file ):
224+ """
225+ Test using `with` syntax to read data from a data set.
226+ """
227+ # arrange
228+ import numpy as np
229+ import juliacall
230+ ds_place_holder = None
231+ latitude = None
232+
233+ # act
234+ with metop_reader .dataset (test_file , maskingvalue = float ("nan" )) as ds :
235+ latitude_julia = metop_reader .as_array (ds ['latitude' ])
236+ latitude = np .array (latitude_julia , copy = None )
237+ ds_place_holder = ds
238+
239+ # assert
240+ assert np .all ((- 90 < latitude )& (latitude < 90 )) # check values
241+ assert latitude .shape == (42 ,10 ) # check size
242+ with pytest .raises (juliacall .JuliaError ): # check that file is closed.
243+ ds_place_holder ['longitude' ][0 ,0 ]
244+
0 commit comments