def test_validate_name_none(setup_teardown_folder): """Test naming rule with error.""" f = File(setup_teardown_folder[1], name_validation=fv.none) f.create_group("abcdefghijklmnopqrstuvwxyz1234567890_-") f.create_group("ABNCUIY&z()(d()&") f.close()
def test_open_mode(setup_teardown_folder): # must exist for mode in ["r+", "r"]: with pytest.raises(IOError): f = File(setup_teardown_folder[1], mode) # create if not exist for mode in ["a", "w", "w-"]: remove(setup_teardown_folder[1]) f = File(setup_teardown_folder[1], mode) f.require_dataset('dset', np.arange(10)) f.attrs['can_overwrite'] = 42 f.attrs['can_overwrite'] = 14 f.require_group('mygroup') remove(setup_teardown_folder[1]) f = File(setup_teardown_folder[1], 'w') f.close() # dummy close # read write if exist f = File(setup_teardown_folder[1], "r+") f.require_group('mygroup') f.require_dataset('dset', np.arange(10)) f.attrs['can_overwrite'] = 42 f.attrs['can_overwrite'] = 14 # read only, can not write f = File(setup_teardown_folder[1], 'r') with pytest.raises(IOError): f.require_dataset('dset', np.arange(10)) f.attrs['can_not_write'] = 42 f.create_group('mygroup')
def test_validate_name_strict(setup_teardown_folder): """Test naming rule strict.""" f = File(setup_teardown_folder[1], name_validation=fv.strict) f.create_group("abcdefghijklmnopqrstuvwxyz1234567890_-") with pytest.raises(NameError): f.create_group("A") f.close()
def test_readwrite(setup_teardown_folder): """Mode 'r+' opens existing file in readwrite mode.""" f = File(setup_teardown_folder[1], 'w') f.create_group('foo') f.close() f = File(setup_teardown_folder[1], 'r+') assert 'foo' in f f.create_group('bar') assert 'bar' in f f.close()
def test_create(setup_teardown_folder): """Mode 'w' opens file in overwrite mode.""" f = File(setup_teardown_folder[1], 'w') assert f f.create_group('foo') f.close() f = File(setup_teardown_folder[1], 'w', allow_remove=True) assert 'foo' not in f f.close() with pytest.raises(FileExistsError): f = File(setup_teardown_folder[1], 'w')
def test_opening_with_different_validate_name(setup_teardown_folder): """Test opening with wrong naming rule.""" f = File(setup_teardown_folder[1], "w", name_validation=fv.none) f.create_group("AAA") f.close() # TODO changing name validation should result in warning/error f = File(setup_teardown_folder[1], "a", name_validation=fv.thorough) with pytest.raises(FileExistsError): f.create_group("aaa") f.close()
def test_append(setup_teardown_folder): """Mode 'a' opens file in append/readwrite mode, creating if necessary.""" f = File(setup_teardown_folder[1], 'a') assert f f.create_group('foo') assert 'foo' in f f = File(setup_teardown_folder[1], 'a') assert 'foo' in f f.create_group('bar') assert 'bar' in f
def test_readonly(setup_teardown_folder): """Mode 'r' opens file in readonly mode.""" f = File(setup_teardown_folder[1], 'w') f.close() assert not f f = File(setup_teardown_folder[1], 'r') assert isinstance(f, File) with pytest.raises(IOError): f.create_group('foo') f.create_dataset("bar", (2)) f.close()
def test_readonly(setup_teardown_folder): """Mode 'r' opens file in readonly mode.""" f = File(setup_teardown_folder[1], 'w') f.close() # TODO comment in when close is implemented # assert not f f = File(setup_teardown_folder[1], 'r') assert f with pytest.raises(IOError): f.create_group('foo') f.create_dataset("bar", (2)) f.close()
def test_validate_name_simple(setup_teardown_folder): """Test naming rule simple.""" f = File(setup_teardown_folder[1], name_validation=fv.thorough) grp = f.create_group("test") grp.create_group("abcdefghijklmnopqrstuvwxyz1234567890_-") with pytest.raises(NameError): grp.create_group("()") f.close() remove(setup_teardown_folder[1]) f = File(setup_teardown_folder[1], name_validation=fv.thorough) grp = f.create_group("test") grp.create_group("aa") with pytest.raises(RuntimeError): grp.create_group("AA")