summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnselm Kruis <a.kruis@science-computing.de>2016-02-05 17:15:27 +0100
committerAnselm Kruis <a.kruis@science-computing.de>2016-02-05 17:42:14 +0100
commitde356149cda6076555fbff768590aa1ab483fec1 (patch)
tree59d960409ab5edf96e304066eb51afc8c4e04d9b
parent50951bdc9814109df848e12dd08b6a6bbdb01889 (diff)
downloadsphinx-git-de356149cda6076555fbff768590aa1ab483fec1.tar.gz
Test for bug #2298: automodule fails to document a class attribute
This test case demonstrates a bug, where automodule:: with option :members: fails to document a class attribute of a class, that was imported into the documented module. This commit extends test_ext_viewcode, instead of creating a separate test module, because the development guide recommends it for performance reasons.
-rw-r--r--tests/roots/test-ext-viewcode/index.rst5
-rw-r--r--tests/roots/test-ext-viewcode/spam/mod1.py7
-rw-r--r--tests/roots/test-ext-viewcode/spam/mod3.py2
-rw-r--r--tests/test_ext_viewcode.py6
4 files changed, 20 insertions, 0 deletions
diff --git a/tests/roots/test-ext-viewcode/index.rst b/tests/roots/test-ext-viewcode/index.rst
index b5776cfa7..e7956e723 100644
--- a/tests/roots/test-ext-viewcode/index.rst
+++ b/tests/roots/test-ext-viewcode/index.rst
@@ -28,6 +28,11 @@ viewcode
:language: python
:pyobject: func1
+.. autoclass:: spam.mod3.Class3
+ :members:
+
+.. automodule:: spam.mod3
+ :members:
.. toctree::
diff --git a/tests/roots/test-ext-viewcode/spam/mod1.py b/tests/roots/test-ext-viewcode/spam/mod1.py
index 7133fc829..226f0c8a2 100644
--- a/tests/roots/test-ext-viewcode/spam/mod1.py
+++ b/tests/roots/test-ext-viewcode/spam/mod1.py
@@ -13,3 +13,10 @@ class Class1(object):
"""
this is Class1
"""
+
+class Class3(object):
+ """
+ this is Class3
+ """
+ class_attr = 42
+ """this is the class attribute class_attr"""
diff --git a/tests/roots/test-ext-viewcode/spam/mod3.py b/tests/roots/test-ext-viewcode/spam/mod3.py
new file mode 100644
index 000000000..f7b6afbe0
--- /dev/null
+++ b/tests/roots/test-ext-viewcode/spam/mod3.py
@@ -0,0 +1,2 @@
+from spam.mod1 import Class3
+__all__ = ('Class3',)
diff --git a/tests/test_ext_viewcode.py b/tests/test_ext_viewcode.py
index 93e681a5d..eaa7a736d 100644
--- a/tests/test_ext_viewcode.py
+++ b/tests/test_ext_viewcode.py
@@ -31,6 +31,12 @@ def test_viewcode(app, status, warning):
assert result.count('href="_modules/spam/mod1.html#Class1"') == 2
assert result.count('href="_modules/spam/mod2.html#Class2"') == 2
+ # test that the class attribute is correctly documented
+ assert result.count('this is Class3') == 2
+ assert 'this is the class attribute class_attr' in result
+ # the next assert fails, until the autodoc bug gets fixed
+ assert result.count('this is the class attribute class_attr') == 2
+
@with_app(testroot='ext-viewcode', tags=['test_linkcode'])
def test_linkcode(app, status, warning):