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:
|
try:
|
||||||
ret.append((mname, self.get_attr(self.object, mname)))
|
ret.append((mname, self.get_attr(self.object, mname)))
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
self.directive.warn('missing attribute %s in object %s: '
|
self.directive.warn('missing attribute %s in object %s'
|
||||||
% (mname, self.fullname))
|
% (mname, self.fullname))
|
||||||
return False, ret
|
return False, ret
|
||||||
elif self.options.inherited_members:
|
elif self.options.inherited_members:
|
||||||
|
@ -14,9 +14,8 @@ from util import *
|
|||||||
|
|
||||||
from docutils.statemachine import ViewList
|
from docutils.statemachine import ViewList
|
||||||
|
|
||||||
from sphinx.ext.autodoc import AutoDirective, Documenter, ModuleDocumenter, \
|
from sphinx.ext.autodoc import AutoDirective, Documenter, add_documenter, \
|
||||||
ClassDocumenter, FunctionDocumenter, DataDocumenter, MethodDocumenter, \
|
ModuleLevelDocumenter, FunctionDocumenter, cut_lines, between, ALL
|
||||||
AttributeDocumenter, cut_lines, between, ALL
|
|
||||||
|
|
||||||
|
|
||||||
def setup_module():
|
def setup_module():
|
||||||
@ -281,6 +280,33 @@ def test_docstring_processing():
|
|||||||
app.disconnect(lid)
|
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 test_generate():
|
||||||
def assert_warns(warn_str, objtype, name, **kw):
|
def assert_warns(warn_str, objtype, name, **kw):
|
||||||
inst = AutoDirective._registry[objtype](directive, name)
|
inst = AutoDirective._registry[objtype](directive, name)
|
||||||
@ -312,6 +338,8 @@ def test_generate():
|
|||||||
assert item in directive.result
|
assert item in directive.result
|
||||||
del directive.result[:]
|
del directive.result[:]
|
||||||
|
|
||||||
|
options.members = []
|
||||||
|
|
||||||
# no module found?
|
# no module found?
|
||||||
assert_warns("import for autodocumenting 'foobar'",
|
assert_warns("import for autodocumenting 'foobar'",
|
||||||
'function', 'foobar', more_content=None)
|
'function', 'foobar', more_content=None)
|
||||||
@ -405,13 +433,14 @@ def test_generate():
|
|||||||
|
|
||||||
__all__ = ['Class']
|
__all__ = ['Class']
|
||||||
|
|
||||||
|
integer = 1
|
||||||
|
|
||||||
class CustomEx(Exception):
|
class CustomEx(Exception):
|
||||||
"""My custom exception."""
|
"""My custom exception."""
|
||||||
|
|
||||||
def f(self):
|
def f(self):
|
||||||
"""Exception method."""
|
"""Exception method."""
|
||||||
|
|
||||||
|
|
||||||
class Base(object):
|
class Base(object):
|
||||||
def inheritedmeth(self):
|
def inheritedmeth(self):
|
||||||
"""Inherited function."""
|
"""Inherited function."""
|
||||||
|
Loading…
Reference in New Issue
Block a user