From 07b2a050c75a6f46975407add941dc9be5a5a983 Mon Sep 17 00:00:00 2001 From: Matyas Novak Date: Mon, 14 Mar 2022 23:31:33 +0100 Subject: [PATCH] Test recognition of a documented instance of a class as a non-imported member of the module --- .../autosummary_class_module.py | 2 ++ .../autosummary_dummy_module.py | 5 ++++ tests/test_ext_autosummary.py | 28 +++++++++++-------- 3 files changed, 23 insertions(+), 12 deletions(-) create mode 100644 tests/roots/test-ext-autosummary/autosummary_class_module.py diff --git a/tests/roots/test-ext-autosummary/autosummary_class_module.py b/tests/roots/test-ext-autosummary/autosummary_class_module.py new file mode 100644 index 000000000..f13de1703 --- /dev/null +++ b/tests/roots/test-ext-autosummary/autosummary_class_module.py @@ -0,0 +1,2 @@ +class Class(): + pass diff --git a/tests/roots/test-ext-autosummary/autosummary_dummy_module.py b/tests/roots/test-ext-autosummary/autosummary_dummy_module.py index 38e961990..b0419e1ba 100644 --- a/tests/roots/test-ext-autosummary/autosummary_dummy_module.py +++ b/tests/roots/test-ext-autosummary/autosummary_dummy_module.py @@ -1,5 +1,6 @@ from os import path # NOQA from typing import Union +from autosummary_class_module import Class __all__ = [ "CONSTANT1", @@ -60,3 +61,7 @@ class _Exc(Exception): qux = 2 #: a module-level attribute that has been excluded from __all__ quuz = 2 + +considered_as_imported = Class() +non_imported_member = Class() +""" This attribute has a docstring, so it is recognized as a not-imported member """ diff --git a/tests/test_ext_autosummary.py b/tests/test_ext_autosummary.py index 13da15e50..11debec19 100644 --- a/tests/test_ext_autosummary.py +++ b/tests/test_ext_autosummary.py @@ -218,15 +218,15 @@ def test_autosummary_generate_content_for_module(app): assert context['members'] == ['CONSTANT1', 'CONSTANT2', 'Exc', 'Foo', '_Baz', '_Exc', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__name__', '__package__', '_quux', 'bar', - 'quuz', 'qux'] + 'non_imported_member', 'quuz', 'qux'] assert context['functions'] == ['bar'] assert context['all_functions'] == ['_quux', 'bar'] assert context['classes'] == ['Foo'] assert context['all_classes'] == ['Foo', '_Baz'] assert context['exceptions'] == ['Exc'] assert context['all_exceptions'] == ['Exc', '_Exc'] - assert context['attributes'] == ['CONSTANT1', 'qux', 'quuz'] - assert context['all_attributes'] == ['CONSTANT1', 'qux', 'quuz'] + assert context['attributes'] == ['CONSTANT1', 'qux', 'quuz', 'non_imported_member'] + assert context['all_attributes'] == ['CONSTANT1', 'qux', 'quuz', 'non_imported_member'] assert context['fullname'] == 'autosummary_dummy_module' assert context['module'] == 'autosummary_dummy_module' assert context['objname'] == '' @@ -276,7 +276,8 @@ def test_autosummary_generate_content_for_module_skipped(app): context = template.render.call_args[0][1] assert context['members'] == ['CONSTANT1', 'CONSTANT2', '_Baz', '_Exc', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', - '__name__', '__package__', '_quux', 'quuz', 'qux'] + '__name__', '__package__', '_quux', 'non_imported_member', + 'quuz', 'qux'] assert context['functions'] == [] assert context['classes'] == [] assert context['exceptions'] == [] @@ -292,18 +293,20 @@ def test_autosummary_generate_content_for_module_imported_members(app): assert template.render.call_args[0][0] == 'module' context = template.render.call_args[0][1] - assert context['members'] == ['CONSTANT1', 'CONSTANT2', 'Exc', 'Foo', 'Union', '_Baz', - '_Exc', '__all__', '__builtins__', '__cached__', '__doc__', - '__file__', '__loader__', '__name__', '__package__', - '__spec__', '_quux', 'bar', 'path', 'quuz', 'qux'] + assert context['members'] == ['CONSTANT1', 'CONSTANT2', 'Class', 'Exc', 'Foo', 'Union', + '_Baz', '_Exc', '__all__', '__builtins__', '__cached__', + '__doc__', '__file__', '__loader__', '__name__', + '__package__', '__spec__', '_quux', 'bar', + 'considered_as_imported', 'non_imported_member', 'path', + 'quuz', 'qux'] assert context['functions'] == ['bar'] assert context['all_functions'] == ['_quux', 'bar'] - assert context['classes'] == ['Foo'] - assert context['all_classes'] == ['Foo', '_Baz'] + assert context['classes'] == ['Class', 'Foo'] + assert context['all_classes'] == ['Class', 'Foo', '_Baz'] assert context['exceptions'] == ['Exc'] assert context['all_exceptions'] == ['Exc', '_Exc'] - assert context['attributes'] == ['CONSTANT1', 'qux', 'quuz'] - assert context['all_attributes'] == ['CONSTANT1', 'qux', 'quuz'] + assert context['attributes'] == ['CONSTANT1', 'qux', 'quuz', 'non_imported_member'] + assert context['all_attributes'] == ['CONSTANT1', 'qux', 'quuz', 'non_imported_member'] assert context['fullname'] == 'autosummary_dummy_module' assert context['module'] == 'autosummary_dummy_module' assert context['objname'] == '' @@ -351,6 +354,7 @@ def test_autosummary_generate(app, status, warning): ' CONSTANT1\n' ' qux\n' ' quuz\n' + ' non_imported_member\n' ' \n' in module) Foo = (app.srcdir / 'generated' / 'autosummary_dummy_module.Foo.rst').read_text()