# -*- 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()