1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
import sys
from doit.cmd_base import ModuleTaskLoader
from doit.api import run, run_tasks
def test_run(monkeypatch, depfile_name):
monkeypatch.setattr(sys, 'argv', ['did', '--db-file', depfile_name])
try:
def hi():
print('hi')
def task_hi():
return {'actions': [hi]}
run(locals())
except SystemExit as err:
assert err.code == 0
else: # pragma: no cover
assert False
def _dodo():
"""sample tasks"""
def hi(opt=None):
print('hi', opt)
def task_hi():
return {
'actions': [hi],
'params': [{'name': 'opt', 'default': '1'}],
}
def task_two():
def my_error():
return False
return {
'actions': [my_error],
}
return {
'task_hi': task_hi,
'task_two': task_two,
}
def test_run_tasks_success(capsys, depfile_name):
result = run_tasks(
ModuleTaskLoader(_dodo()),
{'hi': {'opt': '3'}},
extra_config = {
'GLOBAL': {
'verbosity': 2,
'dep_file': depfile_name,
},
},
)
assert result == 0
out = capsys.readouterr().out
assert out.strip() == 'hi 3'
def test_run_tasks_error(capsys, depfile_name):
result = run_tasks(
ModuleTaskLoader(_dodo()),
{'two': None},
extra_config = {
'GLOBAL': {
'verbosity': 2,
'dep_file': depfile_name,
},
},
)
assert result == 1
def test_run_tasks_pos(capsys, depfile_name):
def _dodo_pos():
"""sample tasks"""
def hi(opt, pos):
print(f'hi:{opt}--{pos}')
def task_hi():
return {
'actions': [hi],
'params': [{'name': 'opt', 'default': '1'}],
'pos_arg': 'pos',
}
return {
'task_hi': task_hi,
}
tasks_selection = {'hi': {'opt': '3', 'pos': 'foo bar baz'}}
extra_config = {
'GLOBAL': {
'verbosity': 2,
'dep_file': depfile_name,
},
}
result = run_tasks(ModuleTaskLoader(_dodo_pos()), tasks_selection, extra_config=extra_config)
assert result == 0
out = capsys.readouterr().out
assert out.strip() == 'hi:3--foo bar baz'
|