Skip to content

Commit b84b6e7

Browse files
committed
Extend autosum test
With basic test that autosum can include inherited attributes
1 parent 8f08566 commit b84b6e7

File tree

3 files changed

+69
-1
lines changed

3 files changed

+69
-1
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
from autosummary_dummy_module import Foo
2+
3+
4+
class InheritedAttrClass(Foo):
5+
6+
def __init__(self):
7+
#: other docstring
8+
self.subclassattr = "subclassattr"
9+
10+
super().__init__()
11+
12+
13+
__all__ = ["InheritedAttrClass"]

tests/roots/test-ext-autosummary/index.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,6 @@
1313
autosummary_dummy_module.Foo.value
1414
autosummary_dummy_module.bar
1515
autosummary_dummy_module.qux
16+
autosummary_dummy_inherited_module.InheritedAttrClass
17+
autosummary_dummy_inherited_module.InheritedAttrClass.subclassattr
1618
autosummary_importfail

tests/test_ext_autosummary.py

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,33 @@ def test_autosummary_generate_content_for_module_imported_members(app):
314314
assert context['objtype'] == 'module'
315315

316316

317+
@pytest.mark.sphinx(testroot='ext-autosummary')
318+
def test_autosummary_generate_content_for_module_imported_members_inherited_module(app):
319+
import autosummary_dummy_inherited_module
320+
template = Mock()
321+
322+
generate_autosummary_content('autosummary_dummy_inherited_module',
323+
autosummary_dummy_inherited_module, None,
324+
template, None, True, app, False, {})
325+
assert template.render.call_args[0][0] == 'module'
326+
327+
context = template.render.call_args[0][1]
328+
assert context['members'] == ['Foo', 'InheritedAttrClass', '__all__', '__builtins__', '__cached__',
329+
'__doc__', '__file__', '__loader__', '__name__',
330+
'__package__', '__spec__']
331+
assert context['functions'] == []
332+
assert context['classes'] == ['Foo', 'InheritedAttrClass']
333+
assert context['exceptions'] == []
334+
assert context['all_exceptions'] == []
335+
assert context['attributes'] == []
336+
assert context['all_attributes'] == []
337+
assert context['fullname'] == 'autosummary_dummy_inherited_module'
338+
assert context['module'] == 'autosummary_dummy_inherited_module'
339+
assert context['objname'] == ''
340+
assert context['name'] == ''
341+
assert context['objtype'] == 'module'
342+
343+
317344
@pytest.mark.sphinx('dummy', testroot='ext-autosummary')
318345
def test_autosummary_generate(app, status, warning):
319346
app.builder.build_all()
@@ -332,16 +359,20 @@ def test_autosummary_generate(app, status, warning):
332359
nodes.row,
333360
nodes.row,
334361
nodes.row,
362+
nodes.row,
363+
nodes.row,
335364
nodes.row)])])
336365
assert_node(doctree[4][0], addnodes.toctree, caption="An autosummary")
337366

338-
assert len(doctree[3][0][0][2]) == 6
367+
assert len(doctree[3][0][0][2]) == 8
339368
assert doctree[3][0][0][2][0].astext() == 'autosummary_dummy_module\n\n'
340369
assert doctree[3][0][0][2][1].astext() == 'autosummary_dummy_module.Foo()\n\n'
341370
assert doctree[3][0][0][2][2].astext() == 'autosummary_dummy_module.Foo.Bar()\n\n'
342371
assert doctree[3][0][0][2][3].astext() == 'autosummary_dummy_module.Foo.value\n\ndocstring'
343372
assert doctree[3][0][0][2][4].astext() == 'autosummary_dummy_module.bar(x[, y])\n\n'
344373
assert doctree[3][0][0][2][5].astext() == 'autosummary_dummy_module.qux\n\na module-level attribute'
374+
assert doctree[3][0][0][2][6].astext() == 'autosummary_dummy_inherited_module.InheritedAttrClass()\n\n'
375+
assert doctree[3][0][0][2][7].astext() == 'autosummary_dummy_inherited_module.InheritedAttrClass.subclassattr\n\nother docstring'
345376

346377
module = (app.srcdir / 'generated' / 'autosummary_dummy_module.rst').read_text(encoding='utf8')
347378

@@ -387,6 +418,28 @@ def test_autosummary_generate(app, status, warning):
387418
'\n'
388419
'.. autodata:: qux' in qux)
389420

421+
InheritedAttrClass = (app.srcdir / 'generated' / 'autosummary_dummy_inherited_module.InheritedAttrClass.rst').read_text(encoding='utf8')
422+
print(InheritedAttrClass)
423+
assert '.. automethod:: __init__' in Foo
424+
assert (' .. autosummary::\n'
425+
' \n'
426+
' ~InheritedAttrClass.__init__\n'
427+
' ~InheritedAttrClass.bar\n'
428+
' \n' in InheritedAttrClass)
429+
assert (' .. autosummary::\n'
430+
' \n'
431+
' ~InheritedAttrClass.CONSTANT3\n'
432+
' ~InheritedAttrClass.CONSTANT4\n'
433+
' ~InheritedAttrClass.baz\n'
434+
' ~InheritedAttrClass.subclassattr\n'
435+
' ~InheritedAttrClass.value\n'
436+
' \n' in InheritedAttrClass)
437+
438+
InheritedAttrClass_subclassattr = (app.srcdir / 'generated' / 'autosummary_dummy_inherited_module.InheritedAttrClass.subclassattr.rst').read_text(encoding='utf8')
439+
assert ('.. currentmodule:: autosummary_dummy_inherited_module\n'
440+
'\n'
441+
'.. autoattribute:: InheritedAttrClass.subclassattr' in InheritedAttrClass_subclassattr)
442+
390443

391444
@pytest.mark.sphinx('dummy', testroot='ext-autosummary',
392445
confoverrides={'autosummary_generate_overwrite': False})

0 commit comments

Comments
 (0)