@@ -214,8 +214,12 @@ def create_file(self, getter):
214214 get_type , getter_style = self ._parse_getter (getter )
215215 main , other = {
216216 'traj' : (self .traj , self .other_traj ),
217- 'sset' : (self .sample_set , self .other_sample_set )
217+ 'sset' : (self .sample_set , self .other_sample_set ),
218+ 'samp' : (self .sample_set [0 ], self .other_sample_set [0 ]),
218219 }[get_type ]
220+ if get_type == 'samp' :
221+ storage .save (main )
222+ storage .save (other )
219223 if get_type == 'sset' :
220224 storage .save (self .sample_set )
221225 storage .save (self .other_sample_set )
@@ -231,20 +235,23 @@ def create_file(self, getter):
231235
232236 if other_tag :
233237 storage .tags [other_tag ] = other
238+
234239 storage .close ()
235240 return filename
236241
237242 @pytest .mark .parametrize ("getter" , [
238243 'name-traj' , 'number-traj' , 'tag-final-traj' , 'tag-initial-traj' ,
239- 'name-sset' , 'number-sset' , 'tag-final-sset' , 'tag-initial-sset'
244+ 'name-sset' , 'number-sset' , 'tag-final-sset' , 'tag-initial-sset' ,
245+ 'name-samp' , 'number-samp' ,
240246 ])
241247 def test_get (self , getter ):
242248 filename = self .create_file (getter )
243249 storage = paths .Storage (filename , mode = 'r' )
244250 get_type , getter_style = self ._parse_getter (getter )
245251 expected = {
246- 'sset' : self .sample_set ,
247- 'traj' : self .traj
252+ 'sset' : [s .trajectory for s in self .sample_set ],
253+ 'traj' : [self .traj ],
254+ 'samp' : [self .sample_set [0 ].trajectory ],
248255 }[get_type ]
249256 get_arg = {
250257 'name' : 'traj' ,
@@ -277,7 +284,13 @@ def test_get_none(self, num_in_file):
277284
278285 st = paths .Storage (filename , mode = 'r' )
279286 obj = INIT_CONDS .get (st , None )
280- assert obj == stored_things [num_in_file - 1 ]
287+ expected = [
288+ [self .traj ],
289+ [s .trajectory for s in self .sample_set ],
290+ [s .trajectory for s in self .other_sample_set ],
291+ [s .trajectory for s in self .other_sample_set ],
292+ ]
293+ assert obj == expected [num_in_file - 1 ]
281294
282295 def test_get_multiple (self ):
283296 filename = self .create_file ('number-traj' )
@@ -297,6 +310,18 @@ def test_cannot_guess(self):
297310 with pytest .raises (RuntimeError ):
298311 self .PARAMETER .get (storage , None )
299312
313+ def test_get_bad_name (self ):
314+ filename = self ._filename ("bad_tag" )
315+ storage = paths .Storage (filename , 'w' )
316+ storage .save (self .traj )
317+ storage .save (self .other_traj )
318+ storage .tags ['bad_tag' ] = "foo"
319+ storage .close ()
320+
321+ storage = paths .Storage (filename , 'r' )
322+ with pytest .raises (RuntimeError , match = "initial conditions type" ):
323+ self .PARAMETER .get (storage , "bad_tag" )
324+
300325
301326class TestINIT_SNAP (ParamInstanceTest ):
302327 PARAMETER = INIT_SNAP
0 commit comments