summaryrefslogtreecommitdiff
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
commitb6f5ffe058cabcf40270f6fae56724b9c4ed3a0e (patch)
tree9de862e3d1748a2e42c7c082fa021b5ee405d45a
parent261fdbc6a92f692215cd42ad04aeddaa4a2c7794 (diff)
downloadsphinx-b6f5ffe058cabcf40270f6fae56724b9c4ed3a0e.tar.gz
Add a test for a new documenter.
-rw-r--r--sphinx/ext/autodoc.py2
-rw-r--r--tests/test_autodoc.py37
2 files changed, 34 insertions, 5 deletions
diff --git a/sphinx/ext/autodoc.py b/sphinx/ext/autodoc.py
index 585b0e25..82e16e04 100644
--- a/sphinx/ext/autodoc.py
+++ b/sphinx/ext/autodoc.py
@@ -404,7 +404,7 @@ class Documenter(object):
try:
ret.append((mname, self.get_attr(self.object, mname)))
except AttributeError:
- self.directive.warn('missing attribute %s in object %s: '
+ self.directive.warn('missing attribute %s in object %s'
% (mname, self.fullname))
return False, ret
elif self.options.inherited_members:
diff --git a/tests/test_autodoc.py b/tests/test_autodoc.py
index 98fe4c19..d1da4439 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."""