Files
dvc/tests/test_cli.py
T
2018-01-07 16:11:24 +02:00

237 lines
6.6 KiB
Python

import os
from dvc.cli import parse_args
from dvc.command.init import CmdInit
from dvc.command.run import CmdRun
from dvc.command.data_sync import CmdDataPull, CmdDataPush, CmdDataStatus
from dvc.command.repro import CmdRepro
from dvc.command.add import CmdAdd
from dvc.command.remove import CmdRemove
from dvc.command.lock import CmdLock
from dvc.command.gc import CmdGC
from dvc.command.config import CmdConfig
from dvc.command.show_pipeline import CmdShowPipeline
from dvc.command.show_workflow import CmdShowWorkflow
from dvc.command.checkout import CmdCheckout
from dvc.command.find import CmdFind
from dvc.command.fsck import CmdFsck
from tests.basic_env import TestDvc
class TestArgParse(TestDvc):
def test(self):
args = parse_args(['init'])
self.assertIsInstance(args.func(args), CmdInit)
class TestRun(TestDvc):
def test(self):
dep1 = 'dep1'
dep2 = 'dep2'
out1 = 'out1'
out2 = 'out2'
out_no_cache1 = 'out_no_cache1'
out_no_cache2 = 'out_no_cache2'
fname = 'dvc.dvc'
cwd = os.curdir
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,
'-l', '--lock',
'-f', fname,
'--file', fname,
'-c', cwd,
cmd, arg1, arg2])
self.assertIsInstance(args.func(args), 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.cwd, cwd)
self.assertEqual(args.command, [cmd, arg1, arg2])
class TestPull(TestDvc):
def test(self):
args = parse_args(['pull'])
self.assertIsInstance(args.func(args), CmdDataPull)
class TestPush(TestDvc):
def test(self):
args = parse_args(['push'])
self.assertIsInstance(args.func(args), CmdDataPush)
class TestStatus(TestDvc):
def test(self):
args = parse_args(['status'])
self.assertIsInstance(args.func(args), CmdDataStatus)
class TestRepro(TestDvc):
def test(self):
target1 = '1'
target2 = '2'
args = parse_args(['repro',
target1,
target2,
'-f', '--force',
'-s', '--single-item'])
self.assertIsInstance(args.func(args), CmdRepro)
self.assertEqual(args.targets, [target1, target2])
self.assertEqual(args.force, True)
self.assertEqual(args.single_item, True)
class TestRemove(TestDvc):
def test(self):
target1 = '1'
target2 = '2'
args = parse_args(['remove',
target1,
target2])
self.assertIsInstance(args.func(args), CmdRemove)
self.assertEqual(args.targets, [target1, target2])
class TestAdd(TestDvc):
def test(self):
target1 = '1'
target2 = '2'
args = parse_args(['add',
target1,
target2])
self.assertIsInstance(args.func(args), CmdAdd)
self.assertEqual(args.targets, [target1, target2])
class TestLock(TestDvc):
def test(self):
target1 = '1'
target2 = '2'
args = parse_args(['lock',
target1,
target2,
'-u', '--unlock'])
self.assertIsInstance(args.func(args), CmdLock)
self.assertEqual(args.files, [target1, target2])
self.assertEqual(args.unlock, True)
class TestGC(TestDvc):
def test(self):
args = parse_args(['gc'])
self.assertIsInstance(args.func(args), CmdGC)
class TestConfig(TestDvc):
def test(self):
name = 'param'
value = '1'
args = parse_args(['config',
'-u', '--unset',
name,
value])
self.assertIsInstance(args.func(args), CmdConfig)
self.assertEqual(args.unset, True)
self.assertEqual(args.name, name)
self.assertEqual(args.value, value)
class TestShowPipeline(TestDvc):
def test(self):
target1 = '1'
target2 = '2'
args = parse_args(['show',
'pipeline',
target1,
target2])
self.assertIsInstance(args.func(args), CmdShowPipeline)
self.assertEqual(args.target, [target1, target2])
class TestShowWorkflow(TestDvc):
def test(self):
target = '1'
args = parse_args(['show',
'workflow',
'-d', '--dvc-commits',
'-a', '--all-commits',
'-m', '1',
'--max-commits', '1',
target])
self.assertIsInstance(args.func(args), CmdShowWorkflow)
self.assertEqual(args.target, target)
self.assertTrue(args.dvc_commits)
self.assertTrue(args.all_commits)
self.assertEqual(args.max_commits, 1)
class TestCheckout(TestDvc):
def test(self):
args = parse_args(['checkout'])
self.assertIsInstance(args.func(args), CmdCheckout)
class TestFind(TestDvc):
def test(self):
branch = 'branch'
target = 'target'
criteria = 'max'
args = parse_args(['find',
branch,
target,
'-c', criteria,
'--criteria', criteria,
'-s', '--show-value'])
self.assertIsInstance(args.func(args), CmdFind)
self.assertEqual(args.branch_name, branch)
self.assertEqual(args.target, target)
self.assertEqual(args.criteria, criteria)
self.assertTrue(args.show_value)
class TestFsck(TestDvc):
def test(self):
target1 = 'target1'
target2 = 'target2'
args = parse_args(['fsck',
'-p', '--physical',
target1,
target2])
self.assertIsInstance(args.func(args), CmdFsck)
self.assertTrue(args.physical)
self.assertEqual(args.targets, [target1, target2])