''' Some tests for the documenting decorator and support functions '''
import numpy as np
from numpy.testing import assert_equal,assert_raises
from nose.tools import assert_true
from scipy.misc import doccer
docstring = \
"""Docstring
%(strtest1)s
%(strtest2)s
%(strtest3)s
"""
param_doc1 = \
"""Another test
with some indent"""
param_doc2 = \
"""Another test, one line"""
param_doc3 = \
""" Another test
with some indent"""
doc_dict = {'strtest1':param_doc1,
'strtest2':param_doc2,
'strtest3':param_doc3}
filled_docstring = \
"""Docstring
Another test
with some indent
Another test, one line
Another test
with some indent
"""
def test_unindent():
yield assert_equal, doccer.unindent_string(param_doc1), param_doc1
yield assert_equal, doccer.unindent_string(param_doc2), param_doc2
yield assert_equal, doccer.unindent_string(param_doc3), param_doc1
def test_unindent_dict():
d2 = doccer.unindent_dict(doc_dict)
yield assert_equal, d2['strtest1'], doc_dict['strtest1']
yield assert_equal, d2['strtest2'], doc_dict['strtest2']
yield assert_equal, d2['strtest3'], doc_dict['strtest1']
def test_docformat():
udd = doccer.unindent_dict(doc_dict)
formatted = doccer.docformat(docstring, udd)
yield assert_equal, formatted, filled_docstring
single_doc = 'Single line doc %(strtest1)s'
formatted = doccer.docformat(single_doc, doc_dict)
# Note - initial indent of format string does not
# affect subsequent indent of inserted parameter
yield assert_equal, formatted, """Single line doc Another test
with some indent"""
def test_decorator():
# with unindentation of parameters
decorator = doccer.filldoc(doc_dict, True)
@decorator
def func():
""" Docstring
%(strtest3)s
"""
yield assert_equal, func.__doc__, """ Docstring
Another test
with some indent
"""
# without unindentation of parameters
decorator = doccer.filldoc(doc_dict, False)
@decorator
def func():
""" Docstring
%(strtest3)s
"""
yield assert_equal, func.__doc__, """ Docstring
Another test
with some indent
"""
|