def test_min_producer_version(self): deserialized, _ = revived_types.deserialize( saved_object_graph_pb2.SavedUserObject( identifier="test_type", version=versions_pb2.VersionDef(producer=3, min_consumer=0, bad_consumers=[]))) self.assertEqual(3, deserialized.version)
def test_load_identifier_not_found(self): nothing_matches = revived_types.deserialize( saved_object_graph_pb2.SavedUserObject( identifier="_unregistered_type", version=versions_pb2.VersionDef(producer=1, min_consumer=1, bad_consumers=[]))) self.assertIs(nothing_matches, None)
def test_min_consumer_version(self): nothing_matches = revived_types.deserialize( saved_object_graph_pb2.SavedUserObject( identifier="test_type", version=versions_pb2.VersionDef(producer=5, min_consumer=5, bad_consumers=[]))) self.assertIs(nothing_matches, None)
def test_min_producer_version(self): deserialized, _ = revived_types.deserialize( saved_object_graph_pb2.SavedUserObject( identifier="test_type", version=versions_pb2.VersionDef( producer=3, min_consumer=0, bad_consumers=[]))) self.assertEqual(3, deserialized.version)
def test_min_consumer_version(self): nothing_matches = revived_types.deserialize( saved_object_graph_pb2.SavedUserObject( identifier="test_type", version=versions_pb2.VersionDef( producer=5, min_consumer=5, bad_consumers=[]))) self.assertIs(nothing_matches, None)
def test_load_identifier_not_found(self): nothing_matches = revived_types.deserialize( saved_object_graph_pb2.SavedUserObject( identifier="_unregistered_type", version=versions_pb2.VersionDef( producer=1, min_consumer=1, bad_consumers=[]))) self.assertIs(nothing_matches, None)
def _recreate_user_object(self, proto): """Instantiates a SavedUserObject.""" looked_up = revived_types.deserialize(proto) if looked_up is None: # Note: each user object has its own class. This allows to make each one # individually callable by adding a `__call__` method to the classes of # the objects instances that have a `__call__` property. class _UserObject(tracking.AutoCheckpointable): pass return _UserObject(), setattr return looked_up
def _recreate_user_object(self, proto): """Instantiates a SavedUserObject.""" looked_up = revived_types.deserialize(proto) if looked_up is None: # Note: each user object has its own class. This allows to make each one # individually callable by adding a `__call__` method to the classes of # the objects instances that have a `__call__` property. class _UserObject(tracking.AutoTrackable): pass return _UserObject(), setattr return looked_up
def _recreate_user_object(self, proto): """Instantiates a SavedUserObject.""" looked_up = revived_types.deserialize(proto) if looked_up is None: return self._recreate_base_user_object(proto) return looked_up
def test_most_recent_version_saved(self): serialized = revived_types.serialize(CustomTestClass(None)) self.assertEqual([3], serialized.version.bad_consumers) deserialized, _ = revived_types.deserialize(serialized) self.assertIsInstance(deserialized, CustomTestClass) self.assertEqual(4, deserialized.version)