Jim Fulton | 7d42878 | 2004-10-13 14:15:32 +0000 | [diff] [blame] | 1 | # -*- coding: utf-8 -*- |
Guido van Rossum | ef87d6e | 2007-05-02 19:09:54 +0000 | [diff] [blame] | 2 | """A module to test whether doctest recognizes some 2.2 features, |
Tim Peters | 17111f3 | 2001-10-03 04:08:26 +0000 | [diff] [blame] | 3 | like static and class methods. |
4 | |||||
Guido van Rossum | 7131f84 | 2007-02-09 20:13:25 +0000 | [diff] [blame] | 5 | >>> print('yup') # 1 |
Tim Peters | 17111f3 | 2001-10-03 04:08:26 +0000 | [diff] [blame] | 6 | yup |
Jim Fulton | 7d42878 | 2004-10-13 14:15:32 +0000 | [diff] [blame] | 7 | |
8 | We include some (random) encoded (utf-8) text in the text surrounding | ||||
9 | the example. It should be ignored: | ||||
10 | |||||
11 | ЉЊЈЁЂ | ||||
12 | |||||
Tim Peters | 17111f3 | 2001-10-03 04:08:26 +0000 | [diff] [blame] | 13 | """ |
14 | |||||
Barry Warsaw | 04f357c | 2002-07-23 19:04:11 +0000 | [diff] [blame] | 15 | from test import test_support |
Tim Peters | 17111f3 | 2001-10-03 04:08:26 +0000 | [diff] [blame] | 16 | |
Tim Peters | 17111f3 | 2001-10-03 04:08:26 +0000 | [diff] [blame] | 17 | class C(object): |
Guido van Rossum | ef87d6e | 2007-05-02 19:09:54 +0000 | [diff] [blame] | 18 | """Class C. |
Tim Peters | 17111f3 | 2001-10-03 04:08:26 +0000 | [diff] [blame] | 19 | |
Guido van Rossum | 7131f84 | 2007-02-09 20:13:25 +0000 | [diff] [blame] | 20 | >>> print(C()) # 2 |
Tim Peters | 17111f3 | 2001-10-03 04:08:26 +0000 | [diff] [blame] | 21 | 42 |
Jim Fulton | 7d42878 | 2004-10-13 14:15:32 +0000 | [diff] [blame] | 22 | |
23 | |||||
24 | We include some (random) encoded (utf-8) text in the text surrounding | ||||
25 | the example. It should be ignored: | ||||
26 | |||||
27 | ЉЊЈЁЂ | ||||
28 | |||||
Tim Peters | 17111f3 | 2001-10-03 04:08:26 +0000 | [diff] [blame] | 29 | """ |
30 | |||||
31 | def __init__(self): | ||||
32 | """C.__init__. | ||||
33 | |||||
Guido van Rossum | 7131f84 | 2007-02-09 20:13:25 +0000 | [diff] [blame] | 34 | >>> print(C()) # 3 |
Tim Peters | 17111f3 | 2001-10-03 04:08:26 +0000 | [diff] [blame] | 35 | 42 |
36 | """ | ||||
37 | |||||
38 | def __str__(self): | ||||
39 | """ | ||||
Guido van Rossum | 7131f84 | 2007-02-09 20:13:25 +0000 | [diff] [blame] | 40 | >>> print(C()) # 4 |
Tim Peters | 17111f3 | 2001-10-03 04:08:26 +0000 | [diff] [blame] | 41 | 42 |
42 | """ | ||||
43 | return "42" | ||||
44 | |||||
Tim Peters | 17111f3 | 2001-10-03 04:08:26 +0000 | [diff] [blame] | 45 | class D(object): |
46 | """A nested D class. | ||||
47 | |||||
Guido van Rossum | 7131f84 | 2007-02-09 20:13:25 +0000 | [diff] [blame] | 48 | >>> print("In D!") # 5 |
Tim Peters | 17111f3 | 2001-10-03 04:08:26 +0000 | [diff] [blame] | 49 | In D! |
50 | """ | ||||
51 | |||||
52 | def nested(self): | ||||
53 | """ | ||||
Guido van Rossum | 7131f84 | 2007-02-09 20:13:25 +0000 | [diff] [blame] | 54 | >>> print(3) # 6 |
Tim Peters | 17111f3 | 2001-10-03 04:08:26 +0000 | [diff] [blame] | 55 | 3 |
56 | """ | ||||
57 | |||||
58 | def getx(self): | ||||
59 | """ | ||||
60 | >>> c = C() # 7 | ||||
61 | >>> c.x = 12 # 8 | ||||
Guido van Rossum | 7131f84 | 2007-02-09 20:13:25 +0000 | [diff] [blame] | 62 | >>> print(c.x) # 9 |
Tim Peters | 17111f3 | 2001-10-03 04:08:26 +0000 | [diff] [blame] | 63 | -12 |
64 | """ | ||||
65 | return -self._x | ||||
66 | |||||
67 | def setx(self, value): | ||||
68 | """ | ||||
69 | >>> c = C() # 10 | ||||
70 | >>> c.x = 12 # 11 | ||||
Guido van Rossum | 7131f84 | 2007-02-09 20:13:25 +0000 | [diff] [blame] | 71 | >>> print(c.x) # 12 |
Tim Peters | 17111f3 | 2001-10-03 04:08:26 +0000 | [diff] [blame] | 72 | -12 |
73 | """ | ||||
74 | self._x = value | ||||
75 | |||||
76 | x = property(getx, setx, doc="""\ | ||||
77 | >>> c = C() # 13 | ||||
78 | >>> c.x = 12 # 14 | ||||
Guido van Rossum | 7131f84 | 2007-02-09 20:13:25 +0000 | [diff] [blame] | 79 | >>> print(c.x) # 15 |
Tim Peters | 17111f3 | 2001-10-03 04:08:26 +0000 | [diff] [blame] | 80 | -12 |
81 | """) | ||||
82 | |||||
Guido van Rossum | 5a8a037 | 2005-01-16 00:25:31 +0000 | [diff] [blame] | 83 | @staticmethod |
Tim Peters | 17111f3 | 2001-10-03 04:08:26 +0000 | [diff] [blame] | 84 | def statm(): |
85 | """ | ||||
86 | A static method. | ||||
87 | |||||
Guido van Rossum | 7131f84 | 2007-02-09 20:13:25 +0000 | [diff] [blame] | 88 | >>> print(C.statm()) # 16 |
Tim Peters | 17111f3 | 2001-10-03 04:08:26 +0000 | [diff] [blame] | 89 | 666 |
Guido van Rossum | 7131f84 | 2007-02-09 20:13:25 +0000 | [diff] [blame] | 90 | >>> print(C().statm()) # 17 |
Tim Peters | 17111f3 | 2001-10-03 04:08:26 +0000 | [diff] [blame] | 91 | 666 |
92 | """ | ||||
93 | return 666 | ||||
94 | |||||
Guido van Rossum | 5a8a037 | 2005-01-16 00:25:31 +0000 | [diff] [blame] | 95 | @classmethod |
Tim Peters | 17111f3 | 2001-10-03 04:08:26 +0000 | [diff] [blame] | 96 | def clsm(cls, val): |
97 | """ | ||||
98 | A class method. | ||||
99 | |||||
Guido van Rossum | 7131f84 | 2007-02-09 20:13:25 +0000 | [diff] [blame] | 100 | >>> print(C.clsm(22)) # 18 |
Tim Peters | 17111f3 | 2001-10-03 04:08:26 +0000 | [diff] [blame] | 101 | 22 |
Guido van Rossum | 7131f84 | 2007-02-09 20:13:25 +0000 | [diff] [blame] | 102 | >>> print(C().clsm(23)) # 19 |
Tim Peters | 1b0e549 | 2001-10-03 04:15:28 +0000 | [diff] [blame] | 103 | 23 |
Tim Peters | 17111f3 | 2001-10-03 04:08:26 +0000 | [diff] [blame] | 104 | """ |
Tim Peters | 1b0e549 | 2001-10-03 04:15:28 +0000 | [diff] [blame] | 105 | return val |
Tim Peters | 17111f3 | 2001-10-03 04:08:26 +0000 | [diff] [blame] | 106 | |
Tim Peters | 17111f3 | 2001-10-03 04:08:26 +0000 | [diff] [blame] | 107 | def test_main(): |
Barry Warsaw | 408b6d3 | 2002-07-30 23:27:12 +0000 | [diff] [blame] | 108 | from test import test_doctest2 |
Tim Peters | 2f93e28 | 2001-10-04 05:27:00 +0000 | [diff] [blame] | 109 | EXPECTED = 19 |
Tim Peters | 17111f3 | 2001-10-03 04:08:26 +0000 | [diff] [blame] | 110 | f, t = test_support.run_doctest(test_doctest2) |
111 | if t != EXPECTED: | ||||
112 | raise test_support.TestFailed("expected %d tests to run, not %d" % | ||||
113 | (EXPECTED, t)) | ||||
114 | |||||
115 | # Pollute the namespace with a bunch of imported functions and classes, | ||||
116 | # to make sure they don't get tested. | ||||
117 | from doctest import * | ||||
118 | |||||
119 | if __name__ == '__main__': | ||||
120 | test_main() |