(self)
| 38 | self.reference[key] = value |
| 39 | |
| 40 | def test_read(self): |
| 41 | # Test for read only operations on mapping |
| 42 | p = self._empty_mapping() |
| 43 | p1 = dict(p) #workaround for singleton objects |
| 44 | d = self._full_mapping(self.reference) |
| 45 | if d is p: |
| 46 | p = p1 |
| 47 | #Indexing |
| 48 | for key, value in self.reference.items(): |
| 49 | self.assertEqual(d[key], value) |
| 50 | knownkey = list(self.other.keys())[0] |
| 51 | self.assertRaises(KeyError, lambda:d[knownkey]) |
| 52 | #len |
| 53 | self.assertEqual(len(p), 0) |
| 54 | self.assertEqual(len(d), len(self.reference)) |
| 55 | #__contains__ |
| 56 | for k in self.reference: |
| 57 | self.assertIn(k, d) |
| 58 | for k in self.other: |
| 59 | self.assertNotIn(k, d) |
| 60 | #cmp |
| 61 | self.assertEqual(p, p) |
| 62 | self.assertEqual(d, d) |
| 63 | self.assertNotEqual(p, d) |
| 64 | self.assertNotEqual(d, p) |
| 65 | #bool |
| 66 | if p: self.fail("Empty mapping must compare to False") |
| 67 | if not d: self.fail("Full mapping must compare to True") |
| 68 | # keys(), items(), iterkeys() ... |
| 69 | def check_iterandlist(iter, lst, ref): |
| 70 | self.assertHasAttr(iter, '__next__') |
| 71 | self.assertHasAttr(iter, '__iter__') |
| 72 | x = list(iter) |
| 73 | self.assertTrue(set(x)==set(lst)==set(ref)) |
| 74 | check_iterandlist(iter(d.keys()), list(d.keys()), |
| 75 | self.reference.keys()) |
| 76 | check_iterandlist(iter(d), list(d.keys()), self.reference.keys()) |
| 77 | check_iterandlist(iter(d.values()), list(d.values()), |
| 78 | self.reference.values()) |
| 79 | check_iterandlist(iter(d.items()), list(d.items()), |
| 80 | self.reference.items()) |
| 81 | #get |
| 82 | key, value = next(iter(d.items())) |
| 83 | knownkey, knownvalue = next(iter(self.other.items())) |
| 84 | self.assertEqual(d.get(key, knownvalue), value) |
| 85 | self.assertEqual(d.get(knownkey, knownvalue), knownvalue) |
| 86 | self.assertNotIn(knownkey, d) |
| 87 | |
| 88 | def test_constructor(self): |
| 89 | self.assertEqual(self._empty_mapping(), self._empty_mapping()) |
nothing calls this directly
no test coverage detected