def test_unregister_driver(self): h5py.register_driver('new-driver', lambda plist: None) self.assertIn('new-driver', h5py.registered_drivers()) h5py.unregister_driver('new-driver') self.assertNotIn('new-driver', h5py.registered_drivers()) with self.assertRaises(ValueError) as e: fname = self.mktemp() h5py.File(fname, driver='new-driver') self.assertEqual(str(e.exception), 'Unknown driver type "new-driver"')
def test_open_as_zarr_remote(self, request, capsys): # remote test with ros3 and open_as_zarr item = 'https://dandiarchive.s3.amazonaws.com/girder-assetstore/4f/5a/4f5a24f7608041e495c85329dba318b7' dsetname = '/acquisition/raw_running_wheel_rotation/data' if 'ros3' in h5py.registered_drivers(): hfile = h5py.File(item, mode='r', driver='ros3') else: f = fsspec.open(item, 'rb') hfile = h5py.File(f.open(), mode='r') dset = hfile[dsetname] with capsys.disabled(): print("\n" + f"{item} :".rjust(len(request.node.nodeid)), end='') print("\n" + f"dataset: {dsetname}, data :".rjust( len(request.node.nodeid)), end='') zarray = open_as_zarr(dset) # dataset does not have object references assert isinstance(zarray, zarr.Array) # test simple dtype assert_array_equal(dset, zarray) with capsys.disabled(): print("\n" + f"dataset: {dset.name}, fillvalue :".rjust( len(request.node.nodeid)), end='') # test simple fillvalue assert_array_equal(dset.fillvalue, zarray.fill_value)
def setUp(self): # Skip ROS3 tests if internet is not available or the ROS3 driver is not installed try: urllib.request.urlopen('https://dandiarchive.s3.amazonaws.com/ros3test.nwb', timeout=1) except urllib.request.URLError: self.skipTest("Internet access to DANDI failed. Skipping all Ros3 streaming tests.") if 'ros3' not in h5py.registered_drivers(): self.skipTest("ROS3 driver not installed. Skipping all Ros3 streaming tests.")
def test_register_driver(self): called_with = [None] def set_fapl(plist, *args, **kwargs): called_with[0] = args, kwargs return _drivers['sec2'](plist) h5py.register_driver('new-driver', set_fapl) self.assertIn('new-driver', h5py.registered_drivers()) fname = self.mktemp() h5py.File(fname, driver='new-driver', driver_arg_0=0, driver_arg_1=1) self.assertEqual( called_with, [((), {'driver_arg_0': 0, 'driver_arg_1': 1})], )