annotate Lib/test/test_bool.py @ 87690:66c1c9f32567 default tip

Add use_weakref option to functools.lru_cache The use_weakref option makes lru_cache create weak references to the function arguments when creating the cache key, which prevents them from staying in the memory forever even after all other references to them are gone. This is a proof of concept for http://bugs.python.org/issue19859
author Radomir Dopieralski <devel@sheep.art.pl>
date Tue, 03 Dec 2013 16:02:48 +0100
parents 622cf101eccf
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
22787
028ebc8fb390 Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff changeset
1 # Test properties of bool promised by PEP 285
028ebc8fb390 Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff changeset
2
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
3 import unittest
47201
9c930a32cebb #2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents: 42594
diff changeset
4 from test import support
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
5
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
6 import os
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
7
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
8 class BoolTest(unittest.TestCase):
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
9
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
10 def test_subclass(self):
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
11 try:
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
12 class C(bool):
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
13 pass
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
14 except TypeError:
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
15 pass
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
16 else:
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
17 self.fail("bool should not be subclassable")
22787
028ebc8fb390 Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff changeset
18
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
19 self.assertRaises(TypeError, int.__new__, bool, 0)
22787
028ebc8fb390 Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff changeset
20
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
21 def test_print(self):
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
22 try:
47201
9c930a32cebb #2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents: 42594
diff changeset
23 fo = open(support.TESTFN, "w")
40775
4cdf21a0dbbc Fix most trivially-findable print statements.
Guido van Rossum <guido@python.org>
parents: 40587
diff changeset
24 print(False, True, file=fo)
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
25 fo.close()
47201
9c930a32cebb #2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents: 42594
diff changeset
26 fo = open(support.TESTFN, "r")
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
27 self.assertEqual(fo.read(), 'False True\n')
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
28 finally:
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
29 fo.close()
47201
9c930a32cebb #2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents: 42594
diff changeset
30 os.remove(support.TESTFN)
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
31
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
32 def test_repr(self):
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
33 self.assertEqual(repr(False), 'False')
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
34 self.assertEqual(repr(True), 'True')
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
35 self.assertEqual(eval(repr(False)), False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
36 self.assertEqual(eval(repr(True)), True)
23027
03c39640d81a Patch #542569: tp_print tp_repr tp_str in test_bool.py.
Martin v. Löwis <martin@v.loewis.de>
parents: 22853
diff changeset
37
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
38 def test_str(self):
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
39 self.assertEqual(str(False), 'False')
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
40 self.assertEqual(str(True), 'True')
23027
03c39640d81a Patch #542569: tp_print tp_repr tp_str in test_bool.py.
Martin v. Löwis <martin@v.loewis.de>
parents: 22853
diff changeset
41
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
42 def test_int(self):
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
43 self.assertEqual(int(False), 0)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
44 self.assertIsNot(int(False), False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
45 self.assertEqual(int(True), 1)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
46 self.assertIsNot(int(True), True)
22787
028ebc8fb390 Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff changeset
47
60083
5e0ff65284fa Merged revisions 79502 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 58966
diff changeset
48 def test_float(self):
5e0ff65284fa Merged revisions 79502 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 58966
diff changeset
49 self.assertEqual(float(False), 0.0)
5e0ff65284fa Merged revisions 79502 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 58966
diff changeset
50 self.assertIsNot(float(False), False)
5e0ff65284fa Merged revisions 79502 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 58966
diff changeset
51 self.assertEqual(float(True), 1.0)
5e0ff65284fa Merged revisions 79502 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 58966
diff changeset
52 self.assertIsNot(float(True), True)
5e0ff65284fa Merged revisions 79502 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 58966
diff changeset
53
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
54 def test_math(self):
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
55 self.assertEqual(+False, 0)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
56 self.assertIsNot(+False, False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
57 self.assertEqual(-False, 0)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
58 self.assertIsNot(-False, False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
59 self.assertEqual(abs(False), 0)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
60 self.assertIsNot(abs(False), False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
61 self.assertEqual(+True, 1)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
62 self.assertIsNot(+True, True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
63 self.assertEqual(-True, -1)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
64 self.assertEqual(abs(True), 1)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
65 self.assertIsNot(abs(True), True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
66 self.assertEqual(~False, -1)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
67 self.assertEqual(~True, -2)
22787
028ebc8fb390 Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff changeset
68
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
69 self.assertEqual(False+2, 2)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
70 self.assertEqual(True+2, 3)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
71 self.assertEqual(2+False, 2)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
72 self.assertEqual(2+True, 3)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
73
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
74 self.assertEqual(False+False, 0)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
75 self.assertIsNot(False+False, False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
76 self.assertEqual(False+True, 1)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
77 self.assertIsNot(False+True, True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
78 self.assertEqual(True+False, 1)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
79 self.assertIsNot(True+False, True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
80 self.assertEqual(True+True, 2)
22787
028ebc8fb390 Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff changeset
81
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
82 self.assertEqual(True-True, 0)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
83 self.assertIsNot(True-True, False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
84 self.assertEqual(False-False, 0)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
85 self.assertIsNot(False-False, False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
86 self.assertEqual(True-False, 1)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
87 self.assertIsNot(True-False, True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
88 self.assertEqual(False-True, -1)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
89
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
90 self.assertEqual(True*1, 1)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
91 self.assertEqual(False*1, 0)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
92 self.assertIsNot(False*1, False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
93
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
94 self.assertEqual(True/1, 1)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
95 self.assertIsNot(True/1, True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
96 self.assertEqual(False/1, 0)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
97 self.assertIsNot(False/1, False)
22787
028ebc8fb390 Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff changeset
98
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
99 for b in False, True:
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
100 for i in 0, 1, 2:
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
101 self.assertEqual(b**i, int(b)**i)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
102 self.assertIsNot(b**i, bool(int(b)**i))
22787
028ebc8fb390 Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff changeset
103
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
104 for a in False, True:
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
105 for b in False, True:
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
106 self.assertIs(a&b, bool(int(a)&int(b)))
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
107 self.assertIs(a|b, bool(int(a)|int(b)))
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
108 self.assertIs(a^b, bool(int(a)^int(b)))
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
109 self.assertEqual(a&int(b), int(a)&int(b))
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
110 self.assertIsNot(a&int(b), bool(int(a)&int(b)))
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
111 self.assertEqual(a|int(b), int(a)|int(b))
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
112 self.assertIsNot(a|int(b), bool(int(a)|int(b)))
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
113 self.assertEqual(a^int(b), int(a)^int(b))
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
114 self.assertIsNot(a^int(b), bool(int(a)^int(b)))
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
115 self.assertEqual(int(a)&b, int(a)&int(b))
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
116 self.assertIsNot(int(a)&b, bool(int(a)&int(b)))
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
117 self.assertEqual(int(a)|b, int(a)|int(b))
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
118 self.assertIsNot(int(a)|b, bool(int(a)|int(b)))
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
119 self.assertEqual(int(a)^b, int(a)^int(b))
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
120 self.assertIsNot(int(a)^b, bool(int(a)^int(b)))
22787
028ebc8fb390 Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff changeset
121
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
122 self.assertIs(1==1, True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
123 self.assertIs(1==0, False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
124 self.assertIs(0<1, True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
125 self.assertIs(1<0, False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
126 self.assertIs(0<=0, True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
127 self.assertIs(1<=0, False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
128 self.assertIs(1>0, True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
129 self.assertIs(1>1, False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
130 self.assertIs(1>=1, True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
131 self.assertIs(0>=1, False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
132 self.assertIs(0!=1, True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
133 self.assertIs(0!=0, False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
134
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
135 x = [1]
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
136 self.assertIs(x is x, True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
137 self.assertIs(x is not x, False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
138
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
139 self.assertIs(1 in x, True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
140 self.assertIs(0 in x, False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
141 self.assertIs(1 not in x, False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
142 self.assertIs(0 not in x, True)
22787
028ebc8fb390 Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff changeset
143
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
144 x = {1: 2}
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
145 self.assertIs(x is x, True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
146 self.assertIs(x is not x, False)
22787
028ebc8fb390 Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff changeset
147
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
148 self.assertIs(1 in x, True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
149 self.assertIs(0 in x, False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
150 self.assertIs(1 not in x, False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
151 self.assertIs(0 not in x, True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
152
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
153 self.assertIs(not True, False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
154 self.assertIs(not False, True)
22787
028ebc8fb390 Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff changeset
155
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
156 def test_convert(self):
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
157 self.assertRaises(TypeError, bool, 42, 42)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
158 self.assertIs(bool(10), True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
159 self.assertIs(bool(1), True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
160 self.assertIs(bool(-1), True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
161 self.assertIs(bool(0), False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
162 self.assertIs(bool("hello"), True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
163 self.assertIs(bool(""), False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
164 self.assertIs(bool(), False)
22787
028ebc8fb390 Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff changeset
165
42594
ac5ce7c43ee7 Format bools properly in %d.
Martin v. Löwis <martin@v.loewis.de>
parents: 42322
diff changeset
166 def test_format(self):
ac5ce7c43ee7 Format bools properly in %d.
Martin v. Löwis <martin@v.loewis.de>
parents: 42322
diff changeset
167 self.assertEqual("%d" % False, "0")
ac5ce7c43ee7 Format bools properly in %d.
Martin v. Löwis <martin@v.loewis.de>
parents: 42322
diff changeset
168 self.assertEqual("%d" % True, "1")
ac5ce7c43ee7 Format bools properly in %d.
Martin v. Löwis <martin@v.loewis.de>
parents: 42322
diff changeset
169 self.assertEqual("%x" % False, "0")
ac5ce7c43ee7 Format bools properly in %d.
Martin v. Löwis <martin@v.loewis.de>
parents: 42322
diff changeset
170 self.assertEqual("%x" % True, "1")
ac5ce7c43ee7 Format bools properly in %d.
Martin v. Löwis <martin@v.loewis.de>
parents: 42322
diff changeset
171
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
172 def test_hasattr(self):
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
173 self.assertIs(hasattr([], "append"), True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
174 self.assertIs(hasattr([], "wobble"), False)
22787
028ebc8fb390 Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff changeset
175
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
176 def test_callable(self):
66521
1b77f2eb1606 Issue #10518: Bring back the callable() builtin.
Antoine Pitrou <solipsis@pitrou.net>
parents: 60083
diff changeset
177 self.assertIs(callable(len), True)
1b77f2eb1606 Issue #10518: Bring back the callable() builtin.
Antoine Pitrou <solipsis@pitrou.net>
parents: 60083
diff changeset
178 self.assertIs(callable(1), False)
22787
028ebc8fb390 Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff changeset
179
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
180 def test_isinstance(self):
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
181 self.assertIs(isinstance(True, bool), True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
182 self.assertIs(isinstance(False, bool), True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
183 self.assertIs(isinstance(True, int), True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
184 self.assertIs(isinstance(False, int), True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
185 self.assertIs(isinstance(1, bool), False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
186 self.assertIs(isinstance(0, bool), False)
22787
028ebc8fb390 Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff changeset
187
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
188 def test_issubclass(self):
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
189 self.assertIs(issubclass(bool, int), True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
190 self.assertIs(issubclass(int, bool), False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
191
39575
63237fcefd99 Get rid of dict.has_key(). Boy this has a lot of repercussions!
Guido van Rossum <guido@python.org>
parents: 39543
diff changeset
192 def test_contains(self):
63237fcefd99 Get rid of dict.has_key(). Boy this has a lot of repercussions!
Guido van Rossum <guido@python.org>
parents: 39543
diff changeset
193 self.assertIs(1 in {}, False)
63237fcefd99 Get rid of dict.has_key(). Boy this has a lot of repercussions!
Guido van Rossum <guido@python.org>
parents: 39543
diff changeset
194 self.assertIs(1 in {1:1}, True)
22787
028ebc8fb390 Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff changeset
195
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
196 def test_string(self):
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
197 self.assertIs("xyz".endswith("z"), True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
198 self.assertIs("xyz".endswith("x"), False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
199 self.assertIs("xyz0123".isalnum(), True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
200 self.assertIs("@#$%".isalnum(), False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
201 self.assertIs("xyz".isalpha(), True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
202 self.assertIs("@#$%".isalpha(), False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
203 self.assertIs("0123".isdigit(), True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
204 self.assertIs("xyz".isdigit(), False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
205 self.assertIs("xyz".islower(), True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
206 self.assertIs("XYZ".islower(), False)
41625
46b00c73e32f Remove duplicate tests.
Walter Dörwald <walter@livinglogic.de>
parents: 41575
diff changeset
207 self.assertIs("0123".isdecimal(), True)
46b00c73e32f Remove duplicate tests.
Walter Dörwald <walter@livinglogic.de>
parents: 41575
diff changeset
208 self.assertIs("xyz".isdecimal(), False)
46b00c73e32f Remove duplicate tests.
Walter Dörwald <walter@livinglogic.de>
parents: 41575
diff changeset
209 self.assertIs("0123".isnumeric(), True)
46b00c73e32f Remove duplicate tests.
Walter Dörwald <walter@livinglogic.de>
parents: 41575
diff changeset
210 self.assertIs("xyz".isnumeric(), False)
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
211 self.assertIs(" ".isspace(), True)
41626
1440bbb67150 Add two more space tests.
Walter Dörwald <walter@livinglogic.de>
parents: 41625
diff changeset
212 self.assertIs("\xa0".isspace(), True)
1440bbb67150 Add two more space tests.
Walter Dörwald <walter@livinglogic.de>
parents: 41625
diff changeset
213 self.assertIs("\u3000".isspace(), True)
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
214 self.assertIs("XYZ".isspace(), False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
215 self.assertIs("X".istitle(), True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
216 self.assertIs("x".istitle(), False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
217 self.assertIs("XYZ".isupper(), True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
218 self.assertIs("xyz".isupper(), False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
219 self.assertIs("xyz".startswith("x"), True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
220 self.assertIs("xyz".startswith("z"), False)
22787
028ebc8fb390 Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff changeset
221
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
222 def test_boolean(self):
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
223 self.assertEqual(True & 1, 1)
58473
71acd4482e65 Merged revisions 77727 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 55593
diff changeset
224 self.assertNotIsInstance(True & 1, bool)
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
225 self.assertIs(True & True, True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
226
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
227 self.assertEqual(True | 1, 1)
58473
71acd4482e65 Merged revisions 77727 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 55593
diff changeset
228 self.assertNotIsInstance(True | 1, bool)
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
229 self.assertIs(True | True, True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
230
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
231 self.assertEqual(True ^ 1, 0)
58473
71acd4482e65 Merged revisions 77727 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents: 55593
diff changeset
232 self.assertNotIsInstance(True ^ 1, bool)
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
233 self.assertIs(True ^ True, False)
22787
028ebc8fb390 Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff changeset
234
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
235 def test_fileclosed(self):
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
236 try:
47201
9c930a32cebb #2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents: 42594
diff changeset
237 f = open(support.TESTFN, "w")
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
238 self.assertIs(f.closed, False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
239 f.close()
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
240 self.assertIs(f.closed, True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
241 finally:
47201
9c930a32cebb #2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents: 42594
diff changeset
242 os.remove(support.TESTFN)
22787
028ebc8fb390 Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff changeset
243
60083
5e0ff65284fa Merged revisions 79502 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 58966
diff changeset
244 def test_types(self):
5e0ff65284fa Merged revisions 79502 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 58966
diff changeset
245 # types are always true.
5e0ff65284fa Merged revisions 79502 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 58966
diff changeset
246 for t in [bool, complex, dict, float, int, list, object,
5e0ff65284fa Merged revisions 79502 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 58966
diff changeset
247 set, str, tuple, type]:
5e0ff65284fa Merged revisions 79502 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 58966
diff changeset
248 self.assertIs(bool(t), True)
5e0ff65284fa Merged revisions 79502 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 58966
diff changeset
249
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
250 def test_operator(self):
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
251 import operator
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
252 self.assertIs(operator.truth(0), False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
253 self.assertIs(operator.truth(1), True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
254 self.assertIs(operator.not_(1), False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
255 self.assertIs(operator.not_(0), True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
256 self.assertIs(operator.contains([], 1), False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
257 self.assertIs(operator.contains([1], 1), True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
258 self.assertIs(operator.lt(0, 0), False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
259 self.assertIs(operator.lt(0, 1), True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
260 self.assertIs(operator.is_(True, True), True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
261 self.assertIs(operator.is_(True, False), False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
262 self.assertIs(operator.is_not(True, True), False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
263 self.assertIs(operator.is_not(True, False), True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
264
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
265 def test_marshal(self):
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
266 import marshal
28916
39ad76143288 Consistently use test_support.foo everywhere.
Walter Dörwald <walter@livinglogic.de>
parents: 28863
diff changeset
267 self.assertIs(marshal.loads(marshal.dumps(True)), True)
39ad76143288 Consistently use test_support.foo everywhere.
Walter Dörwald <walter@livinglogic.de>
parents: 28863
diff changeset
268 self.assertIs(marshal.loads(marshal.dumps(False)), False)
22787
028ebc8fb390 Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff changeset
269
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
270 def test_pickle(self):
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
271 import pickle
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
272 self.assertIs(pickle.loads(pickle.dumps(True)), True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
273 self.assertIs(pickle.loads(pickle.dumps(False)), False)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
274 self.assertIs(pickle.loads(pickle.dumps(True, True)), True)
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
275 self.assertIs(pickle.loads(pickle.dumps(False, True)), False)
22787
028ebc8fb390 Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff changeset
276
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
277 def test_picklevalues(self):
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
278 # Test for specific backwards-compatible pickle values
39543
9bc0bc0ad1bf Quite a few fixes to make the library and test suite more robust when
Guido van Rossum <guido@python.org>
parents: 29668
diff changeset
279 import pickle
41718
6ca3d5f3d1be Fix the picklevalue test; it broke due to the change in default protocol.
Guido van Rossum <guido@python.org>
parents: 41626
diff changeset
280 self.assertEqual(pickle.dumps(True, protocol=0), b"I01\n.")
6ca3d5f3d1be Fix the picklevalue test; it broke due to the change in default protocol.
Guido van Rossum <guido@python.org>
parents: 41626
diff changeset
281 self.assertEqual(pickle.dumps(False, protocol=0), b"I00\n.")
6ca3d5f3d1be Fix the picklevalue test; it broke due to the change in default protocol.
Guido van Rossum <guido@python.org>
parents: 41626
diff changeset
282 self.assertEqual(pickle.dumps(True, protocol=1), b"I01\n.")
6ca3d5f3d1be Fix the picklevalue test; it broke due to the change in default protocol.
Guido van Rossum <guido@python.org>
parents: 41626
diff changeset
283 self.assertEqual(pickle.dumps(False, protocol=1), b"I00\n.")
6ca3d5f3d1be Fix the picklevalue test; it broke due to the change in default protocol.
Guido van Rossum <guido@python.org>
parents: 41626
diff changeset
284 self.assertEqual(pickle.dumps(True, protocol=2), b'\x80\x02\x88.')
6ca3d5f3d1be Fix the picklevalue test; it broke due to the change in default protocol.
Guido van Rossum <guido@python.org>
parents: 41626
diff changeset
285 self.assertEqual(pickle.dumps(False, protocol=2), b'\x80\x02\x89.')
41554
06145fbc7ab9 Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents: 41269
diff changeset
286
29612
86342fa8920d Add tests for __nonzero__() problems.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 29087
diff changeset
287 def test_convert_to_bool(self):
86342fa8920d Add tests for __nonzero__() problems.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 29087
diff changeset
288 # Verify that TypeError occurs when bad things are returned
40401
88133417dfd0 - patch #1600346 submitted by Tomer Filiba
Jack Diederich <jackdied@gmail.com>
parents: 39647
diff changeset
289 # from __bool__(). This isn't really a bool test, but
29612
86342fa8920d Add tests for __nonzero__() problems.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 29087
diff changeset
290 # it's related.
86342fa8920d Add tests for __nonzero__() problems.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 29087
diff changeset
291 check = lambda o: self.assertRaises(TypeError, bool, o)
86342fa8920d Add tests for __nonzero__() problems.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 29087
diff changeset
292 class Foo(object):
40401
88133417dfd0 - patch #1600346 submitted by Tomer Filiba
Jack Diederich <jackdied@gmail.com>
parents: 39647
diff changeset
293 def __bool__(self):
29612
86342fa8920d Add tests for __nonzero__() problems.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 29087
diff changeset
294 return self
86342fa8920d Add tests for __nonzero__() problems.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 29087
diff changeset
295 check(Foo())
29668
36a17904a3ed Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 29612
diff changeset
296
29612
86342fa8920d Add tests for __nonzero__() problems.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 29087
diff changeset
297 class Bar(object):
40401
88133417dfd0 - patch #1600346 submitted by Tomer Filiba
Jack Diederich <jackdied@gmail.com>
parents: 39647
diff changeset
298 def __bool__(self):
29612
86342fa8920d Add tests for __nonzero__() problems.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 29087
diff changeset
299 return "Yes"
86342fa8920d Add tests for __nonzero__() problems.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 29087
diff changeset
300 check(Bar())
29668
36a17904a3ed Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 29612
diff changeset
301
29612
86342fa8920d Add tests for __nonzero__() problems.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 29087
diff changeset
302 class Baz(int):
40401
88133417dfd0 - patch #1600346 submitted by Tomer Filiba
Jack Diederich <jackdied@gmail.com>
parents: 39647
diff changeset
303 def __bool__(self):
29612
86342fa8920d Add tests for __nonzero__() problems.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 29087
diff changeset
304 return self
86342fa8920d Add tests for __nonzero__() problems.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 29087
diff changeset
305 check(Baz())
29668
36a17904a3ed Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 29612
diff changeset
306
40401
88133417dfd0 - patch #1600346 submitted by Tomer Filiba
Jack Diederich <jackdied@gmail.com>
parents: 39647
diff changeset
307 # __bool__() must return a bool not an int
88133417dfd0 - patch #1600346 submitted by Tomer Filiba
Jack Diederich <jackdied@gmail.com>
parents: 39647
diff changeset
308 class Spam(int):
88133417dfd0 - patch #1600346 submitted by Tomer Filiba
Jack Diederich <jackdied@gmail.com>
parents: 39647
diff changeset
309 def __bool__(self):
88133417dfd0 - patch #1600346 submitted by Tomer Filiba
Jack Diederich <jackdied@gmail.com>
parents: 39647
diff changeset
310 return 1
88133417dfd0 - patch #1600346 submitted by Tomer Filiba
Jack Diederich <jackdied@gmail.com>
parents: 39647
diff changeset
311 check(Spam())
88133417dfd0 - patch #1600346 submitted by Tomer Filiba
Jack Diederich <jackdied@gmail.com>
parents: 39647
diff changeset
312
88133417dfd0 - patch #1600346 submitted by Tomer Filiba
Jack Diederich <jackdied@gmail.com>
parents: 39647
diff changeset
313 class Eggs:
88133417dfd0 - patch #1600346 submitted by Tomer Filiba
Jack Diederich <jackdied@gmail.com>
parents: 39647
diff changeset
314 def __len__(self):
88133417dfd0 - patch #1600346 submitted by Tomer Filiba
Jack Diederich <jackdied@gmail.com>
parents: 39647
diff changeset
315 return -1
88133417dfd0 - patch #1600346 submitted by Tomer Filiba
Jack Diederich <jackdied@gmail.com>
parents: 39647
diff changeset
316 self.assertRaises(ValueError, bool, Eggs())
88133417dfd0 - patch #1600346 submitted by Tomer Filiba
Jack Diederich <jackdied@gmail.com>
parents: 39647
diff changeset
317
88133417dfd0 - patch #1600346 submitted by Tomer Filiba
Jack Diederich <jackdied@gmail.com>
parents: 39647
diff changeset
318 def test_sane_len(self):
88133417dfd0 - patch #1600346 submitted by Tomer Filiba
Jack Diederich <jackdied@gmail.com>
parents: 39647
diff changeset
319 # this test just tests our assumptions about __len__
88133417dfd0 - patch #1600346 submitted by Tomer Filiba
Jack Diederich <jackdied@gmail.com>
parents: 39647
diff changeset
320 # this will start failing if __len__ changes assertions
88133417dfd0 - patch #1600346 submitted by Tomer Filiba
Jack Diederich <jackdied@gmail.com>
parents: 39647
diff changeset
321 for badval in ['illegal', -1, 1 << 32]:
88133417dfd0 - patch #1600346 submitted by Tomer Filiba
Jack Diederich <jackdied@gmail.com>
parents: 39647
diff changeset
322 class A:
88133417dfd0 - patch #1600346 submitted by Tomer Filiba
Jack Diederich <jackdied@gmail.com>
parents: 39647
diff changeset
323 def __len__(self):
88133417dfd0 - patch #1600346 submitted by Tomer Filiba
Jack Diederich <jackdied@gmail.com>
parents: 39647
diff changeset
324 return badval
88133417dfd0 - patch #1600346 submitted by Tomer Filiba
Jack Diederich <jackdied@gmail.com>
parents: 39647
diff changeset
325 try:
88133417dfd0 - patch #1600346 submitted by Tomer Filiba
Jack Diederich <jackdied@gmail.com>
parents: 39647
diff changeset
326 bool(A())
40587
6b18a095c2e7 SF patch 1631942 by Collin Winter:
Guido van Rossum <guido@python.org>
parents: 40401
diff changeset
327 except (Exception) as e_bool:
6b18a095c2e7 SF patch 1631942 by Collin Winter:
Guido van Rossum <guido@python.org>
parents: 40401
diff changeset
328 try:
6b18a095c2e7 SF patch 1631942 by Collin Winter:
Guido van Rossum <guido@python.org>
parents: 40401
diff changeset
329 len(A())
6b18a095c2e7 SF patch 1631942 by Collin Winter:
Guido van Rossum <guido@python.org>
parents: 40401
diff changeset
330 except (Exception) as e_len:
6b18a095c2e7 SF patch 1631942 by Collin Winter:
Guido van Rossum <guido@python.org>
parents: 40401
diff changeset
331 self.assertEqual(str(e_bool), str(e_len))
29612
86342fa8920d Add tests for __nonzero__() problems.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 29087
diff changeset
332
70372
622cf101eccf test values and types of (True/False).(imag/real)
Benjamin Peterson <benjamin@python.org>
parents: 66521
diff changeset
333 def test_real_and_imag(self):
622cf101eccf test values and types of (True/False).(imag/real)
Benjamin Peterson <benjamin@python.org>
parents: 66521
diff changeset
334 self.assertEqual(True.real, 1)
622cf101eccf test values and types of (True/False).(imag/real)
Benjamin Peterson <benjamin@python.org>
parents: 66521
diff changeset
335 self.assertEqual(True.imag, 0)
622cf101eccf test values and types of (True/False).(imag/real)
Benjamin Peterson <benjamin@python.org>
parents: 66521
diff changeset
336 self.assertIs(type(True.real), int)
622cf101eccf test values and types of (True/False).(imag/real)
Benjamin Peterson <benjamin@python.org>
parents: 66521
diff changeset
337 self.assertIs(type(True.imag), int)
622cf101eccf test values and types of (True/False).(imag/real)
Benjamin Peterson <benjamin@python.org>
parents: 66521
diff changeset
338 self.assertEqual(False.real, 0)
622cf101eccf test values and types of (True/False).(imag/real)
Benjamin Peterson <benjamin@python.org>
parents: 66521
diff changeset
339 self.assertEqual(False.imag, 0)
622cf101eccf test values and types of (True/False).(imag/real)
Benjamin Peterson <benjamin@python.org>
parents: 66521
diff changeset
340 self.assertIs(type(False.real), int)
622cf101eccf test values and types of (True/False).(imag/real)
Benjamin Peterson <benjamin@python.org>
parents: 66521
diff changeset
341 self.assertIs(type(False.imag), int)
622cf101eccf test values and types of (True/False).(imag/real)
Benjamin Peterson <benjamin@python.org>
parents: 66521
diff changeset
342
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
343 def test_main():
47201
9c930a32cebb #2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents: 42594
diff changeset
344 support.run_unittest(BoolTest)
22851
ed03806d88cd Implement an idea by Paul Rubin:
Guido van Rossum <guido@python.org>
parents: 22787
diff changeset
345
28822
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
346 if __name__ == "__main__":
def09ec0bc31 Port test_bool.py to PyUnit. From SF patch #662807.
Walter Dörwald <walter@livinglogic.de>
parents: 28696
diff changeset
347 test_main()