source: python/trunk/Lib/test/test_doctest2.py

Last change on this file was 391, checked in by dmik, 11 years ago

python: Merge vendor 2.7.6 to trunk.

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