File: test_cmd_help.py

package info (click to toggle)
doit 0.36.0-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 3,704 kB
  • sloc: python: 11,863; makefile: 33; ansic: 14; javascript: 3; sh: 1
file content (71 lines) | stat: -rw-r--r-- 2,636 bytes parent folder | download
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
from doit.doit_cmd import DoitMain


def cmd_main(args, extra_config=None, bin_name='doit'):
    if extra_config:
        extra_config = {'GLOBAL': extra_config}
    main = DoitMain(extra_config=extra_config)
    main.BIN_NAME = bin_name
    return main.run(args)


class TestHelp(object):
    def test_help_usage(self, capsys):
        returned = cmd_main(["help"])
        assert returned == 0
        out, err = capsys.readouterr()
        assert "doit list" in out

    def test_help_usage_custom_name(self, capsys):
        returned = cmd_main(["help"], bin_name='mytool')
        assert returned == 0
        out, err = capsys.readouterr()
        assert "mytool list" in out

    def test_help_plugin_name(self, capsys):
        plugin = {'XXX': 'tests.sample_plugin:MyCmd'}
        main = DoitMain(extra_config={'COMMAND':plugin})
        main.BIN_NAME = 'doit'
        returned = main.run(["help"])
        assert returned == 0
        out, err = capsys.readouterr()
        assert "doit XXX " in out
        assert "test extending doit commands" in out, out

    def test_help_task_params(self, capsys):
        returned = cmd_main(["help", "task"])
        assert returned == 0
        out, err = capsys.readouterr()
        assert "Task Dictionary parameters" in out

    def test_help_cmd(self, capsys):
        returned = cmd_main(["help", "list"], {'dep_file': 'foo.db'})
        assert returned == 0
        out, err = capsys.readouterr()
        assert "PURPOSE" in out
        assert "list tasks from dodo file" in out
        # overwritten defaults, are shown as default
        assert "file used to save successful runs [default: foo.db]" in out

    def test_help_task_name(self, capsys, restore_cwd, depfile_name):
        returned = cmd_main(["help", "-f", "tests/loader_sample.py",
                             "--db-file", depfile_name, "xxx1"])
        assert returned == 0
        out, err = capsys.readouterr()
        assert "xxx1" in out # name
        assert "task doc" in out # doc
        assert "-p" in out # params

    def test_help_wrong_name(self, capsys, restore_cwd, depfile_name):
        returned = cmd_main(["help", "-f", "tests/loader_sample.py",
                  "--db-file", depfile_name, "wrong_name"])
        assert returned == 0  # TODO return different value?
        out, err = capsys.readouterr()
        assert "doit list" in out

    def test_help_no_dodo_file(self, capsys):
        returned = cmd_main(["help", "-f", "no_dodo", "wrong_name"])
        assert returned == 0  # TODO return different value?
        out, err = capsys.readouterr()
        assert "doit list" in out