(self)
| 155 | self.assertEqual(len(d), 2) |
| 156 | |
| 157 | def test_getitem(self): |
| 158 | d = {'a': 1, 'b': 2} |
| 159 | self.assertEqual(d['a'], 1) |
| 160 | self.assertEqual(d['b'], 2) |
| 161 | d['c'] = 3 |
| 162 | d['a'] = 4 |
| 163 | self.assertEqual(d['c'], 3) |
| 164 | self.assertEqual(d['a'], 4) |
| 165 | del d['b'] |
| 166 | self.assertEqual(d, {'a': 4, 'c': 3}) |
| 167 | |
| 168 | self.assertRaises(TypeError, d.__getitem__) |
| 169 | |
| 170 | class BadEq(object): |
| 171 | def __eq__(self, other): |
| 172 | raise Exc() |
| 173 | def __hash__(self): |
| 174 | return 24 |
| 175 | |
| 176 | d = {} |
| 177 | d[BadEq()] = 42 |
| 178 | self.assertRaises(KeyError, d.__getitem__, 23) |
| 179 | |
| 180 | class Exc(Exception): pass |
| 181 | |
| 182 | class BadHash(object): |
| 183 | fail = False |
| 184 | def __hash__(self): |
| 185 | if self.fail: |
| 186 | raise Exc() |
| 187 | else: |
| 188 | return 42 |
| 189 | |
| 190 | x = BadHash() |
| 191 | d[x] = 42 |
| 192 | x.fail = True |
| 193 | self.assertRaises(Exc, d.__getitem__, x) |
| 194 | |
| 195 | def test_clear(self): |
| 196 | d = {1:1, 2:2, 3:3} |
nothing calls this directly
no test coverage detected