def test_get_entity(self, state, entity): mock = state._context.get_state address = Namespaces.get_address(entity.id, subnamespace=Namespaces.ENTITY) entry = TpStateEntry(address=address, data=entity.SerializeToString()) mock.return_value = [entry] returned_entity = state.get_entity(entity.id) mock.assert_called_with([address]) assert returned_entity == entity
def create_set_request(self, address_data_map): self._validate_addresses( [address for address, _ in address_data_map.items()]) entries = [ TpStateEntry(address=address, data=data) for address, data in address_data_map.items() ] return TpStateSetRequest(entries=entries)
def _make_entries(self, protobuf=True): if protobuf: return [ TpStateEntry(address=a, data=d) for a, d in zip(self.addresses, self.data) ] entries = OrderedDict() for a, d in zip(self.addresses, self.data): entries[a] = d return entries
def test_get_agent(self, state, agent): mock = state._context.get_state address = Namespaces.get_address( agent.public_key, subnamespace=Namespaces.AGENT ) ac = AgentContainer(entries=[agent]).SerializeToString() entry = TpStateEntry(address=address, data=ac) mock.return_value = [entry] returned_agent = state.get_agent(agent.public_key) mock.assert_called_with([address]) assert returned_agent == agent
def create_get_response(self, address_data_map): # Each TpStateEntry has an address, and data. # Data can be anything, but transaction processors may assum a # certain data type. For example, intkey assumes a dictionary # with "Name" in it and stores the "Value". A dictionary is # used to deal with hash collisions. # GetResponse object has a list of TpStateEntry objects self._validate_addresses( [address for address, _ in address_data_map.items()]) entries = [ TpStateEntry(address=address, data=data) for address, data in address_data_map.items() ] # Create a GetResponse object return TpStateGetResponse(entries=entries)