def assertEqualPayload(self, payload1, payload2):
     """Check that two payloads are the equivalent"""
     message_type1, message1, inputs1, outputs1 = unmake_payload(payload1)
     message_type2, message2, inputs2, outputs2 = unmake_payload(payload2)
     self.assertEqual(message_type1, message_type2)
     self.assertEqual(inputs1, inputs2)
     self.assertEqual(outputs1, outputs2)
     self.assertEqualMessage(message1, message2)
Пример #2
0
 def assertEqualPayload(self, payload1, payload2):
     """Check that two payloads are the equivalent"""
     message1, message_payload1 = unmake_payload(payload1)
     message2, message_payload2 = unmake_payload(payload2)
     self.assertEqual(message_payload1.message_type,
                      message_payload2.message_type)
     self.assertEqual(message_payload1.inputs, message_payload2.inputs)
     self.assertEqual(message_payload1.outputs, message_payload2.outputs)
     self.assertEqualMessage(message1, message2)
     self.assertEqual(message_payload1.signer.user_id,
                      message_payload2.signer.user_id)
     self.assertEqual(message_payload1.signer.public_key,
                      message_payload2.signer.public_key)
 def assertValidPayload(self, payload, message, message_type):
     """Check that a payload is valid given its message type"""
     check_message_type, check_message, check_inputs, check_outputs = unmake_payload(
         payload)
     self.assertEqual(check_message_type, message_type)
     if message_type == RBACPayload.CREATE_ROLE:
         self.assertIsInstance(check_message,
                               protobuf.role_transaction_pb2.CreateRole)
     elif message_type == RBACPayload.PROPOSE_ADD_ROLE_MEMBERS:
         self.assertIsInstance(
             check_message,
             protobuf.role_transaction_pb2.ProposeAddRoleMember)
     elif message_type == RBACPayload.PROPOSE_ADD_ROLE_OWNERS:
         self.assertIsInstance(
             check_message,
             protobuf.role_transaction_pb2.ProposeAddRoleOwner)
     elif message_type == RBACPayload.PROPOSE_ADD_ROLE_ADMINS:
         self.assertIsInstance(
             check_message,
             protobuf.role_transaction_pb2.ProposeAddRoleAdmin)
     else:
         raise Exception(
             "UserAssertions.assertValidPayload doesn't support message type {}"
             .format(message_type))
     self.assertEqualMessage(check_message, message)
     self.assertIsInstance(check_inputs, list)
     self.assertIsInstance(check_outputs, list)
     inputs, outputs = self.make_addresses(message=message)
     self.assertEqual(check_inputs, inputs)
     self.assertEqual(check_outputs, outputs)
Пример #4
0
 def assertValidPayload(self, payload, message, message_type):
     """Test a payload is valid given a user related message type"""
     check_message_type, check_message, check_inputs, check_outputs = unmake_payload(
         payload)
     self.assertEqual(check_message_type, message_type)
     if message_type == RBACPayload.CREATE_USER:
         self.assertIsInstance(check_message,
                               protobuf.user_transaction_pb2.CreateUser)
     else:
         raise Exception(
             "UserAssertions.assertValidPayload doesn't support message type {}"
             .format(message_type))
     self.assertEqualMessage(check_message, message)
     self.assertIsInstance(check_inputs, list)
     self.assertIsInstance(check_outputs, list)
     inputs, outputs = self.make_addresses(message=message)
     self.assertEqual(check_inputs, inputs)
     self.assertEqual(check_outputs, outputs)
Пример #5
0
 def assertValidTransaction(self, transaction, payload, signer_public_key):
     """Check a transaction is valid given a payload"""
     if isinstance(transaction, bytes):
         decoded = transaction_pb2.Transaction()
         decoded.ParseFromString(transaction)
         transaction = decoded
     self.assertIsInstance(transaction, transaction_pb2.Transaction)
     self.assertValidTransactionHeader(
         header=transaction.header,
         signature=transaction.header_signature,
         payload=payload,
         signer_public_key=signer_public_key,
     )
     self.assertEqualPayload(payload1=transaction.payload, payload2=payload)
     message_type, message, _, _, _ = unmake_payload(payload)
     self.assertValidPayload(
         payload=transaction.payload, message=message, message_type=message_type
     )
Пример #6
0
def unmake_payload(payload):
    """ Turn a payload back into a message
    """
    return rbac_payload.unmake_payload(payload=payload)