mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Add a test for a new documenter.
This commit is contained in:
parent
b42e9303f4
commit
4b2864e87c
@ -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:
|
||||
|
@ -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."""
|
||||
|
Loading…
Reference in New Issue
Block a user