def test_get(self): """MappedDict get should automatically map key.""" key_mask = str d = MappedDict({}, "123", key_mask) self.assertEqual(d, {}) d["1"] = 5 self.assertEqual(d, {"1": 5}) self.assertEqual(d.get(1, "x"), 5) self.assertEqual(d.get(5, "x"), "x")
def test_getitem(self): """MappedDict getitem should automatically map key.""" key_mask = str d = MappedDict({}, "123", key_mask) self.assertEqual(d, {}) d["1"] = 5 self.assertEqual(d, {"1": 5}) self.assertEqual(d[1], 5)
def test_has_key(self): """MappedDict has_key should automatically map key.""" key_mask = str d = MappedDict({}, "123", key_mask) self.assertEqual(d, {}) d["1"] = 5 assert "1" in d assert 1 in d assert "5" not in d
def test_setitem_masks(self): """MappedDict setitem should work only if key in constraint""" key_mask = str def val_mask(x): return int(x) + 3 d = MappedDict({1: 4, 2: 6}, "123", key_mask, val_mask) d[1] = "456" self.assertEqual(d, {"1": 459, "2": 9}) d["1"] = 234 self.assertEqual(d, {"1": 237, "2": 9}) self.assertRaises(ConstraintError, d.__setitem__, 4, "3") e = d.copy() assert e.mask is d.mask assert "1" in d assert 1 in d assert 1 not in list(d.keys()) assert "x" not in list(d.keys())