コード例 #1
0
 def testNoOverwrite(self):
     mapping = data_structures.Mapping()
     original = data_structures.List()
     mapping["a"] = original
     with self.assertRaises(ValueError):
         mapping["a"] = data_structures.List()
     self.assertIs(original, mapping["a"])
     with self.assertRaises(AttributeError):
         del mapping["a"]  # pylint: disable=unsupported-delete-operation
     mapping.update(b=data_structures.Mapping())
     with self.assertRaises(ValueError):
         mapping.update({"b": data_structures.Mapping()})
コード例 #2
0
 def testHashing(self):
     has_mappings = set(
         [data_structures.Mapping(),
          data_structures.Mapping()])
     self.assertEqual(2, len(has_mappings))
     self.assertNotIn(data_structures.Mapping(), has_mappings)
     # In contrast to Mapping, dict wrappers are not hashable
     a = tracking.AutoTrackable()
     a.d = {}
     self.assertEqual({}, a.d)
     self.assertFalse({} != a.d)  # pylint: disable=g-explicit-bool-comparison
     self.assertNotEqual({1: 2}, a.d)
     with self.assertRaisesRegex(TypeError, "unhashable"):
         set([a.d])
コード例 #3
0
  def __init__(self, fn=None, share_variables=False):
    self._fn = fn

    self._share_variables = share_variables
    self._variables_by_name = data_structures.Mapping()
コード例 #4
0
 def testNonStringKeys(self):
     mapping = data_structures.Mapping()
     with self.assertRaises(TypeError):
         mapping[1] = data_structures.List()