1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | Lib/test/test_doctest2.py
# -*- coding: utf-8 -*- u"""A module to test whether doctest recognizes some 2.2 features, like static and class methods. >>> print 'yup' # 1 yup We include some (random) encoded (utf-8) text in the text surrounding the example. It should be ignored: ЉЊЈЁЂ """ import sys import unittest from test import test_support if sys.flags.optimize >= 2: raise unittest.SkipTest("Cannot test docstrings with -O2") class C(object): u"""Class C. >>> print C() # 2 42 We include some (random) encoded (utf-8) text in the text surrounding the example. It should be ignored: ЉЊЈЁЂ """ def __init__(self): """C.__init__. >>> print C() # 3 42 """ def __str__(self): """ >>> print C() # 4 42 """ return "42" class D(object): """A nested D class. >>> print "In D!" # 5 In D! """ def nested(self): """ >>> print 3 # 6 3 """ def getx(self): """ >>> c = C() # 7 >>> c.x = 12 # 8 >>> print c.x # 9 -12 """ return -self._x def setx(self, value): """ >>> c = C() # 10 >>> c.x = 12 # 11 >>> print c.x # 12 -12 """ self._x = value x = property(getx, setx, doc="""\ >>> c = C() # 13 >>> c.x = 12 # 14 >>> print c.x # 15 -12 """) @staticmethod def statm(): """ A static method. >>> print C.statm() # 16 666 >>> print C().statm() # 17 666 """ return 666 @classmethod def clsm(cls, val): """ A class method. >>> print C.clsm(22) # 18 22 >>> print C().clsm(23) # 19 23 """ return val def test_main(): from test import test_doctest2 EXPECTED = 19 f, t = test_support.run_doctest(test_doctest2) if t != EXPECTED: raise test_support.TestFailed("expected %d tests to run, not %d" % (EXPECTED, t)) # Pollute the namespace with a bunch of imported functions and classes, # to make sure they don't get tested. from doctest import * if __name__ == '__main__': test_main() |