Lines Matching refs:doctest
2 Test script for doctest.
8 import doctest
201 >>> example = doctest.Example('print(1)', '1\n')
211 >>> example = doctest.Example('[].pop()', '', exc_msg,
213 ... options={doctest.ELLIPSIS: True})
221 >>> e = doctest.Example('print(1)', '1\n')
225 >>> e = doctest.Example('print(1)\n', '1\n')
230 >>> e = doctest.Example('print(1);\nprint(2)\n', '1\n2\n')
234 >>> e = doctest.Example('print(1);\nprint(2)', '1\n2\n')
239 >>> e = doctest.Example('', '')
246 >>> e = doctest.Example('print(1)', '1\n')
250 >>> e = doctest.Example('print(1)', '1')
254 >>> e = doctest.Example('print', '')
263 >>> e = doctest.Example('[].pop()', '', exc_msg)
268 >>> e = doctest.Example('[].pop()', '', exc_msg)
274 >>> e = doctest.Example('raise ValueError("1\n 2")', '', exc_msg)
279 >>> e = doctest.Example('raise ValueError("1\n 2")', '', exc_msg)
286 >>> e = doctest.Example('raise X()', '', exc_msg)
291 >>> example = doctest.Example('print 1', '1\n')
292 >>> same_example = doctest.Example('print 1', '1\n')
293 >>> other_example = doctest.Example('print 42', '42\n')
325 >>> parser = doctest.DocTestParser()
339 attributes on the doctest object:
422 >>> DocTestCase = doctest.DocTestCase
453 >>> finder = doctest.DocTestFinder()
463 >>> print(tests) # doctest: +ELLIPSIS
469 >>> tests[0].filename # doctest: +ELLIPSIS
492 >>> excl_empty_finder = doctest.DocTestFinder(exclude_empty=True)
502 ... ''' no doctest examples '''
503 >>> finder.find(no_examples) # doctest: +ELLIPSIS
512 >>> finder = doctest.DocTestFinder()
564 >>> finder = doctest.DocTestFinder()
565 >>> # Use module=test.test_doctest, to prevent doctest from
601 We can't guess which will be found in doctest's traversal of
611 >>> tests = doctest.DocTestFinder().find(SampleClass)
627 is really to support backward compatibility in what doctest.master.summarize()
630 >>> tests = doctest.DocTestFinder(exclude_empty=False).find(SampleClass)
651 >>> tests = doctest.DocTestFinder(exclude_empty=False).find(doctest_lineno)
671 >>> tests = doctest.DocTestFinder(recurse=False).find(SampleClass)
696 >>> test = doctest.DocTestFinder().find(f)[0]
711 >>> tests = doctest.DocTestFinder().find(builtins)
746 # however with a patched doctest this should succeed.
767 include_empty_finder = doctest.DocTestFinder(exclude_empty=False)
768 exclude_empty_finder = doctest.DocTestFinder(exclude_empty=True)
776 DocTestParser is used to parse docstrings containing doctest examples.
793 >>> parser = doctest.DocTestParser()
795 ... if isinstance(piece, doctest.Example):
843 >>> test = doctest.DocTestFinder().find(f)[0]
850 >>> doctest.DocTestRunner(verbose=False).run(test)
864 >>> test = doctest.DocTestFinder().find(f)[0]
865 >>> doctest.DocTestRunner(verbose=True).run(test)
866 ... # doctest: +ELLIPSIS
902 >>> test = doctest.DocTestFinder().find(f)[0]
904 >>> doctest.DocTestRunner(verbose=True).run(test)
929 >>> doctest.DocTestRunner().run(test)
934 >>> doctest.DocTestRunner().run(test)
971 >>> test = doctest.DocTestFinder().find(f)[0]
972 >>> doctest.DocTestRunner(verbose=False).run(test)
988 >>> test = doctest.DocTestFinder().find(f)[0]
989 >>> doctest.DocTestRunner(verbose=False).run(test)
990 ... # doctest: +ELLIPSIS
1010 >>> test = doctest.DocTestFinder().find(f)[0]
1011 >>> doctest.DocTestRunner(verbose=False).run(test)
1023 >>> test = doctest.DocTestFinder().find(f)[0]
1024 >>> doctest.DocTestRunner(verbose=False).run(test)
1025 ... # doctest: +ELLIPSIS
1044 ... >>> raise ValueError('message') #doctest: +IGNORE_EXCEPTION_DETAIL
1048 >>> test = doctest.DocTestFinder().find(f)[0]
1049 >>> doctest.DocTestRunner(verbose=False).run(test)
1063 >>> test = doctest.DocTestFinder().find(f)[0]
1064 >>> doctest.DocTestRunner(verbose=False).run(test)
1065 ... # doctest: +ELLIPSIS
1090 >>> test = doctest.DocTestFinder().find(f)[0]
1091 >>> doctest.DocTestRunner(verbose=False).run(test)
1100 ... >>> raise HTTPException('message') #doctest: +IGNORE_EXCEPTION_DETAIL
1104 >>> test = doctest.DocTestFinder().find(f)[0]
1105 >>> doctest.DocTestRunner(verbose=False).run(test)
1115 ... >>> raise HTTPException('message') #doctest: +IGNORE_EXCEPTION_DETAIL
1119 >>> test = doctest.DocTestFinder().find(f)[0]
1120 >>> doctest.DocTestRunner(verbose=False).run(test)
1127 ... >>> raise ValueError('message') #doctest: +IGNORE_EXCEPTION_DETAIL
1131 >>> test = doctest.DocTestFinder().find(f)[0]
1132 >>> doctest.DocTestRunner(verbose=False).run(test)
1133 ... # doctest: +ELLIPSIS
1137 raise ValueError('message') #doctest: +IGNORE_EXCEPTION_DETAIL
1153 ... >>> raise HTTPException() #doctest: +IGNORE_EXCEPTION_DETAIL
1157 >>> test = doctest.DocTestFinder().find(f)[0]
1158 >>> doctest.DocTestRunner(verbose=False).run(test)
1166 ... >>> raise HTTPException() #doctest: +IGNORE_EXCEPTION_DETAIL
1170 >>> test = doctest.DocTestFinder().find(f)[0]
1171 >>> doctest.DocTestRunner(verbose=False).run(test)
1182 >>> test = doctest.DocTestFinder().find(f)[0]
1183 >>> doctest.DocTestRunner(verbose=False).run(test)
1184 ... # doctest: +ELLIPSIS
1196 Test that changing sys.displayhook doesn't matter for doctest.
1208 >>> test = doctest.DocTestFinder().find(f)[0]
1209 >>> r = doctest.DocTestRunner(verbose=False).run(test)
1228 runner. These are defined as module constants in doctest, and passed
1239 >>> test = doctest.DocTestFinder().find(f)[0]
1240 >>> doctest.DocTestRunner(verbose=False).run(test)
1244 >>> test = doctest.DocTestFinder().find(f)[0]
1245 >>> flags = doctest.DONT_ACCEPT_TRUE_FOR_1
1246 >>> doctest.DocTestRunner(verbose=False, optionflags=flags).run(test)
1247 ... # doctest: +ELLIPSIS
1265 >>> test = doctest.DocTestFinder().find(f)[0]
1266 >>> doctest.DocTestRunner(verbose=False).run(test)
1270 >>> test = doctest.DocTestFinder().find(f)[0]
1271 >>> flags = doctest.DONT_ACCEPT_BLANKLINE
1272 >>> doctest.DocTestRunner(verbose=False, optionflags=flags).run(test)
1273 ... # doctest: +ELLIPSIS
1295 >>> test = doctest.DocTestFinder().find(f)[0]
1296 >>> doctest.DocTestRunner(verbose=False).run(test)
1297 ... # doctest: +ELLIPSIS
1310 >>> test = doctest.DocTestFinder().find(f)[0]
1311 >>> flags = doctest.NORMALIZE_WHITESPACE
1312 >>> doctest.DocTestRunner(verbose=False, optionflags=flags).run(test)
1316 >>> print(list(range(20))) #doctest: +NORMALIZE_WHITESPACE
1327 >>> test = doctest.DocTestFinder().find(f)[0]
1328 >>> doctest.DocTestRunner(verbose=False).run(test)
1329 ... # doctest: +ELLIPSIS
1341 >>> test = doctest.DocTestFinder().find(f)[0]
1342 >>> flags = doctest.ELLIPSIS
1343 >>> doctest.DocTestRunner(verbose=False, optionflags=flags).run(test)
1350 ... print(i**2, end=' ') #doctest: +ELLIPSIS
1356 >>> if 1: #doctest: +ELLIPSIS
1364 >>> print(list(range(20))) # doctest:+ELLIPSIS
1367 >>> print(list(range(20))) # doctest: +ELLIPSIS
1368 ... # doctest: +NORMALIZE_WHITESPACE
1372 example is not run. It can be useful in contexts where doctest
1379 >>> import unavailable_resource # doctest: +SKIP
1380 >>> unavailable_resource.do_something() # doctest: +SKIP
1381 >>> unavailable_resource.blow_up() # doctest: +SKIP
1387 >>> print(random.random()) # doctest: +SKIP
1406 >>> test = doctest.DocTestFinder().find(f)[0]
1407 >>> doctest.DocTestRunner(verbose=False).run(test)
1408 ... # doctest: +ELLIPSIS
1432 >>> test = doctest.DocTestFinder().find(f)[0]
1433 >>> flags = doctest.REPORT_UDIFF
1434 >>> doctest.DocTestRunner(verbose=False, optionflags=flags).run(test)
1435 ... # doctest: +ELLIPSIS
1457 >>> test = doctest.DocTestFinder().find(f)[0]
1458 >>> flags = doctest.REPORT_CDIFF
1459 >>> doctest.DocTestRunner(verbose=False, optionflags=flags).run(test)
1460 ... # doctest: +ELLIPSIS
1495 >>> test = doctest.DocTestFinder().find(f)[0]
1496 >>> flags = doctest.REPORT_NDIFF
1497 >>> doctest.DocTestRunner(verbose=False, optionflags=flags).run(test)
1498 ... # doctest: +ELLIPSIS
1526 >>> test = doctest.DocTestFinder().find(f)[0]
1527 >>> flags = doctest.REPORT_ONLY_FIRST_FAILURE
1528 >>> doctest.DocTestRunner(verbose=False, optionflags=flags).run(test)
1529 ... # doctest: +ELLIPSIS
1542 >>> doctest.DocTestRunner(verbose=True, optionflags=flags).run(test)
1543 ... # doctest: +ELLIPSIS
1566 >>> flags = doctest.FAIL_FAST
1567 >>> doctest.DocTestRunner(verbose=False, optionflags=flags).run(test)
1568 ... # doctest: +ELLIPSIS
1582 >>> flags = doctest.FAIL_FAST | doctest.REPORT_ONLY_FIRST_FAILURE
1583 >>> doctest.DocTestRunner(verbose=False, optionflags=flags).run(test)
1584 ... # doctest: +ELLIPSIS
1611 >>> test = doctest.DocTestFinder().find(f)[0]
1612 >>> flags = doctest.REPORT_ONLY_FIRST_FAILURE
1613 >>> doctest.DocTestRunner(verbose=False, optionflags=flags).run(test)
1614 ... # doctest: +ELLIPSIS
1623 >>> flags = doctest.FAIL_FAST
1624 >>> doctest.DocTestRunner(verbose=False, optionflags=flags).run(test)
1625 ... # doctest: +ELLIPSIS
1636 we reach into doctest's internals a bit.
1639 >>> unlikely in doctest.OPTIONFLAGS_BY_NAME
1641 >>> new_flag_value = doctest.register_optionflag(unlikely)
1642 >>> unlikely in doctest.OPTIONFLAGS_BY_NAME
1648 >>> redundant_flag_value = doctest.register_optionflag(unlikely)
1653 >>> del doctest.OPTIONFLAGS_BY_NAME[unlikely]
1662 example with a comment of the form ``# doctest: +OPTION``:
1668 ... >>> print(list(range(10))) # doctest: +ELLIPSIS
1671 >>> test = doctest.DocTestFinder().find(f)[0]
1672 >>> doctest.DocTestRunner(verbose=False).run(test)
1673 ... # doctest: +ELLIPSIS
1685 comment of the form ``# doctest: -OPTION``:
1692 ... >>> print(list(range(10))) # doctest: -ELLIPSIS
1695 >>> test = doctest.DocTestFinder().find(f)[0]
1696 >>> doctest.DocTestRunner(verbose=False,
1697 ... optionflags=doctest.ELLIPSIS).run(test)
1698 ... # doctest: +ELLIPSIS
1702 print(list(range(10))) # doctest: -ELLIPSIS
1716 ... >>> print(list(range(10))) # doctest: +ELLIPSIS
1722 >>> test = doctest.DocTestFinder().find(f)[0]
1723 >>> doctest.DocTestRunner(verbose=False).run(test)
1724 ... # doctest: +ELLIPSIS
1750 ... ... # doctest: +ELLIPSIS +NORMALIZE_WHITESPACE
1753 >>> test = doctest.DocTestFinder().find(f)[0]
1754 >>> doctest.DocTestRunner(verbose=False).run(test)
1755 ... # doctest: +ELLIPSIS
1770 ... ... # doctest: +ELLIPSIS,+NORMALIZE_WHITESPACE
1773 >>> test = doctest.DocTestFinder().find(f)[0]
1774 >>> doctest.DocTestRunner(verbose=False).run(test)
1775 ... # doctest: +ELLIPSIS
1790 ... ... # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE
1793 >>> test = doctest.DocTestFinder().find(f)[0]
1794 >>> doctest.DocTestRunner(verbose=False).run(test)
1795 ... # doctest: +ELLIPSIS
1811 ... ... # doctest: +ELLIPSIS
1814 >>> test = doctest.DocTestFinder().find(f)[0]
1815 >>> doctest.DocTestRunner(verbose=False).run(test)
1822 ... >>> for x in range(10): # doctest: +ELLIPSIS
1827 ... ... print(' ', x, end='', sep='') # doctest: +ELLIPSIS
1830 >>> test = doctest.DocTestFinder().find(f)[0]
1831 >>> doctest.DocTestRunner(verbose=False).run(test)
1839 ... >>> for x in range(10): # doctest: +ELLIPSIS
1840 ... ... print(x, end=' ') # doctest: +NORMALIZE_WHITESPACE
1843 >>> test = doctest.DocTestFinder().find(f)[0]
1844 >>> doctest.DocTestRunner(verbose=False).run(test)
1847 It is an error to have a comment of the form ``# doctest:`` that is
1853 >>> s = '>>> print(12) #doctest: +BADOPTION'
1854 >>> test = doctest.DocTestParser().get_doctest(s, {}, 's', 's.py', 0)
1856 ValueError: line 1 of the doctest for s has an invalid option: '+BADOPTION'
1859 >>> s = '>>> print(12) #doctest: ELLIPSIS'
1860 >>> test = doctest.DocTestParser().get_doctest(s, {}, 's', 's.py', 0)
1862 ValueError: line 1 of the doctest for s has an invalid option: 'ELLIPSIS'
1867 >>> s = '>>> # doctest: +ELLIPSIS'
1868 >>> test = doctest.DocTestParser().get_doctest(s, {}, 's', 's.py', 0)
1870 ValueError: line 0 of the doctest for s has an option directive on a line with no example: '# doctest: +ELLIPSIS'
1883 >>> print(doctest.testsource(test.test_doctest, name))
1894 >>> print(doctest.testsource(test.test_doctest, name))
1903 >>> print(doctest.testsource(test.test_doctest, name))
1930 >>> try: doctest.debug_src(s)
1945 """Using pdb.set_trace from a doctest.
1947 You can use pdb.set_trace from a doctest. To do so, you must
1949 you use it. The doctest module changes sys.stdout so that it can
1961 >>> parser = doctest.DocTestParser()
1963 >>> runner = doctest.DocTestRunner(verbose=False)
1977 > <doctest foo-bar@baz[2]>(1)<module>()->None
2008 > <doctest test.test_doctest.test_pdb_set_trace[7]>(3)calls_set_trace()->None
2013 > <doctest foo-bar@baz[1]>(1)<module>()
2021 doctest examples:
2043 ... # doctest: +NORMALIZE_WHITESPACE
2045 > <doctest foo-bar@baz[1]>(3)g()->None
2054 > <doctest foo-bar@baz[0]>(2)f()->None
2062 > <doctest foo-bar@baz[2]>(1)<module>()->None
2101 >>> parser = doctest.DocTestParser()
2102 >>> runner = doctest.DocTestRunner(verbose=False)
2118 ... # doctest: +REPORT_NDIFF
2119 > <doctest test.test_doctest.test_pdb_set_trace_nested[0]>(5)calls_set_trace()
2125 > <doctest test.test_doctest.test_pdb_set_trace_nested[0]>(7)f1()
2128 > <doctest test.test_doctest.test_pdb_set_trace_nested[0]>(8)f1()
2131 > <doctest test.test_doctest.test_pdb_set_trace_nested[0]>(9)f1()
2135 > <doctest test.test_doctest.test_pdb_set_trace_nested[0]>(11)f2()
2138 > <doctest test.test_doctest.test_pdb_set_trace_nested[0]>(12)f2()
2141 > <doctest test.test_doctest.test_pdb_set_trace_nested[0]>(13)f2()
2146 > <doctest test.test_doctest.test_pdb_set_trace_nested[0]>(9)f1()
2151 > <doctest test.test_doctest.test_pdb_set_trace_nested[0]>(5)calls_set_trace()
2156 > <doctest foo-bar@baz[1]>(1)<module>()
2165 """DocTestSuite creates a unittest test suite from a doctest.
2172 >>> suite = doctest.DocTestSuite(test.sample_doctest)
2178 >>> suite = doctest.DocTestSuite('test.sample_doctest')
2182 The module need not contain any doctest examples:
2184 >>> suite = doctest.DocTestSuite('test.sample_doctest_no_doctests')
2190 >>> suite = doctest.DocTestSuite('test.sample_doctest_no_docstrings')
2202 >>> finder = doctest.DocTestFinder()
2203 >>> suite = doctest.DocTestSuite('test.sample_doctest',
2210 >>> finder = doctest.DocTestFinder()
2211 >>> suite = doctest.DocTestSuite('test.sample_doctest_no_docstrings',
2220 >>> suite = doctest.DocTestSuite('test.sample_doctest', globs={})
2227 >>> suite = doctest.DocTestSuite('test.sample_doctest',
2235 >>> suite = doctest.DocTestSuite('test.sample_doctest',
2236 ... optionflags=doctest.DONT_ACCEPT_BLANKLINE)
2252 >>> suite = doctest.DocTestSuite('test.sample_doctest',
2271 >>> suite = doctest.DocTestSuite('test.sample_doctest', setUp=setUp)
2288 >>> suite = doctest.DocFileSuite('test_doctest.txt',
2299 >>> suite = doctest.DocFileSuite('test_doctest.txt',
2315 ... suite = doctest.DocFileSuite('test_doctest.txt',
2328 >>> suite = doctest.DocFileSuite('../test/test_doctest.txt')
2338 >>> suite = doctest.DocFileSuite('test_doctest.txt',
2353 >>> suite = doctest.DocFileSuite(test_file, module_relative=False)
2359 >>> suite = doctest.DocFileSuite(test_file, module_relative=False,
2366 >>> suite = doctest.DocFileSuite('test_doctest.txt',
2374 provide doctest options:
2376 >>> suite = doctest.DocFileSuite('test_doctest.txt',
2379 ... optionflags=doctest.DONT_ACCEPT_BLANKLINE,
2396 >>> suite = doctest.DocFileSuite('test_doctest.txt',
2418 >>> suite = doctest.DocFileSuite('test_doctest.txt', setUp=setUp)
2430 >>> suite = doctest.DocFileSuite('test_doctest3.txt')
2438 >>> suite = doctest.DocFileSuite('test_doctest.txt',
2481 >>> suite = doctest.DocFileSuite('test_doctest.txt',
2482 ... optionflags=doctest.DONT_ACCEPT_BLANKLINE)
2485 >>> print(result.failures[0][1]) # doctest: +ELLIPSIS
2496 >>> old = doctest.set_unittest_reportflags(
2497 ... doctest.REPORT_ONLY_FIRST_FAILURE)
2502 >>> print(result.failures[0][1]) # doctest: +ELLIPSIS
2517 >>> suite = doctest.DocFileSuite('test_doctest.txt',
2518 ... optionflags=doctest.DONT_ACCEPT_BLANKLINE | doctest.REPORT_NDIFF)
2524 *NOTE*: These doctest are intentionally not placed in raw string to depict
2527 >>> print(result.failures[0][1]) # doctest: +ELLIPSIS
2548 >>> ignored = doctest.set_unittest_reportflags(old)
2554 doctest examples in a given file. In its simple invocation, it is
2565 >>> doctest.testfile('test_doctest.txt') # doctest: +ELLIPSIS
2578 >>> doctest.master = None # Reset master.
2580 (Note: we'll be clearing doctest.master after each call to
2581 `doctest.testfile`, to suppress warnings about multiple tests with the
2587 >>> doctest.testfile('test_doctest.txt', globs=globs)
2589 >>> doctest.master = None # Reset master.
2592 >>> doctest.testfile('test_doctest.txt', globs=globs,
2593 ... extraglobs=extraglobs) # doctest: +ELLIPSIS
2607 >>> doctest.master = None # Reset master.
2612 >>> doctest.testfile('test_doctest.txt', globs=globs,
2615 >>> doctest.master = None # Reset master.
2619 >>> doctest.testfile('test_doctest.txt', globs=globs, verbose=True)
2641 >>> doctest.master = None # Reset master.
2646 >>> doctest.testfile('test_doctest.txt', name='newname')
2647 ... # doctest: +ELLIPSIS
2652 >>> doctest.master = None # Reset master.
2657 >>> doctest.testfile('test_doctest.txt', report=False)
2658 ... # doctest: +ELLIPSIS
2667 >>> doctest.master = None # Reset master.
2673 >>> doctest.testfile('test_doctest.txt', raise_on_error=True)
2674 ... # doctest: +ELLIPSIS
2676 doctest.UnexpectedException: ...
2677 >>> doctest.master = None # Reset master.
2683 >>> doctest.testfile('test_doctest4.txt', encoding='latin-1') # doctest: +ELLIPSIS
2699 >>> doctest.master = None # Reset master.
2701 >>> doctest.testfile('test_doctest4.txt', encoding='utf-8')
2703 >>> doctest.master = None # Reset master.
2707 >>> doctest.testfile('test_doctest4.txt', encoding='utf-8', verbose=True)
2724 >>> doctest.master = None # Reset master.
2771 sure doctest does so (issue 8473) by creating temporary test files using each
2782 >>> doctest.testfile(fn, module_relative=False, verbose=False)
2792 >>> doctest.testfile(fn, module_relative=False, verbose=False)
2802 >>> doctest.testfile(fn, module_relative=False, verbose=False)
2807 bypasses the standard universal newline handling so doctest has to do the
2812 whitespace if doctest does not correctly do the newline conversion.
2833 ... doctest.testfile("doctest_testfile.txt", package="doctest_testpkg", verbose=False)
2841 testing the case raised by Issue 6195, where trying to doctest a C module would
2842 fail with a UnicodeDecodeError because doctest tried to read the "source" lines
2846 >>> doctest.testmod(unicodedata, verbose=False)
2859 Check doctest with a non-ascii filename:
2865 >>> parser = doctest.DocTestParser()
2869 >>> runner = doctest.DocTestRunner(verbose=False)
2870 >>> runner.run(test) # doctest: +ELLIPSIS
2879 File "<doctest foo-bär@baz[0]>", line 1, in <module>
2886 The doctest module can be used to run doctests against an arbitrary file.
2892 output into something we can doctest against:
2898 simple tests and no errors. We'll run both the unadorned doctest command, and
2914 ... '-m', 'doctest', fn)
2916 ... '-m', 'doctest', '-v', fn)
2946 non-errors by applying the appropriate doctest options to the run (ELLIPSIS in
2948 allow thoroughly testing the -f and -o flags, as well as the doctest command's
2979 ... '-m', 'doctest', fn, fn2)
2981 ... '-m', 'doctest', '-o', 'ELLIPSIS', fn)
2983 ... '-m', 'doctest', '-o', 'ELLIPSIS',
2986 ... '-m', 'doctest', '-f', fn, fn2)
2988 ... '-m', 'doctest', '-v', '-o', 'ELLIPSIS',
2991 Our first test run will show the errors from the first file (doctest stops if a
2992 file has errors). Note that doctest test-run error output appears on stdout,
2997 >>> print(normalize(out1)) # doctest: +ELLIPSIS
3032 >>> print(normalize(out4)) # doctest: +ELLIPSIS
3095 ... '-m', 'doctest', 'nosuchfile')
3099 >>> print(normalize(err)) # doctest: +ELLIPSIS
3104 Invalid doctest option:
3107 ... '-m', 'doctest', '-o', 'nosuchoption')
3110 >>> print(normalize(err)) # doctest: +ELLIPSIS
3134 *NOTE*: These doctest are not placed in raw string to depict the trailing whitespace
3137 >>> test = doctest.DocTestFinder().find(f)[0]
3138 >>> flags = doctest.REPORT_NDIFF
3139 >>> doctest.DocTestRunner(verbose=False, optionflags=flags).run(test)
3140 ... # doctest: +ELLIPSIS
3165 >>> suite = doctest.DocTestSuite(test.sample_doctest)
3174 tests.addTest(doctest.DocTestSuite(doctest))
3175 tests.addTest(doctest.DocTestSuite())
3192 test_coverage('/tmp/doctest.cover')