コード例 #1
0
ファイル: test_cli.py プロジェクト: heavenshell/py-doq
    def test_is_doc_exists(self):
        docstrings = [
            'def foo(arg1):',
            '   """foo.',
            '',
            '   :param arg1',
            '   pass',
        ]
        template_path = os.path.join(
            self.basepath,
            'doq',
            'templates',
            'sphinx',
        )

        expected_docstrings = [
            [
                '"""foo.',
                '',
                ':param arg1:',
                '"""',
            ],
        ]
        results = generate_docstrings(docstrings, template_path)
        self.assertEqual(
            '\n'.join(expected_docstrings[0]),
            results[0]['docstring'],
        )
        self.assertEqual(0, results[0]['start_col'])
        self.assertEqual(0, results[0]['end_col'])
        self.assertEqual(1, results[0]['start_lineno'])
        self.assertEqual(5, results[0]['end_lineno'])
コード例 #2
0
ファイル: test_cli.py プロジェクト: heavenshell/py-doq
    def test_omit_two(self):
        docstrings = [
            'def foo(self, arg1):',
            '   pass',
            '',
            '',
            'def bar(cls, arg1):',
            '   pass',
        ]

        template_path = os.path.join(
            self.basepath,
            'doq',
            'templates',
            'sphinx',
        )
        results = generate_docstrings(
            docstrings,
            template_path,
            omissions=['self', 'cls'],
        )

        expected_docstrings = [
            [
                '"""foo.',
                '',
                ':param arg1:',
                '"""',
            ],
            [
                '"""bar.',
                '',
                ':param arg1:',
                '"""',
            ],
        ]
        self.assertEqual(
            '\n'.join(expected_docstrings[0]),
            results[0]['docstring'],
        )
        self.assertEqual(0, results[0]['start_col'])
        self.assertEqual(0, results[0]['end_col'])
        self.assertEqual(1, results[0]['start_lineno'])
        self.assertEqual(3, results[0]['end_lineno'])
        self.assertEqual(
            '\n'.join(expected_docstrings[1]),
            results[1]['docstring'],
        )
        self.assertEqual(0, results[1]['start_col'])
        self.assertEqual(0, results[1]['end_col'])
        self.assertEqual(5, results[1]['start_lineno'])
        self.assertEqual(6, results[1]['end_lineno'])
コード例 #3
0
ファイル: test_cli.py プロジェクト: heavenshell/py-doq
    def test_not_ignore_yield(self):
        docstrings = [
            'def foo(arg1):',
            '   for i in range(10):',
            '       yield i',
        ]

        template_path = os.path.join(
            self.basepath,
            'examples',
        )
        results = generate_docstrings(
            docstrings,
            template_path,
            omissions=['self'],
            ignore_exception=False,
            ignore_yield=False,
        )
        expected_docstrings = [
            [
                '"""Summary of foo.',
                '',
                'Args:',
                '    arg1',
                '',
                'Yields:',
                '    i:',
                '"""',
            ],
        ]
        self.assertEqual(
            '\n'.join(expected_docstrings[0]),
            results[0]['docstring'],
        )
        self.assertEqual(0, results[0]['start_col'])
        self.assertEqual(0, results[0]['end_col'])
        self.assertEqual(1, results[0]['start_lineno'])
        self.assertEqual(3, results[0]['end_lineno'])
コード例 #4
0
ファイル: test_cli.py プロジェクト: heavenshell/py-doq
    def test_ignore_init(self):
        docstrings = [
            'class Foo:',
            '   def __init__(self, arg1):',
            '       pass',
            '',
            '',
            'class Bar:',
            '   def bar(self, arg1, arg2):',
            '      pass',
        ]

        template_path = os.path.join(
            self.basepath,
            'doq',
            'templates',
            'sphinx',
        )
        results = generate_docstrings(
            docstrings,
            template_path,
            omissions=['self'],
            ignore_exception=False,
            ignore_yield=False,
            ignore_init=True,
        )
        expected_docstrings = [
            [
                '"""Foo."""',
                '',
            ],
            [
                '"""Bar."""',
                '',
            ],
            [
                '"""bar.',
                '',
                ':param arg1:',
                ':param arg2:',
                '"""',
            ],
        ]
        self.assertEqual(
            '\n'.join(expected_docstrings[0]),
            results[0]['docstring'],
        )
        self.assertEqual(0, results[0]['start_col'])
        self.assertEqual(0, results[0]['end_col'])
        self.assertEqual(1, results[0]['start_lineno'])
        self.assertEqual(4, results[0]['end_lineno'])

        self.assertEqual(
            '\n'.join(expected_docstrings[1]),
            results[1]['docstring'],
        )
        self.assertEqual(0, results[1]['start_col'])
        self.assertEqual(10, results[1]['end_col'])
        self.assertEqual(6, results[1]['start_lineno'])
        self.assertEqual(8, results[1]['end_lineno'])

        self.assertEqual(
            '\n'.join(expected_docstrings[2]),
            results[2]['docstring'],
        )
        self.assertEqual(3, results[2]['start_col'])
        self.assertEqual(3, results[2]['end_col'])
        self.assertEqual(7, results[2]['start_lineno'])
        self.assertEqual(8, results[2]['end_lineno'])
コード例 #5
0
ファイル: test_cli.py プロジェクト: heavenshell/py-doq
 def test_run_with_classes(self):
     docstrings = [
         'class Foo:',
         '   def foo(arg1):',
         '       pass',
         '',
         '',
         'class Bar:',
         '   def bar(arg1, arg2):',
         '      pass',
     ]
     template_path = os.path.join(
         self.basepath,
         'doq',
         'templates',
         'sphinx',
     )
     expected = [
         {
             'docstring': ['"""Foo."""', ''],
             'start_col': 0,
             'end_col': 0,
             'start_lineno': 1,
             'end_lineno': 4,
         },
         {
             'docstring': [
                 '"""foo.',
                 '',
                 ':param arg1:',
                 '"""',
             ],
             'start_col': 3,
             'end_col': 3,
             'start_lineno': 2,
             'end_lineno': 4,
         },
         {
             'docstring': ['"""Bar."""', ''],
             'start_col': 0,
             'end_col': 10,
             'start_lineno': 6,
             'end_lineno': 8,
         },
         {
             'docstring': [
                 '"""bar.',
                 '',
                 ':param arg1:',
                 ':param arg2:',
                 '"""',
             ],
             'start_col':
             3,
             'end_col':
             3,
             'start_lineno':
             7,
             'end_lineno':
             8,
         },
     ]
     results = generate_docstrings(docstrings, template_path)
     for k, v in enumerate(results):
         self.assertEqual(
             '\n'.join(expected[k]['docstring']),
             v['docstring'],
         )
         self.assertEqual(expected[k]['start_col'], v['start_col'])
         self.assertEqual(expected[k]['end_col'], v['end_col'])
         self.assertEqual(expected[k]['start_lineno'], v['start_lineno'])
         self.assertEqual(expected[k]['end_lineno'], v['end_lineno'])