|
|
@ -209,6 +209,32 @@ class DictSetTest(unittest.TestCase): |
|
|
self.assertRaises(TypeError, copy.copy, d.values()) |
|
|
self.assertRaises(TypeError, copy.copy, d.values()) |
|
|
self.assertRaises(TypeError, copy.copy, d.items()) |
|
|
self.assertRaises(TypeError, copy.copy, d.items()) |
|
|
|
|
|
|
|
|
|
|
|
def test_compare_error(self): |
|
|
|
|
|
class Exc(Exception): |
|
|
|
|
|
pass |
|
|
|
|
|
|
|
|
|
|
|
class BadEq: |
|
|
|
|
|
def __hash__(self): |
|
|
|
|
|
return 7 |
|
|
|
|
|
def __eq__(self, other): |
|
|
|
|
|
raise Exc |
|
|
|
|
|
|
|
|
|
|
|
k1, k2 = BadEq(), BadEq() |
|
|
|
|
|
v1, v2 = BadEq(), BadEq() |
|
|
|
|
|
d = {k1: v1} |
|
|
|
|
|
|
|
|
|
|
|
self.assertIn(k1, d) |
|
|
|
|
|
self.assertIn(k1, d.keys()) |
|
|
|
|
|
self.assertIn(v1, d.values()) |
|
|
|
|
|
self.assertIn((k1, v1), d.items()) |
|
|
|
|
|
|
|
|
|
|
|
self.assertRaises(Exc, d.__contains__, k2) |
|
|
|
|
|
self.assertRaises(Exc, d.keys().__contains__, k2) |
|
|
|
|
|
self.assertRaises(Exc, d.items().__contains__, (k2, v1)) |
|
|
|
|
|
self.assertRaises(Exc, d.items().__contains__, (k1, v2)) |
|
|
|
|
|
with self.assertRaises(Exc): |
|
|
|
|
|
v2 in d.values() |
|
|
|
|
|
|
|
|
def test_pickle(self): |
|
|
def test_pickle(self): |
|
|
d = {1: 10, "a": "ABC"} |
|
|
d = {1: 10, "a": "ABC"} |
|
|
for proto in range(pickle.HIGHEST_PROTOCOL + 1): |
|
|
for proto in range(pickle.HIGHEST_PROTOCOL + 1): |
|
|
|