mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-02 07:18:25 +01:00
migrate test_cli.py to pytest
This commit is contained in:
committed by
skshetry
parent
f9b0de883f
commit
fe1d805c80
+137
-147
@@ -1,5 +1,7 @@
|
||||
import os
|
||||
|
||||
import pytest
|
||||
|
||||
from dvc.cli import DvcParserError, parse_args
|
||||
from dvc.cli.command import CmdBase
|
||||
from dvc.commands.add import CmdAdd
|
||||
@@ -12,200 +14,188 @@ from dvc.commands.repro import CmdRepro
|
||||
from dvc.commands.run import CmdRun
|
||||
from dvc.commands.status import CmdDataStatus
|
||||
from dvc.exceptions import DvcException
|
||||
from tests.basic_env import TestDvc
|
||||
|
||||
|
||||
class TestArgParse(TestDvc):
|
||||
def test(self):
|
||||
args = parse_args(["init"])
|
||||
self.assertIsInstance(args.func(args), CmdInit)
|
||||
def test_argparse(dvc):
|
||||
args = parse_args(["init"])
|
||||
assert isinstance(args.func(args), CmdInit)
|
||||
|
||||
|
||||
class TestRun(TestDvc):
|
||||
def test(self):
|
||||
dep1 = "dep1"
|
||||
dep2 = "dep2"
|
||||
def test_run(dvc):
|
||||
dep1 = "dep1"
|
||||
dep2 = "dep2"
|
||||
|
||||
out1 = "out1"
|
||||
out2 = "out2"
|
||||
out1 = "out1"
|
||||
out2 = "out2"
|
||||
|
||||
out_no_cache1 = "out_no_cache1"
|
||||
out_no_cache2 = "out_no_cache2"
|
||||
out_no_cache1 = "out_no_cache1"
|
||||
out_no_cache2 = "out_no_cache2"
|
||||
|
||||
fname = "dvc.dvc"
|
||||
cmd = "cmd"
|
||||
arg1 = "arg1"
|
||||
arg2 = "arg2"
|
||||
fname = "dvc.dvc"
|
||||
cmd = "cmd"
|
||||
arg1 = "arg1"
|
||||
arg2 = "arg2"
|
||||
|
||||
args = parse_args(
|
||||
[
|
||||
"run",
|
||||
"-d",
|
||||
dep1,
|
||||
"--deps",
|
||||
dep2,
|
||||
"-o",
|
||||
out1,
|
||||
"--outs",
|
||||
out2,
|
||||
"-O",
|
||||
out_no_cache1,
|
||||
"--outs-no-cache",
|
||||
out_no_cache2,
|
||||
"--file",
|
||||
fname,
|
||||
cmd,
|
||||
arg1,
|
||||
arg2,
|
||||
]
|
||||
)
|
||||
cmd_cls = args.func(args)
|
||||
self.assertIsInstance(cmd_cls, CmdRun)
|
||||
self.assertEqual(args.deps, [dep1, dep2])
|
||||
self.assertEqual(args.outs, [out1, out2])
|
||||
self.assertEqual(args.outs_no_cache, [out_no_cache1, out_no_cache2])
|
||||
self.assertEqual(args.file, fname)
|
||||
self.assertEqual(args.command, [cmd, arg1, arg2])
|
||||
args = parse_args(
|
||||
[
|
||||
"run",
|
||||
"-d",
|
||||
dep1,
|
||||
"--deps",
|
||||
dep2,
|
||||
"-o",
|
||||
out1,
|
||||
"--outs",
|
||||
out2,
|
||||
"-O",
|
||||
out_no_cache1,
|
||||
"--outs-no-cache",
|
||||
out_no_cache2,
|
||||
"--file",
|
||||
fname,
|
||||
cmd,
|
||||
arg1,
|
||||
arg2,
|
||||
]
|
||||
)
|
||||
cmd_cls = args.func(args)
|
||||
assert isinstance(cmd_cls, CmdRun)
|
||||
assert args.deps == [dep1, dep2]
|
||||
assert args.outs == [out1, out2]
|
||||
assert args.outs_no_cache == [out_no_cache1, out_no_cache2]
|
||||
assert args.file == fname
|
||||
assert args.command == [cmd, arg1, arg2]
|
||||
|
||||
cmd_cls.repo.close()
|
||||
cmd_cls.repo.close()
|
||||
|
||||
|
||||
class TestPull(TestDvc):
|
||||
def test(self):
|
||||
args = parse_args(["pull"])
|
||||
cmd = args.func(args)
|
||||
self.assertIsInstance(cmd, CmdDataPull)
|
||||
def test_pull(dvc):
|
||||
args = parse_args(["pull"])
|
||||
cmd = args.func(args)
|
||||
assert isinstance(cmd, CmdDataPull)
|
||||
|
||||
cmd.repo.close()
|
||||
cmd.repo.close()
|
||||
|
||||
|
||||
class TestPush(TestDvc):
|
||||
def test(self):
|
||||
args = parse_args(["push"])
|
||||
cmd = args.func(args)
|
||||
self.assertIsInstance(cmd, CmdDataPush)
|
||||
def test_push(dvc):
|
||||
args = parse_args(["push"])
|
||||
cmd = args.func(args)
|
||||
assert isinstance(cmd, CmdDataPush)
|
||||
|
||||
cmd.repo.close()
|
||||
cmd.repo.close()
|
||||
|
||||
|
||||
class TestStatus(TestDvc):
|
||||
def test(self):
|
||||
args = parse_args(["status"])
|
||||
cmd = args.func(args)
|
||||
self.assertIsInstance(cmd, CmdDataStatus)
|
||||
def test_status(dvc):
|
||||
args = parse_args(["status"])
|
||||
cmd = args.func(args)
|
||||
assert isinstance(cmd, CmdDataStatus)
|
||||
|
||||
cmd.repo.close()
|
||||
cmd.repo.close()
|
||||
|
||||
|
||||
class TestRepro(TestDvc):
|
||||
def test(self):
|
||||
target1 = "1"
|
||||
target2 = "2"
|
||||
def test_repro(dvc):
|
||||
target1 = "1"
|
||||
target2 = "2"
|
||||
|
||||
args = parse_args(
|
||||
["repro", target1, target2, "-f", "--force", "-s", "--single-item"]
|
||||
)
|
||||
args = parse_args(
|
||||
["repro", target1, target2, "-f", "--force", "-s", "--single-item"]
|
||||
)
|
||||
|
||||
cmd = args.func(args)
|
||||
self.assertIsInstance(cmd, CmdRepro)
|
||||
self.assertEqual(args.targets, [target1, target2])
|
||||
self.assertEqual(args.force, True)
|
||||
self.assertEqual(args.single_item, True)
|
||||
cmd = args.func(args)
|
||||
assert isinstance(cmd, CmdRepro)
|
||||
assert args.targets == [target1, target2]
|
||||
assert args.force
|
||||
assert args.single_item
|
||||
|
||||
cmd.repo.close()
|
||||
cmd.repo.close()
|
||||
|
||||
|
||||
class TestRemove(TestDvc):
|
||||
def test(self):
|
||||
target1 = "1"
|
||||
target2 = "2"
|
||||
def test_remove(dvc):
|
||||
target1 = "1"
|
||||
target2 = "2"
|
||||
|
||||
args = parse_args(["remove", target1, target2])
|
||||
args = parse_args(["remove", target1, target2])
|
||||
|
||||
cmd = args.func(args)
|
||||
self.assertIsInstance(cmd, CmdRemove)
|
||||
self.assertEqual(args.targets, [target1, target2])
|
||||
cmd = args.func(args)
|
||||
assert isinstance(cmd, CmdRemove)
|
||||
assert args.targets == [target1, target2]
|
||||
|
||||
cmd.repo.close()
|
||||
cmd.repo.close()
|
||||
|
||||
|
||||
class TestAdd(TestDvc):
|
||||
def test(self):
|
||||
target1 = "1"
|
||||
target2 = "2"
|
||||
def test_add(dvc):
|
||||
target1 = "1"
|
||||
target2 = "2"
|
||||
|
||||
args = parse_args(["add", target1, target2])
|
||||
args = parse_args(["add", target1, target2])
|
||||
|
||||
cmd = args.func(args)
|
||||
self.assertIsInstance(cmd, CmdAdd)
|
||||
self.assertEqual(args.targets, [target1, target2])
|
||||
cmd = args.func(args)
|
||||
assert isinstance(cmd, CmdAdd)
|
||||
assert args.targets == [target1, target2]
|
||||
|
||||
cmd.repo.close()
|
||||
cmd.repo.close()
|
||||
|
||||
|
||||
class TestConfig(TestDvc):
|
||||
def test(self):
|
||||
name = "section.option"
|
||||
value = "1"
|
||||
def test_config_unset(dvc):
|
||||
name = "section.option"
|
||||
value = "1"
|
||||
|
||||
args = parse_args(["config", "-u", "--unset", name, value])
|
||||
args = parse_args(["config", "-u", "--unset", name, value])
|
||||
|
||||
cmd = args.func(args)
|
||||
self.assertIsInstance(cmd, CmdConfig)
|
||||
self.assertEqual(args.unset, True)
|
||||
self.assertEqual(args.name, (False, "section", "option"))
|
||||
self.assertEqual(args.value, value)
|
||||
|
||||
def test_config_list(self):
|
||||
args = parse_args(["config", "--list"])
|
||||
|
||||
self.assertTrue(args.list)
|
||||
self.assertIsNone(args.name)
|
||||
self.assertIsNone(args.value)
|
||||
cmd = args.func(args)
|
||||
assert isinstance(cmd, CmdConfig)
|
||||
assert args.unset
|
||||
assert args.name == (False, "section", "option")
|
||||
assert args.value == value
|
||||
|
||||
|
||||
class TestCheckout(TestDvc):
|
||||
def test(self):
|
||||
args = parse_args(["checkout"])
|
||||
cmd = args.func(args)
|
||||
self.assertIsInstance(cmd, CmdCheckout)
|
||||
def test_config_list():
|
||||
args = parse_args(["config", "--list"])
|
||||
|
||||
cmd.repo.close()
|
||||
assert args.list
|
||||
assert args.name is None
|
||||
assert args.value is None
|
||||
|
||||
|
||||
class TestFindRoot(TestDvc):
|
||||
def test(self):
|
||||
class Cmd(CmdBase):
|
||||
def run(self):
|
||||
pass
|
||||
def test_checkout(dvc):
|
||||
args = parse_args(["checkout"])
|
||||
cmd = args.func(args)
|
||||
assert isinstance(cmd, CmdCheckout)
|
||||
|
||||
class A:
|
||||
quiet = False
|
||||
verbose = True
|
||||
cd = os.path.pardir
|
||||
|
||||
args = A()
|
||||
with self.assertRaises(DvcException):
|
||||
Cmd(args)
|
||||
cmd.repo.close()
|
||||
|
||||
|
||||
class TestCd(TestDvc):
|
||||
def test(self):
|
||||
class Cmd(CmdBase):
|
||||
def run(self):
|
||||
pass
|
||||
def test_find_root(dvc):
|
||||
class Cmd(CmdBase):
|
||||
def run(self):
|
||||
pass
|
||||
|
||||
class A:
|
||||
quiet = False
|
||||
verbose = True
|
||||
cd = os.path.pardir
|
||||
class A:
|
||||
quiet = False
|
||||
verbose = True
|
||||
cd = os.path.pardir
|
||||
|
||||
parent_dir = os.path.realpath(os.path.pardir)
|
||||
args = A()
|
||||
with self.assertRaises(DvcException):
|
||||
Cmd(args)
|
||||
current_dir = os.path.realpath(os.path.curdir)
|
||||
self.assertEqual(parent_dir, current_dir)
|
||||
args = A()
|
||||
with pytest.raises(DvcException):
|
||||
Cmd(args)
|
||||
|
||||
|
||||
def test_cd(dvc):
|
||||
class Cmd(CmdBase):
|
||||
def run(self):
|
||||
pass
|
||||
|
||||
class A:
|
||||
quiet = False
|
||||
verbose = True
|
||||
cd = os.path.pardir
|
||||
|
||||
parent_dir = os.path.realpath(os.path.pardir)
|
||||
args = A()
|
||||
with pytest.raises(DvcException):
|
||||
Cmd(args)
|
||||
current_dir = os.path.realpath(os.path.curdir)
|
||||
assert parent_dir == current_dir
|
||||
|
||||
|
||||
def test_unknown_command_help(capsys):
|
||||
|
||||
Reference in New Issue
Block a user