Esempio n. 1
0
    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
Esempio n. 3
0
 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
Esempio n. 4
0
 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
Esempio n. 5
0
    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])