mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-11 07:18:28 +01:00
get: update show-url to take remote args
This commit is contained in:
committed by
Dave Berenbaum
parent
6bdf41a217
commit
377d0c9d58
+2
-7
@@ -25,7 +25,7 @@ def _wrap_exceptions(repo, url):
|
||||
raise PathMissingError(exc.path, url) from exc
|
||||
|
||||
|
||||
def get_url(path, repo=None, rev=None, remote=None):
|
||||
def get_url(path, repo=None, rev=None, **kwargs):
|
||||
"""
|
||||
Returns the URL to the storage location of a data file or directory tracked
|
||||
in a DVC repo. For Git repos, HEAD is used unless a rev argument is
|
||||
@@ -39,12 +39,7 @@ def get_url(path, repo=None, rev=None, remote=None):
|
||||
from dvc.config import NoRemoteError
|
||||
from dvc_data.index import StorageKeyError
|
||||
|
||||
repo_kwargs: dict[str, Any] = {}
|
||||
if remote:
|
||||
repo_kwargs["config"] = {"core": {"remote": remote}}
|
||||
with Repo.open(
|
||||
repo, rev=rev, subrepos=True, uninitialized=True, **repo_kwargs
|
||||
) as _repo:
|
||||
with Repo.open(repo, rev=rev, subrepos=True, uninitialized=True, **kwargs) as _repo:
|
||||
index, entry = _repo.get_data_index_entry(path)
|
||||
with reraise(
|
||||
(StorageKeyError, ValueError),
|
||||
|
||||
+7
-1
@@ -12,7 +12,13 @@ class CmdGet(CmdBaseNoRepo):
|
||||
from dvc.api import get_url
|
||||
from dvc.ui import ui
|
||||
|
||||
url = get_url(self.args.path, repo=self.args.url, rev=self.args.rev)
|
||||
url = get_url(
|
||||
self.args.path,
|
||||
repo=self.args.url,
|
||||
rev=self.args.rev,
|
||||
remote=self.args.remote,
|
||||
remote_config=self.args.remote_config,
|
||||
)
|
||||
ui.write(url, force=True)
|
||||
|
||||
return 0
|
||||
|
||||
@@ -44,7 +44,21 @@ def test_get(mocker):
|
||||
|
||||
|
||||
def test_get_url(mocker, capsys):
|
||||
cli_args = parse_args(["get", "repo_url", "src", "--rev", "version", "--show-url"])
|
||||
cli_args = parse_args(
|
||||
[
|
||||
"get",
|
||||
"repo_url",
|
||||
"src",
|
||||
"--rev",
|
||||
"version",
|
||||
"--remote",
|
||||
"myremote",
|
||||
"--show-url",
|
||||
"--remote-config",
|
||||
"k1=v1",
|
||||
"k2=v2",
|
||||
]
|
||||
)
|
||||
assert cli_args.func == CmdGet
|
||||
|
||||
cmd = cli_args.func(cli_args)
|
||||
@@ -54,4 +68,10 @@ def test_get_url(mocker, capsys):
|
||||
out, _ = capsys.readouterr()
|
||||
assert "resource_url" in out
|
||||
|
||||
m.assert_called_once_with("src", repo="repo_url", rev="version")
|
||||
m.assert_called_once_with(
|
||||
"src",
|
||||
repo="repo_url",
|
||||
rev="version",
|
||||
remote="myremote",
|
||||
remote_config={"k1": "v1", "k2": "v2"},
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user