Lines Matching full:doctest
3 Test script for doctest.
8 import doctest
173 >>> example = doctest.Example('print 1', '1\n')
183 >>> example = doctest.Example('[].pop()', '', exc_msg,
185 ... options={doctest.ELLIPSIS: True})
193 >>> e = doctest.Example('print 1', '1\n')
197 >>> e = doctest.Example('print 1\n', '1\n')
202 >>> e = doctest.Example('print 1;\nprint 2\n', '1\n2\n')
206 >>> e = doctest.Example('print 1;\nprint 2', '1\n2\n')
211 >>> e = doctest.Example('', '')
218 >>> e = doctest.Example('print 1', '1\n')
222 >>> e = doctest.Example('print 1', '1')
226 >>> e = doctest.Example('print', '')
235 >>> e = doctest.Example('[].pop()', '', exc_msg)
240 >>> e = doctest.Example('[].pop()', '', exc_msg)
246 >>> e = doctest.Example('raise ValueError("1\n 2")', '', exc_msg)
251 >>> e = doctest.Example('raise ValueError("1\n 2")', '', exc_msg)
258 >>> e = doctest.Example('raise X()', '', exc_msg)
263 >>> example = doctest.Example('print 1', '1\n')
264 >>> same_example = doctest.Example('print 1', '1\n')
265 >>> other_example = doctest.Example('print 42', '42\n')
279 Unit tests for the `DocTest` class.
281 DocTest is a collection of examples, extracted from a docstring, along
283 filename, and line number). The docstring is parsed by the `DocTest`
297 >>> parser = doctest.DocTestParser()
301 <DocTest some_test from some_file:20 (2 examples)>
311 attributes on the doctest object:
326 expected output of an example, then `DocTest` will raise a ValueError:
338 continuation lines, then `DocTest` will raise a ValueError:
349 If there's no blank space after a PS1 prompt ('>>>'), then `DocTest`
357 If there's no blank space after a PS2 prompt ('...'), then `DocTest`
365 Compare `DocTest`:
394 >>> DocTestCase = doctest.DocTestCase
424 >>> finder = doctest.DocTestFinder()
434 >>> print tests # doctest: +ELLIPSIS
435 [<DocTest sample_func from ...:17 (1 example)>]
440 >>> tests[0].filename # doctest: +ELLIPSIS
463 >>> excl_empty_finder = doctest.DocTestFinder(exclude_empty=True)
473 ... ''' no doctest examples '''
474 >>> finder.find(no_examples) # doctest: +ELLIPSIS
475 [<DocTest no_examples from ...:1 (no examples)>]
483 >>> finder = doctest.DocTestFinder()
534 >>> finder = doctest.DocTestFinder()
535 >>> # Use module=test.test_doctest, to prevent doctest from
570 We can't guess which will be found in doctest's traversal of
580 >>> tests = doctest.DocTestFinder().find(SampleClass)
595 is really to support backward compatibility in what doctest.master.summarize()
598 >>> tests = doctest.DocTestFinder(exclude_empty=False).find(SampleClass)
618 >>> tests = doctest.DocTestFinder(recurse=False).find(SampleClass)
643 >>> test = doctest.DocTestFinder().find(f)[0]
651 DocTestParser is used to parse docstrings containing doctest examples.
668 >>> parser = doctest.DocTestParser()
670 ... if isinstance(piece, doctest.Example):
707 DocTestRunner is used to run DocTest test cases, and to accumulate
708 statistics. Here's a simple DocTest case we can use:
718 >>> test = doctest.DocTestFinder().find(f)[0]
721 given DocTest case in a given namespace (globs). It returns a tuple
725 >>> doctest.DocTestRunner(verbose=False).run(test)
739 >>> test = doctest.DocTestFinder().find(f)[0]
740 >>> doctest.DocTestRunner(verbose=True).run(test)
741 ... # doctest: +ELLIPSIS
777 >>> test = doctest.DocTestFinder().find(f)[0]
779 >>> doctest.DocTestRunner(verbose=True).run(test)
804 >>> doctest.DocTestRunner().run(test)
809 >>> doctest.DocTestRunner().run(test)
846 >>> test = doctest.DocTestFinder().find(f)[0]
847 >>> doctest.DocTestRunner(verbose=False).run(test)
863 >>> test = doctest.DocTestFinder().find(f)[0]
864 >>> doctest.DocTestRunner(verbose=False).run(test)
865 ... # doctest: +ELLIPSIS
885 >>> test = doctest.DocTestFinder().find(f)[0]
886 >>> doctest.DocTestRunner(verbose=False).run(test)
898 >>> test = doctest.DocTestFinder().find(f)[0]
899 >>> doctest.DocTestRunner(verbose=False).run(test)
900 ... # doctest: +ELLIPSIS
919 ... >>> raise ValueError, 'message' #doctest: +IGNORE_EXCEPTION_DETAIL
923 >>> test = doctest.DocTestFinder().find(f)[0]
924 >>> doctest.DocTestRunner(verbose=False).run(test)
938 >>> test = doctest.DocTestFinder().find(f)[0]
939 >>> doctest.DocTestRunner(verbose=False).run(test)
940 ... # doctest: +ELLIPSIS
965 >>> test = doctest.DocTestFinder().find(f)[0]
966 >>> doctest.DocTestRunner(verbose=False).run(test)
975 ... >>> raise HTTPException('message') #doctest: +IGNORE_EXCEPTION_DETAIL
979 >>> test = doctest.DocTestFinder().find(f)[0]
980 >>> doctest.DocTestRunner(verbose=False).run(test)
990 ... >>> raise HTTPException('message') #doctest: +IGNORE_EXCEPTION_DETAIL
994 >>> test = doctest.DocTestFinder().find(f)[0]
995 >>> doctest.DocTestRunner(verbose=False).run(test)
1002 ... >>> raise ValueError, 'message' #doctest: +IGNORE_EXCEPTION_DETAIL
1006 >>> test = doctest.DocTestFinder().find(f)[0]
1007 >>> doctest.DocTestRunner(verbose=False).run(test)
1008 ... # doctest: +ELLIPSIS
1012 raise ValueError, 'message' #doctest: +IGNORE_EXCEPTION_DETAIL
1028 ... >>> raise Empty() #doctest: +IGNORE_EXCEPTION_DETAIL
1032 >>> test = doctest.DocTestFinder().find(f)[0]
1033 >>> doctest.DocTestRunner(verbose=False).run(test)
1041 ... >>> raise Empty() #doctest: +IGNORE_EXCEPTION_DETAIL
1045 >>> test = doctest.DocTestFinder().find(f)[0]
1046 >>> doctest.DocTestRunner(verbose=False).run(test)
1057 >>> test = doctest.DocTestFinder().find(f)[0]
1058 >>> doctest.DocTestRunner(verbose=False).run(test)
1059 ... # doctest: +ELLIPSIS
1071 Test that changing sys.displayhook doesn't matter for doctest.
1083 >>> test = doctest.DocTestFinder().find(f)[0]
1084 >>> r = doctest.DocTestRunner(verbose=False).run(test)
1103 runner. These are defined as module constants in doctest, and passed
1114 >>> test = doctest.DocTestFinder().find(f)[0]
1115 >>> doctest.DocTestRunner(verbose=False).run(test)
1119 >>> test = doctest.DocTestFinder().find(f)[0]
1120 >>> flags = doctest.DONT_ACCEPT_TRUE_FOR_1
1121 >>> doctest.DocTestRunner(verbose=False, optionflags=flags).run(test)
1122 ... # doctest: +ELLIPSIS
1140 >>> test = doctest.DocTestFinder().find(f)[0]
1141 >>> doctest.DocTestRunner(verbose=False).run(test)
1145 >>> test = doctest.DocTestFinder().find(f)[0]
1146 >>> flags = doctest.DONT_ACCEPT_BLANKLINE
1147 >>> doctest.DocTestRunner(verbose=False, optionflags=flags).run(test)
1148 ... # doctest: +ELLIPSIS
1170 >>> test = doctest.DocTestFinder().find(f)[0]
1171 >>> doctest.DocTestRunner(verbose=False).run(test)
1172 ... # doctest: +ELLIPSIS
1185 >>> test = doctest.DocTestFinder().find(f)[0]
1186 >>> flags = doctest.NORMALIZE_WHITESPACE
1187 >>> doctest.DocTestRunner(verbose=False, optionflags=flags).run(test)
1191 >>> print range(20) #doctest: +NORMALIZE_WHITESPACE
1202 >>> test = doctest.DocTestFinder().find(f)[0]
1203 >>> doctest.DocTestRunner(verbose=False).run(test)
1204 ... # doctest: +ELLIPSIS
1216 >>> test = doctest.DocTestFinder().find(f)[0]
1217 >>> flags = doctest.ELLIPSIS
1218 >>> doctest.DocTestRunner(verbose=False, optionflags=flags).run(test)
1224 ... print i**2, #doctest: +ELLIPSIS
1229 >>> for i in range(21): #doctest: +ELLIPSIS
1235 >>> print range(20) # doctest:+ELLIPSIS
1238 >>> print range(20) # doctest: +ELLIPSIS
1239 ... # doctest: +NORMALIZE_WHITESPACE
1243 example is not run. It can be useful in contexts where doctest
1250 >>> import unavailable_resource # doctest: +SKIP
1251 >>> unavailable_resource.do_something() # doctest: +SKIP
1252 >>> unavailable_resource.blow_up() # doctest: +SKIP
1258 >>> print random.random() # doctest: +SKIP
1277 >>> test = doctest.DocTestFinder().find(f)[0]
1278 >>> doctest.DocTestRunner(verbose=False).run(test)
1279 ... # doctest: +ELLIPSIS
1303 >>> test = doctest.DocTestFinder().find(f)[0]
1304 >>> flags = doctest.REPORT_UDIFF
1305 >>> doctest.DocTestRunner(verbose=False, optionflags=flags).run(test)
1306 ... # doctest: +ELLIPSIS
1328 >>> test = doctest.DocTestFinder().find(f)[0]
1329 >>> flags = doctest.REPORT_CDIFF
1330 >>> doctest.DocTestRunner(verbose=False, optionflags=flags).run(test)
1331 ... # doctest: +ELLIPSIS
1366 >>> test = doctest.DocTestFinder().find(f)[0]
1367 >>> flags = doctest.REPORT_NDIFF
1368 >>> doctest.DocTestRunner(verbose=False, optionflags=flags).run(test)
1369 ... # doctest: +ELLIPSIS
1397 >>> test = doctest.DocTestFinder().find(f)[0]
1398 >>> flags = doctest.REPORT_ONLY_FIRST_FAILURE
1399 >>> doctest.DocTestRunner(verbose=False, optionflags=flags).run(test)
1400 ... # doctest: +ELLIPSIS
1413 >>> doctest.DocTestRunner(verbose=True, optionflags=flags).run(test)
1414 ... # doctest: +ELLIPSIS
1450 >>> test = doctest.DocTestFinder().find(f)[0]
1451 >>> flags = doctest.REPORT_ONLY_FIRST_FAILURE
1452 >>> doctest.DocTestRunner(verbose=False, optionflags=flags).run(test)
1453 ... # doctest: +ELLIPSIS
1464 we reach into doctest's internals a bit.
1467 >>> unlikely in doctest.OPTIONFLAGS_BY_NAME
1469 >>> new_flag_value = doctest.register_optionflag(unlikely)
1470 >>> unlikely in doctest.OPTIONFLAGS_BY_NAME
1476 >>> redundant_flag_value = doctest.register_optionflag(unlikely)
1481 >>> del doctest.OPTIONFLAGS_BY_NAME[unlikely]
1490 example with a comment of the form ``# doctest: +OPTION``:
1496 ... >>> print range(10) # doctest: +ELLIPSIS
1499 >>> test = doctest.DocTestFinder().find(f)[0]
1500 >>> doctest.DocTestRunner(verbose=False).run(test)
1501 ... # doctest: +ELLIPSIS
1513 comment of the form ``# doctest: -OPTION``:
1520 ... >>> print range(10) # doctest: -ELLIPSIS
1523 >>> test = doctest.DocTestFinder().find(f)[0]
1524 >>> doctest.DocTestRunner(verbose=False,
1525 ... optionflags=doctest.ELLIPSIS).run(test)
1526 ... # doctest: +ELLIPSIS
1530 print range(10) # doctest: -ELLIPSIS
1544 ... >>> print range(10) # doctest: +ELLIPSIS
1550 >>> test = doctest.DocTestFinder().find(f)[0]
1551 >>> doctest.DocTestRunner(verbose=False).run(test)
1552 ... # doctest: +ELLIPSIS
1578 ... ... # doctest: +ELLIPSIS +NORMALIZE_WHITESPACE
1581 >>> test = doctest.DocTestFinder().find(f)[0]
1582 >>> doctest.DocTestRunner(verbose=False).run(test)
1583 ... # doctest: +ELLIPSIS
1598 ... ... # doctest: +ELLIPSIS,+NORMALIZE_WHITESPACE
1601 >>> test = doctest.DocTestFinder().find(f)[0]
1602 >>> doctest.DocTestRunner(verbose=False).run(test)
1603 ... # doctest: +ELLIPSIS
1618 ... ... # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE
1621 >>> test = doctest.DocTestFinder().find(f)[0]
1622 >>> doctest.DocTestRunner(verbose=False).run(test)
1623 ... # doctest: +ELLIPSIS
1639 ... ... # doctest: +ELLIPSIS
1642 >>> test = doctest.DocTestFinder().find(f)[0]
1643 >>> doctest.DocTestRunner(verbose=False).run(test)
1650 ... >>> for x in range(10): # doctest: +ELLIPSIS
1655 ... ... print x, # doctest: +ELLIPSIS
1658 >>> test = doctest.DocTestFinder().find(f)[0]
1659 >>> doctest.DocTestRunner(verbose=False).run(test)
1667 ... >>> for x in range(10): # doctest: +ELLIPSIS
1668 ... ... print x, # doctest: +NORMALIZE_WHITESPACE
1671 >>> test = doctest.DocTestFinder().find(f)[0]
1672 >>> doctest.DocTestRunner(verbose=False).run(test)
1675 It is an error to have a comment of the form ``# doctest:`` that is
1681 >>> s = '>>> print 12 #doctest: +BADOPTION'
1682 >>> test = doctest.DocTestParser().get_doctest(s, {}, 's', 's.py', 0)
1684 ValueError: line 1 of the doctest for s has an invalid option: '+BADOPTION'
1687 >>> s = '>>> print 12 #doctest: ELLIPSIS'
1688 >>> test = doctest.DocTestParser().get_doctest(s, {}, 's', 's.py', 0)
1690 ValueError: line 1 of the doctest for s has an invalid option: 'ELLIPSIS'
1695 >>> s = '>>> # doctest: +ELLIPSIS'
1696 >>> test = doctest.DocTestParser().get_doctest(s, {}, 's', 's.py', 0)
1698 …ValueError: line 0 of the doctest for s has an option directive on a line with no example: '# doct…
1737 >>> print doctest.testsource(test.test_doctest, name)
1748 >>> print doctest.testsource(test.test_doctest, name)
1757 >>> print doctest.testsource(test.test_doctest, name)
1785 >>> try: doctest.debug_src(s)
1799 """Using pdb.set_trace from a doctest.
1801 You can use pdb.set_trace from a doctest. To do so, you must
1803 you use it. The doctest module changes sys.stdout so that it can
1815 >>> parser = doctest.DocTestParser()
1817 >>> runner = doctest.DocTestRunner(verbose=False)
1832 > <doctest foo-bär@baz[2]>(1)<module>()->None
1863 > <doctest test.test_doctest.test_pdb_set_trace[8]>(3)calls_set_trace()->None
1868 > <doctest foo-bär@baz[1]>(1)<module>()
1876 doctest examples:
1898 ... # doctest: +NORMALIZE_WHITESPACE
1900 > <doctest foo-bär@baz[1]>(3)g()->None
1909 > <doctest foo-bär@baz[0]>(2)f()->None
1917 > <doctest foo-bär@baz[2]>(1)<module>()->None
1956 >>> parser = doctest.DocTestParser()
1957 >>> runner = doctest.DocTestRunner(verbose=False)
1973 > <doctest test.test_doctest.test_pdb_set_trace_nested[0]>(5)calls_set_trace()
1979 > <doctest test.test_doctest.test_pdb_set_trace_nested[0]>(7)f1()
1982 > <doctest test.test_doctest.test_pdb_set_trace_nested[0]>(8)f1()
1985 > <doctest test.test_doctest.test_pdb_set_trace_nested[0]>(9)f1()
1989 > <doctest test.test_doctest.test_pdb_set_trace_nested[0]>(11)f2()
1992 > <doctest test.test_doctest.test_pdb_set_trace_nested[0]>(12)f2()
1995 > <doctest test.test_doctest.test_pdb_set_trace_nested[0]>(13)f2()
2000 > <doctest test.test_doctest.test_pdb_set_trace_nested[0]>(9)f1()
2005 > <doctest test.test_doctest.test_pdb_set_trace_nested[0]>(5)calls_set_trace()
2010 > <doctest foo-bär@baz[1]>(1)<module>()
2019 """DocTestSuite creates a unittest test suite from a doctest.
2026 >>> suite = doctest.DocTestSuite(test.sample_doctest)
2032 >>> suite = doctest.DocTestSuite('test.sample_doctest')
2036 The module need not contain any doctest examples:
2038 >>> suite = doctest.DocTestSuite('test.sample_doctest_no_doctests')
2045 ... doctest.DocTestSuite('test.sample_doctest_no_docstrings')
2055 >>> finder = doctest.DocTestFinder(exclude_empty=False)
2056 >>> suite = doctest.DocTestSuite('test.sample_doctest_no_docstrings',
2071 >>> suite = doctest.DocTestSuite('test.sample_doctest', globs={})
2078 >>> suite = doctest.DocTestSuite('test.sample_doctest',
2086 >>> suite = doctest.DocTestSuite('test.sample_doctest',
2087 ... optionflags=doctest.DONT_ACCEPT_BLANKLINE)
2103 >>> suite = doctest.DocTestSuite('test.sample_doctest',
2122 >>> suite = doctest.DocTestSuite('test.sample_doctest', setUp=setUp)
2139 >>> suite = doctest.DocFileSuite('test_doctest.txt',
2150 >>> suite = doctest.DocFileSuite('test_doctest.txt',
2166 ... suite = doctest.DocFileSuite('test_doctest.txt',
2179 >>> suite = doctest.DocFileSuite('../test/test_doctest.txt')
2189 >>> suite = doctest.DocFileSuite('test_doctest.txt',
2204 >>> suite = doctest.DocFileSuite(test_file, module_relative=False)
2210 >>> suite = doctest.DocFileSuite(test_file, module_relative=False,
2217 >>> suite = doctest.DocFileSuite('test_doctest.txt',
2225 provide doctest options:
2227 >>> suite = doctest.DocFileSuite('test_doctest.txt',
2230 ... optionflags=doctest.DONT_ACCEPT_BLANKLINE,
2247 >>> suite = doctest.DocFileSuite('test_doctest.txt',
2269 >>> suite = doctest.DocFileSuite('test_doctest.txt', setUp=setUp)
2281 >>> suite = doctest.DocFileSuite('test_doctest3.txt')
2289 >>> suite = doctest.DocFileSuite('test_doctest.txt',
2316 >>> suite = doctest.DocFileSuite('test_doctest.txt',
2317 ... optionflags=doctest.DONT_ACCEPT_BLANKLINE)
2320 >>> print result.failures[0][1] # doctest: +ELLIPSIS
2331 >>> old = doctest.set_unittest_reportflags(
2332 ... doctest.REPORT_ONLY_FIRST_FAILURE)
2337 >>> print result.failures[0][1] # doctest: +ELLIPSIS
2352 >>> suite = doctest.DocFileSuite('test_doctest.txt',
2353 ... optionflags=doctest.DONT_ACCEPT_BLANKLINE | doctest.REPORT_NDIFF)
2358 >>> print result.failures[0][1] # doctest: +ELLIPSIS
2379 >>> ignored = doctest.set_unittest_reportflags(old)
2385 doctest examples in a given file. In its simple invokation, it is
2396 >>> doctest.testfile('test_doctest.txt') # doctest: +ELLIPSIS
2409 >>> doctest.master = None # Reset master.
2411 (Note: we'll be clearing doctest.master after each call to
2412 `doctest.testfile`, to suppress warnings about multiple tests with the
2418 >>> doctest.testfile('test_doctest.txt', globs=globs)
2420 >>> doctest.master = None # Reset master.
2423 >>> doctest.testfile('test_doctest.txt', globs=globs,
2424 ... extraglobs=extraglobs) # doctest: +ELLIPSIS
2438 >>> doctest.master = None # Reset master.
2443 >>> doctest.testfile('test_doctest.txt', globs=globs,
2446 >>> doctest.master = None # Reset master.
2450 >>> doctest.testfile('test_doctest.txt', globs=globs, verbose=True)
2472 >>> doctest.master = None # Reset master.
2477 >>> doctest.testfile('test_doctest.txt', name='newname')
2478 ... # doctest: +ELLIPSIS
2483 >>> doctest.master = None # Reset master.
2488 >>> doctest.testfile('test_doctest.txt', report=False)
2489 ... # doctest: +ELLIPSIS
2498 >>> doctest.master = None # Reset master.
2504 >>> doctest.testfile('test_doctest.txt', raise_on_error=True)
2505 ... # doctest: +ELLIPSIS
2508 >>> doctest.master = None # Reset master.
2514 >>> doctest.testfile('test_doctest4.txt') # doctest: +ELLIPSIS
2530 >>> doctest.master = None # Reset master.
2532 >>> doctest.testfile('test_doctest4.txt', encoding='utf-8')
2534 >>> doctest.master = None # Reset master.
2539 >>> doctest._encoding, saved_encoding = 'utf-8', doctest._encoding
2540 >>> doctest.testfile('test_doctest4.txt', encoding='utf-8', verbose=True)
2567 >>> doctest._encoding = saved_encoding
2568 >>> doctest.master = None # Reset master.
2575 sure doctest does so (issue 8473) by creating temporary test files using each
2585 >>> doctest.testfile(fn, module_relative=False, verbose=False)
2594 >>> doctest.testfile(fn, module_relative=False, verbose=False)
2600 # old_test1, ... used to live in doctest.py, but cluttered it. Note
2601 # that these use the deprecated doctest.Tester, so should go away (or
2605 >>> from doctest import Tester
2642 >>> from doctest import Tester
2666 >>> from doctest import Tester
2702 >>> from doctest import Tester
2716 >>> doctest.testmod(m1, verbose=False)
2725 # Check the doctest cases in doctest itself:
2726 test_support.run_doctest(doctest, verbosity=True)
2738 # Check the doctest cases defined here:
2746 tracer.run('reload(doctest); test_main()')
2754 test_coverage('/tmp/doctest.cover')