def validate_task_to_compute(task_to_compute: message.TaskToCompute) -> None: if not isinstance(task_to_compute, message.TaskToCompute): raise ConcentValidationError( f"Expected TaskToCompute instead of {type(task_to_compute).__name__}.", error_code=ErrorCode.MESSAGE_INVALID, ) if any( map(lambda x: x is None, [ getattr(task_to_compute, attribute) for attribute in [ 'compute_task_def', 'provider_public_key', 'requestor_public_key' ] ])): raise ConcentValidationError( "Invalid TaskToCompute", error_code=ErrorCode.MESSAGE_WRONG_FIELDS, ) if not task_to_compute.verify_all_promissory_notes( deposit_contract_address=settings.GNT_DEPOSIT_CONTRACT_ADDRESS): raise ConcentValidationError( "The signature of the PromissiryNote for the Provider, which should be signed by Requestor is incorrect", error_code=ErrorCode.MESSAGE_INVALID, ) validate_compute_task_def(task_to_compute.compute_task_def) validate_hex_public_key(task_to_compute.provider_public_key, 'provider_public_key') validate_hex_public_key(task_to_compute.requestor_public_key, 'requestor_public_key') validate_secure_hash_algorithm(task_to_compute.package_hash) validate_positive_task_price(task_to_compute.price)
def validate_task_to_compute(task_to_compute: message.TaskToCompute) -> None: if not isinstance(task_to_compute, message.TaskToCompute): raise ConcentValidationError( f"Expected TaskToCompute instead of {type(task_to_compute).__name__}.", error_code=ErrorCode.MESSAGE_INVALID, ) if any( map(lambda x: x is None, [ getattr(task_to_compute, attribute) for attribute in [ 'compute_task_def', 'provider_public_key', 'requestor_public_key' ] ])): raise ConcentValidationError( "Invalid TaskToCompute", error_code=ErrorCode.MESSAGE_WRONG_FIELDS, ) validate_compute_task_def(task_to_compute.compute_task_def) validate_hex_public_key(task_to_compute.provider_public_key, 'provider_public_key') validate_hex_public_key(task_to_compute.requestor_public_key, 'requestor_public_key') validate_secure_hash_algorithm(task_to_compute.package_hash) validate_positive_integer_value(task_to_compute.price)
def test_that_validation_should_raise_exception_when_checksum_is_invalid(self): invalid_values_with_expected_error_code = { 123456789: ErrorCode.MESSAGE_FILES_CHECKSUM_WRONG_TYPE, '': ErrorCode.MESSAGE_FILES_CHECKSUM_EMPTY, 'sha14452d71687b6bc2c9389c3349fdc17fbd73b833b': ErrorCode.MESSAGE_FILES_CHECKSUM_WRONG_FORMAT, 'sha2:4452d71687b6bc2c9389c3349fdc17fbd73b833b': ErrorCode.MESSAGE_FILES_CHECKSUM_INVALID_ALGORITHM, 'sha1:xyz2d71687b6bc2c9389c3349fdc17fbd73b833b': ErrorCode.MESSAGE_FILES_CHECKSUM_INVALID_SHA1_HASH, 'sha1:': ErrorCode.MESSAGE_FILES_CHECKSUM_INVALID_SHA1_HASH, } for invalid_value, error_code in invalid_values_with_expected_error_code.items(): with self.assertRaises(HashingAlgorithmError) as context: validate_secure_hash_algorithm(invalid_value) self.assertEqual(context.exception.error_code, error_code)