diff options
| author | Georg Brandl <georg@python.org> | 2009-02-18 00:06:24 +0100 |
|---|---|---|
| committer | Georg Brandl <georg@python.org> | 2009-02-18 00:06:24 +0100 |
| commit | b6f5ffe058cabcf40270f6fae56724b9c4ed3a0e (patch) | |
| tree | 9de862e3d1748a2e42c7c082fa021b5ee405d45a | |
| parent | 261fdbc6a92f692215cd42ad04aeddaa4a2c7794 (diff) | |
| download | sphinx-b6f5ffe058cabcf40270f6fae56724b9c4ed3a0e.tar.gz | |
Add a test for a new documenter.
| -rw-r--r-- | sphinx/ext/autodoc.py | 2 | ||||
| -rw-r--r-- | tests/test_autodoc.py | 37 |
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.""" |
