summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_doctest.py
diff options
context:
space:
mode:
authorEdward Loper <edloper@gradient.cis.upenn.edu>2004-09-13 05:47:24 (GMT)
committerEdward Loper <edloper@gradient.cis.upenn.edu>2004-09-13 05:47:24 (GMT)
commit32ddbf7fab000af7941983ecbfe05efd15700255 (patch)
treeeec14f7dd656376fdc92f29c22b6957049a59b19 /Lib/test/test_doctest.py
parentc56847878e503ddea8309b0a0c45e06d7c56f2ee (diff)
downloadcpython-32ddbf7fab000af7941983ecbfe05efd15700255.zip
cpython-32ddbf7fab000af7941983ecbfe05efd15700255.tar.gz
cpython-32ddbf7fab000af7941983ecbfe05efd15700255.tar.bz2
Added new parameter exclude_empty to DocTestFinder.__init__, which
controls whether tests are included for objects with empty docstrings. Defaults to True, to match the behavior of Python 2.3.
Diffstat (limited to 'Lib/test/test_doctest.py')
-rw-r--r--Lib/test/test_doctest.py24
1 files changed, 20 insertions, 4 deletions
diff --git a/Lib/test/test_doctest.py b/Lib/test/test_doctest.py
index d60738b..a304f5c 100644
--- a/Lib/test/test_doctest.py
+++ b/Lib/test/test_doctest.py
@@ -373,11 +373,21 @@ leading path components.
>>> (e.source, e.want, e.lineno)
('print sample_func(22)\n', '44\n', 3)
-If an object has no docstring, then a test is not created for it:
+By default, tests are created for objects with no docstring:
>>> def no_docstring(v):
... pass
- >>> finder.find(no_docstring)
+ >>> finder.find(no_docstring) # doctest: +ELLIPSIS
+ [<DocTest no_docstring from ... (no examples)>]
+
+However, the optional argument `exclude_empty` to the DocTestFinder
+constructor can be used to exclude tests for objects with empty
+docstrings:
+
+ >>> def no_docstring(v):
+ ... pass
+ >>> excl_empty_finder = doctest.DocTestFinder(exclude_empty=True)
+ >>> excl_empty_finder.find(no_docstring)
[]
If the function has a docstring with no examples, then a test with no
@@ -404,6 +414,8 @@ methods, classmethods, staticmethods, properties, and nested classes.
1 SampleClass
3 SampleClass.NestedClass
1 SampleClass.NestedClass.__init__
+ 0 SampleClass.NestedClass.get
+ 0 SampleClass.NestedClass.square
1 SampleClass.__init__
2 SampleClass.a_classmethod
1 SampleClass.a_property
@@ -461,6 +473,8 @@ functions, classes, and the `__test__` dictionary, if it exists:
1 some_module.SampleClass
3 some_module.SampleClass.NestedClass
1 some_module.SampleClass.NestedClass.__init__
+ 0 some_module.SampleClass.NestedClass.get
+ 0 some_module.SampleClass.NestedClass.square
1 some_module.SampleClass.__init__
2 some_module.SampleClass.a_classmethod
1 some_module.SampleClass.a_property
@@ -477,7 +491,7 @@ If a single object is listed twice (under different names), then tests
will only be generated for it once:
>>> from test import doctest_aliases
- >>> tests = finder.find(doctest_aliases)
+ >>> tests = excl_empty_finder.find(doctest_aliases)
>>> tests.sort()
>>> print len(tests)
2
@@ -506,6 +520,8 @@ deprecated isprivate gimmick.
1 SampleClass
3 SampleClass.NestedClass
1 SampleClass.NestedClass.__init__
+ 0 SampleClass.NestedClass.get
+ 0 SampleClass.NestedClass.square
1 SampleClass.__init__
1 SampleClass.double
1 SampleClass.get
@@ -534,7 +550,7 @@ object explicitly passed to DocTestFinder:
... return base == 'SampleClass'
>>> tests = doctest.DocTestFinder(_namefilter=namefilter).find(SampleClass)
>>> len(tests)
- 9
+ 11
Turning off Recursion
~~~~~~~~~~~~~~~~~~~~~