| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- """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
- if sys.flags.optimize >= 2:
- raise unittest.SkipTest("Cannot test docstrings with -O2")
- class C(object):
- """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
- class Test(unittest.TestCase):
- def test_testmod(self):
- import doctest, sys
- EXPECTED = 19
- f, t = doctest.testmod(sys.modules[__name__])
- if f:
- self.fail("%d of %d doctests failed" % (f, t))
- if t != EXPECTED:
- self.fail("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__':
- unittest.main()
|