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