mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-04 23:09:44 +01:00
237 lines
6.6 KiB
Python
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])
|