mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-10 15:28:34 +01:00
gc: do not work without specifier when using -c flag (#3493)
* gc: ask for specifier when using -c flag * tests: add -w flag with gc -c
This commit is contained in:
@@ -19,7 +19,6 @@ class CmdGC(CmdBase):
|
||||
all_tags=self.args.all_tags,
|
||||
all_commits=self.args.all_commits,
|
||||
workspace=self.args.workspace,
|
||||
cloud=self.args.cloud,
|
||||
)
|
||||
|
||||
msg = "This will remove all cache except items used in "
|
||||
|
||||
@@ -46,7 +46,6 @@ def gc(
|
||||
all_tags=all_tags,
|
||||
all_commits=all_commits,
|
||||
all_branches=all_branches,
|
||||
cloud=cloud,
|
||||
)
|
||||
|
||||
from contextlib import ExitStack
|
||||
|
||||
@@ -367,7 +367,7 @@ class TestDataCloudCLIBase(TestDvc):
|
||||
self.assertTrue(os.path.isfile(cache_dir))
|
||||
|
||||
# NOTE: check if remote gc works correctly on directories
|
||||
self.main(["gc", "-c", "-f"] + args)
|
||||
self.main(["gc", "-cw", "-f"] + args)
|
||||
shutil.move(
|
||||
self.dvc.cache.local.cache_dir,
|
||||
self.dvc.cache.local.cache_dir + ".back",
|
||||
|
||||
+22
-1
@@ -236,6 +236,20 @@ def test_gc_without_workspace_raises_error(tmp_dir, dvc):
|
||||
dvc.gc(force=True, workspace=False)
|
||||
|
||||
|
||||
def test_gc_cloud_with_or_without_specifier(tmp_dir, erepo_dir):
|
||||
dvc = erepo_dir.dvc
|
||||
with erepo_dir.chdir():
|
||||
from dvc.exceptions import InvalidArgumentError
|
||||
|
||||
with pytest.raises(InvalidArgumentError):
|
||||
dvc.gc(force=True, cloud=True)
|
||||
|
||||
dvc.gc(cloud=True, all_tags=True)
|
||||
dvc.gc(cloud=True, all_commits=True)
|
||||
dvc.gc(cloud=True, all_branches=True)
|
||||
dvc.gc(cloud=True, all_commits=False, all_branches=True, all_tags=True)
|
||||
|
||||
|
||||
def test_gc_without_workspace_on_tags_branches_commits(tmp_dir, dvc):
|
||||
dvc.gc(force=True, all_tags=True)
|
||||
dvc.gc(force=True, all_commits=True)
|
||||
@@ -253,6 +267,13 @@ def test_gc_without_workspace(tmp_dir, dvc, caplog):
|
||||
assert "Invalid Arguments" in caplog.text
|
||||
|
||||
|
||||
def test_gc_cloud_without_any_specifier(tmp_dir, dvc, caplog):
|
||||
with caplog.at_level(logging.WARNING, logger="dvc"):
|
||||
assert main(["gc", "-cvf"]) == 255
|
||||
|
||||
assert "Invalid Arguments" in caplog.text
|
||||
|
||||
|
||||
def test_gc_with_possible_args_positive(tmp_dir, dvc):
|
||||
for flag in [
|
||||
"-w",
|
||||
@@ -274,5 +295,5 @@ def test_gc_cloud_positive(tmp_dir, dvc, tmp_path_factory):
|
||||
|
||||
dvc.push()
|
||||
|
||||
for flag in ["-c", "-ca", "-cT", "-caT", "-cwT"]:
|
||||
for flag in ["-cw", "-ca", "-cT", "-caT", "-cwT"]:
|
||||
assert main(["gc", "-vf", flag]) == 0
|
||||
|
||||
Reference in New Issue
Block a user