Пример #1
0
 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")
Пример #2
0
 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)
Пример #3
0
 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
Пример #4
0
    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())