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 -*-
|
---|
2 | u"""A module to test whether doctest recognizes some 2.2 features,
|
---|
3 | like static and class methods.
|
---|
4 |
|
---|
5 | >>> print 'yup' # 1
|
---|
6 | yup
|
---|
7 |
|
---|
8 | We include some (random) encoded (utf-8) text in the text surrounding
|
---|
9 | the example. It should be ignored:
|
---|
10 |
|
---|
11 | ÐÐÐÐÐ
|
---|
12 |
|
---|
13 | """
|
---|
14 |
|
---|
15 | import sys
|
---|
16 | import unittest
|
---|
17 | from test import test_support
|
---|
18 | if sys.flags.optimize >= 2:
|
---|
19 | raise unittest.SkipTest("Cannot test docstrings with -O2")
|
---|
20 |
|
---|
21 | class 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 |
|
---|
111 | def 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.
|
---|
121 | from doctest import *
|
---|
122 |
|
---|
123 | if __name__ == '__main__':
|
---|
124 | test_main()
|
---|
Note:
See
TracBrowser
for help on using the repository browser.