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")
def test_file_init(setup_teardown_folder): no_exdir = setup_teardown_folder[0] / "no_exdir" f = File(no_exdir, mode="w") f.close() assert is_nonraw_object_directory(no_exdir.with_suffix(".exdir")) remove(setup_teardown_folder[1]) f = File(setup_teardown_folder[1], mode="w") f.close() assert is_nonraw_object_directory(setup_teardown_folder[1]) remove(setup_teardown_folder[1]) f = File(setup_teardown_folder[1], mode="a") f.close() assert is_nonraw_object_directory(setup_teardown_folder[1]) remove(setup_teardown_folder[1]) f = File(setup_teardown_folder[1], mode="a") f.close() assert is_nonraw_object_directory(setup_teardown_folder[1]) remove(setup_teardown_folder[1]) setup_teardown_folder[1].mkdir(parents=True) with pytest.raises(FileExistsError): f = File(setup_teardown_folder[1], mode="w") remove(setup_teardown_folder[1]) _create_object_directory(pathlib.Path(setup_teardown_folder[1]), exob._default_metadata(DATASET_TYPENAME)) with pytest.raises(FileExistsError): f = File(setup_teardown_folder[1], mode="w") remove(setup_teardown_folder[1]) with pytest.raises(IOError): f = File(setup_teardown_folder[1], mode="r") with pytest.raises(IOError): f = File(setup_teardown_folder[1], mode="r+") _create_object_directory(pathlib.Path(setup_teardown_folder[1]), exob._default_metadata(FILE_TYPENAME)) with pytest.raises(FileExistsError): f = File(setup_teardown_folder[1], mode="w") remove(setup_teardown_folder[1]) _create_object_directory(pathlib.Path(setup_teardown_folder[1]), exob._default_metadata(FILE_TYPENAME)) f = File(setup_teardown_folder[1], mode="w", allow_remove=True) remove(setup_teardown_folder[1]) _create_object_directory(pathlib.Path(setup_teardown_folder[1]), exob._default_metadata(FILE_TYPENAME)) with pytest.raises(IOError): f = File(setup_teardown_folder[1], mode="w-") with pytest.raises(IOError): f = File(setup_teardown_folder[1], mode="x") with pytest.raises(ValueError): f = File(setup_teardown_folder[1], mode="not existing")
def test_file_close(setup_teardown_folder): """Closing a file.""" f = File(setup_teardown_folder[1], mode="w") f.close()