File: test_doc.py

package info (click to toggle)
monitoring-plugins-systemd 2.3.1-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 556 kB
  • sloc: python: 1,157; sh: 863; makefile: 25
file content (48 lines) | stat: -rw-r--r-- 1,653 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
import unittest
from check_systemd import get_argparser


def argparser_to_readme(argparser, template='README-template.md',
                        destination='README.md', indentation=0,
                        placeholder='{{ argparse }}'):
    """Add the formatted help output of a command line utility using the
    Python module `argparse` to a README file. Make sure to set the name
    of the program (`prop`) or you get strange program names.

    :param object argparser: The argparse parser object.
    :param str template: The path of a template text file containing the
      placeholder. Default: `README-template.md`
    :param str destination: The path of the destination file. Default:
      `README.me`
    :param int indentation: Indent the formatted help output by X spaces.
      Default: 0
    :param str placeholder: Placeholder string that gets replaced by the
      formatted help output. Default: `{{ argparse }}`
    """
    help_string = argparser().format_help()

    if indentation > 0:
        indent_lines = []
        lines = help_string.split('\n')
        for line in lines:
            indent_lines.append(' ' * indentation + line)

        help_string = '\n'.join(indent_lines)

    with open(template, 'r', encoding='utf-8') as template_file:
        template_string = template_file.read()
        readme = template_string.replace(placeholder, help_string)

    readme_file = open(destination, 'w')
    readme_file.write(readme)
    readme_file.close()


class TestDoc(unittest.TestCase):

    def test_doc(self):
        argparser_to_readme(argparser=get_argparser)


if __name__ == '__main__':
    unittest.main()