Exemple #1
0
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()
Exemple #2
0
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")
Exemple #3
0
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")
Exemple #4
0
def test_file_close(setup_teardown_folder):
    """Closing a file."""
    f = File(setup_teardown_folder[1], mode="w")
    f.close()