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'])
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'])
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'])
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'])
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'])