@@ -143,13 +143,13 @@ Simple Usage: Checking Examples in Docstrings
143
143
---------------------------------------------
144
144
145
145
The simplest way to start using doctest (but not necessarily the way you'll
146
- continue to do it) is to end each module :mod: `M ` with::
146
+ continue to do it) is to end each module :mod: `! M ` with::
147
147
148
148
if __name__ == "__main__":
149
149
import doctest
150
150
doctest.testmod()
151
151
152
- :mod: `doctest ` then examines docstrings in module :mod: `M `.
152
+ :mod: `! doctest ` then examines docstrings in module :mod: `! M `.
153
153
154
154
Running the module as a script causes the examples in the docstrings to get
155
155
executed and verified::
@@ -401,10 +401,10 @@ What's the Execution Context?
401
401
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
402
402
403
403
By default, each time :mod: `doctest ` finds a docstring to test, it uses a
404
- *shallow copy * of :mod: `M `'s globals, so that running tests doesn't change the
405
- module's real globals, and so that one test in :mod: `M ` can't leave behind
404
+ *shallow copy * of :mod: `! M `'s globals, so that running tests doesn't change the
405
+ module's real globals, and so that one test in :mod: `! M ` can't leave behind
406
406
crumbs that accidentally allow another test to work. This means examples can
407
- freely use any names defined at top-level in :mod: `M `, and names defined earlier
407
+ freely use any names defined at top-level in :mod: `! M `, and names defined earlier
408
408
in the docstring being run. Examples cannot see names defined in other
409
409
docstrings.
410
410
@@ -956,7 +956,8 @@ and :ref:`doctest-simple-testfile`.
956
956
957
957
Optional argument *exclude_empty * defaults to false. If true, objects for which
958
958
no doctests are found are excluded from consideration. The default is a backward
959
- compatibility hack, so that code still using :meth: `doctest.master.summarize ` in
959
+ compatibility hack, so that code still using
960
+ :meth: `doctest.master.summarize <DocTestRunner.summarize> ` in
960
961
conjunction with :func: `testmod ` continues to get output for objects with no
961
962
tests. The *exclude_empty * argument to the newer :class: `DocTestFinder `
962
963
constructor defaults to true.
@@ -995,7 +996,7 @@ As your collection of doctest'ed modules grows, you'll want a way to run all
995
996
their doctests systematically. :mod: `doctest ` provides two functions that can
996
997
be used to create :mod: `unittest ` test suites from modules and text files
997
998
containing doctests. To integrate with :mod: `unittest ` test discovery, include
998
- a :func : `load_tests ` function in your test module::
999
+ a :ref : `load_tests < load_tests-protocol > ` function in your test module::
999
1000
1000
1001
import unittest
1001
1002
import doctest
@@ -1109,19 +1110,24 @@ from text files and modules with doctests:
1109
1110
:func: `DocTestSuite ` returns an empty :class: `unittest.TestSuite ` if *module *
1110
1111
contains no docstrings instead of raising :exc: `ValueError `.
1111
1112
1113
+ .. exception :: failureException
1114
+
1115
+ When doctests which have been converted to unit tests by :func: `DocFileSuite `
1116
+ or :func: `DocTestSuite ` fail, this exception is raised showing the name of
1117
+ the file containing the test and a (sometimes approximate) line number.
1112
1118
1113
1119
Under the covers, :func: `DocTestSuite ` creates a :class: `unittest.TestSuite ` out
1114
- of :class: `doctest.DocTestCase ` instances, and :class: `DocTestCase ` is a
1115
- subclass of :class: `unittest.TestCase `. :class: `DocTestCase ` isn't documented
1120
+ of :class: `! doctest.DocTestCase ` instances, and :class: `! DocTestCase ` is a
1121
+ subclass of :class: `unittest.TestCase `. :class: `! DocTestCase ` isn't documented
1116
1122
here (it's an internal detail), but studying its code can answer questions about
1117
1123
the exact details of :mod: `unittest ` integration.
1118
1124
1119
1125
Similarly, :func: `DocFileSuite ` creates a :class: `unittest.TestSuite ` out of
1120
- :class: `doctest.DocFileCase ` instances, and :class: `DocFileCase ` is a subclass
1121
- of :class: `DocTestCase `.
1126
+ :class: `! doctest.DocFileCase ` instances, and :class: `! DocFileCase ` is a subclass
1127
+ of :class: `! DocTestCase `.
1122
1128
1123
1129
So both ways of creating a :class: `unittest.TestSuite ` run instances of
1124
- :class: `DocTestCase `. This is important for a subtle reason: when you run
1130
+ :class: `! DocTestCase `. This is important for a subtle reason: when you run
1125
1131
:mod: `doctest ` functions yourself, you can control the :mod: `doctest ` options in
1126
1132
use directly, by passing option flags to :mod: `doctest ` functions. However, if
1127
1133
you're writing a :mod: `unittest ` framework, :mod: `unittest ` ultimately controls
@@ -1142,14 +1148,14 @@ reporting flags specific to :mod:`unittest` support, via this function:
1142
1148
section :ref: `doctest-options `. Only "reporting flags" can be used.
1143
1149
1144
1150
This is a module-global setting, and affects all future doctests run by module
1145
- :mod: `unittest `: the :meth: `runTest ` method of :class: `DocTestCase ` looks at
1146
- the option flags specified for the test case when the :class: `DocTestCase `
1151
+ :mod: `unittest `: the :meth: `! runTest ` method of :class: `! DocTestCase ` looks at
1152
+ the option flags specified for the test case when the :class: `! DocTestCase `
1147
1153
instance was constructed. If no reporting flags were specified (which is the
1148
- typical and expected case), :mod: `doctest `'s :mod: `unittest ` reporting flags are
1154
+ typical and expected case), :mod: `! doctest `'s :mod: `unittest ` reporting flags are
1149
1155
:ref: `bitwise ORed <bitwise >` into the option flags, and the option flags
1150
1156
so augmented are passed to the :class: `DocTestRunner ` instance created to
1151
1157
run the doctest. If any reporting flags were specified when the
1152
- :class: `DocTestCase ` instance was constructed, :mod: `doctest `'s
1158
+ :class: `! DocTestCase ` instance was constructed, :mod: `! doctest `'s
1153
1159
:mod: `unittest ` reporting flags are ignored.
1154
1160
1155
1161
The value of the :mod: `unittest ` reporting flags in effect before the function
@@ -1319,7 +1325,8 @@ Example Objects
1319
1325
A dictionary mapping from option flags to ``True `` or ``False ``, which is used
1320
1326
to override default options for this example. Any option flags not contained
1321
1327
in this dictionary are left at their default value (as specified by the
1322
- :class: `DocTestRunner `'s :attr: `optionflags `). By default, no options are set.
1328
+ :class: `DocTestRunner `'s :ref: `optionflags <doctest-options >`).
1329
+ By default, no options are set.
1323
1330
1324
1331
1325
1332
.. _doctest-doctestfinder :
@@ -1532,7 +1539,7 @@ DocTestRunner objects
1532
1539
1533
1540
The output of each example is checked using the :class: `DocTestRunner `'s
1534
1541
output checker, and the results are formatted by the
1535
- :meth: `DocTestRunner.report_\* ` methods.
1542
+ :meth: `! DocTestRunner.report_\* ` methods.
1536
1543
1537
1544
1538
1545
.. method :: summarize(verbose=None)
@@ -1690,12 +1697,12 @@ code under the debugger:
1690
1697
module) of the object with the doctests of interest. The result is a string,
1691
1698
containing the object's docstring converted to a Python script, as described for
1692
1699
:func: `script_from_examples ` above. For example, if module :file: `a.py `
1693
- contains a top-level function :func: `f `, then ::
1700
+ contains a top-level function :func: `! f `, then ::
1694
1701
1695
1702
import a, doctest
1696
1703
print(doctest.testsource(a, "a.f"))
1697
1704
1698
- prints a script version of function :func: `f `'s docstring, with doctests
1705
+ prints a script version of function :func: `! f `'s docstring, with doctests
1699
1706
converted to code, and the rest placed in comments.
1700
1707
1701
1708
0 commit comments