From fe1d805c808ecf9e065f3e0a3fb52fad6ed30f07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Saugat=20Pachhai=20=28=E0=A4=B8=E0=A5=8C=E0=A4=97=E0=A4=BE?= =?UTF-8?q?=E0=A4=A4=29?= Date: Thu, 3 Nov 2022 20:56:15 +0545 Subject: [PATCH] migrate test_cli.py to pytest --- tests/func/test_cli.py | 284 ++++++++++++++++++++--------------------- 1 file changed, 137 insertions(+), 147 deletions(-) diff --git a/tests/func/test_cli.py b/tests/func/test_cli.py index e6bdfad43..57af7d771 100644 --- a/tests/func/test_cli.py +++ b/tests/func/test_cli.py @@ -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):