예제 #1
0
def test_make_relpath(tmp_dir, monkeypatch):
    from dvc.utils.strictyaml import make_relpath

    path = tmp_dir / "dvc.yaml"
    expected_path = "./dvc.yaml" if os.name == "posix" else ".\\dvc.yaml"
    assert make_relpath(path) == expected_path

    (tmp_dir / "dir").mkdir(exist_ok=True)
    monkeypatch.chdir("dir")

    expected_path = "../dvc.yaml" if os.name == "posix" else "..\\dvc.yaml"
    assert make_relpath(path) == expected_path
예제 #2
0
def test_lockfile_invalid_versions(tmp_dir, dvc, version_info):
    lockdata = {**version_info, "stages": {"foo": {"cmd": "echo foo"}}}
    (tmp_dir / "dvc.lock").dump(lockdata)
    with pytest.raises(YAMLValidationError) as exc_info:
        Lockfile(dvc, tmp_dir / "dvc.lock").load()

    rel = make_relpath("dvc.lock")
    assert f"'{rel}' validation failed" in str(exc_info.value)
    assert (str(exc_info.value.__cause__) ==
            f"invalid schema version {version_info['schema']}, "
            "expected one of ['2.0'] for dictionary value @ "
            "data['schema']")