mirror of
https://github.com/python/cpython.git
synced 2024-12-04 07:15:09 +08:00
378c0cf5ab
svn+ssh://pythondev@svn.python.org/python/trunk ........ r78351 | r.david.murray | 2010-02-22 19:24:49 -0500 (Mon, 22 Feb 2010) | 5 lines Issue 6292: for the moment at least, the test suite passes if run with -OO. Tests requiring docstrings are skipped. Patch by Brian Curtin, thanks to Matias Torchinsky for helping review and improve the patch. ........
125 lines
2.3 KiB
Python
125 lines
2.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""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 support
|
|
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
|
|
|
|
def test_main():
|
|
from test import test_doctest2
|
|
EXPECTED = 19
|
|
f, t = support.run_doctest(test_doctest2)
|
|
if t != EXPECTED:
|
|
raise 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()
|