From f08c90fc6e0f600079f895ce9e78bb59f8d584cd Mon Sep 17 00:00:00 2001 From: Aman Sharma Date: Thu, 2 Jan 2020 02:12:53 +0530 Subject: [PATCH] Ensure `relpath` accepts str and Path-like objects --- dvc/state.py | 9 ++++----- tests/unit/utils/test_utils.py | 8 ++++++++ 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/dvc/state.py b/dvc/state.py index 619740f550..3365690242 100644 --- a/dvc/state.py +++ b/dvc/state.py @@ -429,14 +429,13 @@ def save_link(self, path_info): path_info (dict): path info to add to the list of links. """ assert path_info.scheme == "local" - path = fspath_py35(path_info) - if not os.path.exists(path): + if not os.path.exists(fspath_py35(path_info)): return - mtime, _ = get_mtime_and_size(path, self.repo.tree) - inode = get_inode(path) - relative_path = relpath(path, self.root_dir) + mtime, _ = get_mtime_and_size(path_info, self.repo.tree) + inode = get_inode(path_info) + relative_path = relpath(path_info, self.root_dir) cmd = "REPLACE INTO {}(path, inode, mtime) " "VALUES (?, ?, ?)".format( self.LINK_STATE_TABLE diff --git a/tests/unit/utils/test_utils.py b/tests/unit/utils/test_utils.py index 6b4f75a53d..ec99d8de71 100644 --- a/tests/unit/utils/test_utils.py +++ b/tests/unit/utils/test_utils.py @@ -9,6 +9,7 @@ from dvc.utils import file_md5 from dvc.utils import fix_env from dvc.utils import makedirs +from dvc.utils import relpath from dvc.utils import to_chunks from dvc.utils import tmp_fname from tests.basic_env import TestDir @@ -139,3 +140,10 @@ def pattern(path): tmp_fname(file_path_info), re.IGNORECASE, ) + + +def test_relpath(): + path = "path" + path_info = PathInfo(path) + + assert relpath(path) == relpath(path_info)