@@ -244,23 +244,42 @@ def testReaderWriter(self):
244244 self .assertTrue (db .writer .lastModified is None ) # no flush yet
245245
246246 # create a scalar dataset
247- dset_id = db .createDataset (shape = (), dtype = np .int32 )
248- dset_json = db .getObjectById (dset_id )
247+ dsetA_id = db .createDataset (shape = (), dtype = np .int32 )
248+ dset_json = db .getObjectById (dsetA_id )
249249 self .assertTrue ("created" in dset_json )
250250 dset_create_time = dset_json ["created" ]
251251 self .assertTrue (dset_create_time > 0 )
252252
253+ db .createHardLink (root_id , "dset_a" , dsetA_id )
254+
253255 arr = np .zeros ((), dtype = np .int32 )
254256 arr [()] = 42
255257 sel_all = selections .select ((), ...)
256- db .setDatasetValues (dset_id , sel_all , arr )
257- dset_json = db .getObjectById (dset_id )
258+ db .setDatasetValues (dsetA_id , sel_all , arr )
259+
260+ dset_json = db .getObjectById (dsetA_id )
258261 self .assertTrue ("lastModified" in dset_json )
259262 self .assertTrue (dset_json ["lastModified" ] > dset_create_time )
260263
261- arr = db .getDatasetValues (dset_id , sel_all )
264+ arr = db .getDatasetValues (dsetA_id , sel_all )
262265 self .assertEqual (arr [()], 42 )
263266
267+ # create a scalar dataset with string
268+ dt_str = special_dtype (vlen = str )
269+ dsetB_id = db .createDataset (shape = (), dtype = dt_str )
270+ dset_json = db .getObjectById (dsetB_id )
271+ db .createHardLink (root_id , "dset_b" , dsetB_id )
272+
273+ arr = np .zeros ((), dtype = dt_str )
274+ arr [()] = "hello world"
275+ db .setDatasetValues (dsetB_id , sel_all , arr )
276+
277+ arr = db .getDatasetValues (dsetB_id , sel_all )
278+
279+ e = arr [()]
280+ self .assertEqual (e , "hello world" )
281+ self .assertTrue (isinstance (e , str ))
282+
264283 db .close ()
265284
266285 def testH5PyToHS (self ):
0 commit comments