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
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']")