summaryrefslogtreecommitdiff
path: root/tests/test_autodoc.py
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2009-02-18 00:06:24 +0100
committerGeorg Brandl <georg@python.org>2009-02-18 00:06:24 +0100
commit4b2864e87cf545d755693663b6f02f2cfe9ae85d (patch)
tree9de862e3d1748a2e42c7c082fa021b5ee405d45a /tests/test_autodoc.py
parentb42e9303f466bd39873ebbe32b26c472bc52bde4 (diff)
downloadsphinx-git-4b2864e87cf545d755693663b6f02f2cfe9ae85d.tar.gz
Add a test for a new documenter.
Diffstat (limited to 'tests/test_autodoc.py')
-rw-r--r--tests/test_autodoc.py37
1 files changed, 33 insertions, 4 deletions
diff --git a/tests/test_autodoc.py b/tests/test_autodoc.py
index 98fe4c19c..d1da44396 100644
--- a/tests/test_autodoc.py
+++ b/tests/test_autodoc.py
@@ -14,9 +14,8 @@ from util import *
from docutils.statemachine import ViewList
-from sphinx.ext.autodoc import AutoDirective, Documenter, ModuleDocumenter, \
- ClassDocumenter, FunctionDocumenter, DataDocumenter, MethodDocumenter, \
- AttributeDocumenter, cut_lines, between, ALL
+from sphinx.ext.autodoc import AutoDirective, Documenter, add_documenter, \
+ ModuleLevelDocumenter, FunctionDocumenter, cut_lines, between, ALL
def setup_module():
@@ -281,6 +280,33 @@ def test_docstring_processing():
app.disconnect(lid)
+def test_new_documenter():
+ class MyDocumenter(ModuleLevelDocumenter):
+ objtype = 'integer'
+ directivetype = 'data'
+ priority = 100
+
+ @classmethod
+ def can_document_member(cls, member, membername, isattr, parent):
+ return isinstance(member, int)
+
+ def document_members(self, all_members=False):
+ return
+
+ add_documenter(MyDocumenter)
+
+ def assert_result_contains(item, objtype, name, **kw):
+ inst = AutoDirective._registry[objtype](directive, name)
+ inst.generate(**kw)
+ #print '\n'.join(directive.result)
+ assert len(_warnings) == 0, _warnings
+ assert item in directive.result
+ del directive.result[:]
+
+ options.members = ['integer']
+ assert_result_contains('.. data:: integer', 'module', 'test_autodoc')
+
+
def test_generate():
def assert_warns(warn_str, objtype, name, **kw):
inst = AutoDirective._registry[objtype](directive, name)
@@ -312,6 +338,8 @@ def test_generate():
assert item in directive.result
del directive.result[:]
+ options.members = []
+
# no module found?
assert_warns("import for autodocumenting 'foobar'",
'function', 'foobar', more_content=None)
@@ -405,13 +433,14 @@ def test_generate():
__all__ = ['Class']
+integer = 1
+
class CustomEx(Exception):
"""My custom exception."""
def f(self):
"""Exception method."""
-
class Base(object):
def inheritedmeth(self):
"""Inherited function."""