def test_make(self): """Test the make batch function""" payload, signer = self.get_test_payload() transaction, batch, batch_list, batch_request = batcher.make( payload=payload, signer_keypair=signer ) self.assertValidTransaction( transaction=transaction, payload=payload, signer_public_key=signer.public_key, ) self.assertValidBatch( batch=batch, payload=payload, signer_public_key=signer.public_key, batcher_public_key=BATCHER_KEY_PAIR.public_key, ) self.assertValidBatchList( batch_list=batch_list, payload=payload, signer_public_key=signer.public_key, batcher_public_key=BATCHER_KEY_PAIR.public_key, ) self.assertValidBatchRequest( batch_request=batch_request, payload=payload, signer_public_key=signer.public_key, batcher_public_key=BATCHER_KEY_PAIR.public_key, )
def send(self, signer_keypair, payload): """Sends a payload to the validator API""" if not isinstance(signer_keypair, Key): raise TypeError("Expected signer_keypair to be a Key") if not isinstance(payload, protobuf.rbac_payload_pb2.RBACPayload): raise TypeError("Expected payload to be an RBACPayload") _, _, batch_list, _ = make(payload=payload, signer_keypair=signer_keypair) status = ClientSync().send_batches_get_status(batch_list=batch_list) return status
def batch_list(self, signer_keypair, batch_list=None, **kwargs): """Adds a new message to an existing or new batch list""" message = kwargs.get("message") if not message: message = self.make(**kwargs) else: self.validate(message=message, signer=signer_keypair) payload = self.make_payload(message=message, signer_keypair=signer_keypair) _, new_batch, new_batch_list, _ = batcher.make( payload=payload, signer_keypair=signer_keypair ) if batch_list: batch_list.batches.extend([new_batch]) return batch_list return new_batch_list
def batch(self, signer_keypair, batch=None, **kwargs): """Adds a new message to an existing or new batch""" message = kwargs.get("message") if not message: message = self.make(**kwargs) else: self.validate(message=message, signer=signer_keypair) payload = self.make_payload(message=message, signer_keypair=signer_keypair) transaction, new_batch, _, _ = batcher.make( payload=payload, signer_keypair=signer_keypair ) if batch: batch.transactions.extend([transaction]) return batch return new_batch
def send(self, signer_keypair, payload, object_id=None, related_id=None): """Sends a payload to the validator API""" if not isinstance(signer_keypair, Key): raise TypeError("Expected signer_keypair to be a Key") if not isinstance(payload, protobuf.rbac_payload_pb2.RBACPayload): raise TypeError("Expected payload to be an RBACPayload") _, _, batch_list, _ = batcher.make(payload=payload, signer_keypair=signer_keypair) got = None status = client.send_batches_get_status(batch_list=batch_list) if object_id is not None: got = self.get(object_id=object_id, related_id=related_id) return got, status
def test_unmake(self): """Test the unmake batch function with a single message""" message, message_type, inputs, outputs, signer_keypair = self.get_test_inputs() payload = batcher.make_payload( message=message, message_type=message_type, inputs=inputs, outputs=outputs, signer_user_id=message.user_id, signer_public_key=signer_keypair.public_key, ) transaction, batch, batch_list, batch_request = batcher.make( payload=payload, signer_keypair=signer_keypair ) messages = batcher.unmake( batch_object=payload, signer_public_key=signer_keypair.public_key ) self.assertEqual(len(messages), 1) self.assertEqualMessage(message, messages[0]) messages = batcher.unmake( batch_object=transaction, signer_public_key=signer_keypair.public_key ) self.assertEqual(len(messages), 1) self.assertEqualMessage(message, messages[0]) messages = batcher.unmake( batch_object=batch, signer_public_key=signer_keypair.public_key ) self.assertEqual(len(messages), 1) self.assertEqualMessage(message, messages[0]) messages = batcher.unmake( batch_object=batch_list, signer_public_key=signer_keypair.public_key ) self.assertEqual(len(messages), 1) self.assertEqualMessage(message, messages[0]) messages = batcher.unmake( batch_object=batch_request, signer_public_key=signer_keypair.public_key ) self.assertEqual(len(messages), 1) self.assertEqualMessage(message, messages[0])