def test_work_order_with_alternate_worker_signing_algorithm(setup_config): """ Testing work order request by submiting alternate signing algorithm. """ # input file name request = 'work_order_tests/input' \ '/work_order_with_alternate_worker_signing_algorithm.json' work_order_response, generic_params = (work_order_request_params( setup_config, request)) err_cd, work_order_get_result_response = (work_order_get_result_params( work_order_response[:6], generic_params)) setup_config[0].signingAlgorithm = "RSA-OAEP-3072" assert (verify_work_order_signature(work_order_get_result_response, generic_params[0]) is TestStep.SUCCESS.value) assert (decrypt_work_order_response( work_order_get_result_response, work_order_response[3], work_order_response[4])[0] is TestStep.SUCCESS.value) # WorkOrderGetResult API Response validation with key parameters assert (validate_response_code(work_order_get_result_response) is TestStep.SUCCESS.value)
def test_worker_set_status_unknown_parameter(setup_config): """ Testing set status request with all valid parameter values. """ # retrieve values from conftest session fixture worker_obj, uri_client, private_key, err_cd = setup_config[:4] # input and output names request = './worker_tests/input/worker_set_status_unknown_parameter.json' request_mode = 'file' output_json_file_name = 'worker_set_status' tamper = {"params": {}} request_method = "" request_id = 0 # submit worker status request_tup = (request, request_mode, tamper, output_json_file_name, uri_client, request_method, worker_obj, request_id) response_tup = post_request(request_tup) response = response_tup[1] # validate work order response and get error code err_cd = validate_response_code(response) assert err_cd == TestStep.SUCCESS.value logger.info('\t\t!!! Test completed !!!\n\n')
def test_work_order_two_workloadid_echoclient(setup_config): """ Testing work order request by passing heart workloadid and echoclient workload in one workorder. """ # input file name request = 'work_order_tests/input' \ '/work_order_two_workloadid_echoclient.json' work_order_response, generic_params = work_order_request_params( setup_config, request) err_cd, work_order_get_result_response = work_order_get_result_params( work_order_response[:2], generic_params) assert (verify_work_order_signature(work_order_get_result_response, generic_params[0]) is TestStep.SUCCESS.value) assert (decrypt_work_order_response( work_order_get_result_response, work_order_response[3], work_order_response[4])[0] is TestStep.SUCCESS.value) # WorkOrderGetResult API Response validation with key parameters assert (validate_response_code(work_order_get_result_response) is TestStep.SUCCESS.value) logger.info('\t\t!!! Test completed !!!\n\n')
def test_work_order_dataEncryptionAlgorithm_list_same_algo_twice(setup_config): """ Testing work order request by passing twice same data encryption algorithm. """ # input file name request = 'work_order_tests/input' \ '/work_order_dataEncryptionAlgorithm_list_same_algo_twice.json' work_order_response, generic_params = work_order_request_params( setup_config, request) err_cd, work_order_get_result_response = work_order_get_result_params( work_order_response[:2], generic_params) assert (verify_work_order_signature(work_order_get_result_response, generic_params[0]) is TestStep.SUCCESS.value) assert (decrypt_work_order_response( work_order_get_result_response, work_order_response[3], work_order_response[4])[0] is TestStep.SUCCESS.value) # WorkOrderGetResult API Response validation with key parameters assert (validate_response_code(work_order_get_result_response) is TestStep.SUCCESS.value) logger.info('\t\t!!! Test completed !!!\n\n')
def test_work_order_verify_signature(setup_config): """ Testing postive flow with verify signature. """ # input file name request = 'work_order_tests/input/work_order_verify_signature.json' work_order_response, generic_params = work_order_request_params( setup_config, request) err_cd, work_order_get_result_response = work_order_get_result_params( work_order_response[:2], generic_params) assert (verify_work_order_signature(work_order_get_result_response, generic_params[0]) is TestStep.SUCCESS.value) assert (decrypt_work_order_response( work_order_get_result_response, work_order_response[3], work_order_response[4])[0] is TestStep.SUCCESS.value) # WorkOrderGetResult API Response validation with key parameters assert (validate_response_code(work_order_get_result_response) is TestStep.SUCCESS.value) logger.info('\t\t!!! Test completed !!!\n\n')
def test_work_order_both_in_out_Data_DataEncryptionKey_null_echo(setup_config): """ Testing work order request by passing null in encrypteddataencryption in indata or both in indata and outdata. """ # input file name request = 'work_order_tests/input' \ '/work_order_both_in_out_Data_EncryptionKey_null_echo.json' work_order_response, generic_params = work_order_request_params( setup_config, request) err_cd, work_order_get_result_response = work_order_get_result_params( work_order_response[:2], generic_params) assert (verify_work_order_signature(work_order_get_result_response, generic_params[0]) is TestStep.SUCCESS.value) assert (decrypt_work_order_response( work_order_get_result_response, work_order_response[3], work_order_response[4])[0] is TestStep.SUCCESS.value) # WorkOrderGetResult API Response validation with key parameters assert (validate_response_code(work_order_get_result_response) is TestStep.SUCCESS.value)
def test_work_order_without_requester_private_key(setup_config): """ Testing work order request by submiting without requester private key. """ # input file name request = 'work_order_tests/input' \ '/work_order_without_requester_private_key.json' private_key = "" work_order_response, generic_params = (work_order_request_params( setup_config, request)) err_cd, work_order_get_result_response = (work_order_get_result_params( work_order_response[:6], generic_params)) assert (verify_work_order_signature(work_order_get_result_response, generic_params[0]) is TestStep.SUCCESS.value) assert (decrypt_work_order_response( work_order_get_result_response, work_order_response[3], work_order_response[4])[0] is TestStep.SUCCESS.value) # WorkOrderGetResult API Response validation with key parameters assert (validate_response_code(work_order_get_result_response) is TestStep.SUCCESS.value)
def test_work_order_datahash_random_str(setup_config): """ Testing work order request by passing random string in datahash""" # input file name request = 'work_order_tests/input/work_order_datahash_random_str.json' work_order_response, generic_params = (work_order_request_params( setup_config, request)) err_cd, work_order_get_result_response = (work_order_get_result_params( work_order_response[:2], generic_params)) assert (validate_response_code(work_order_get_result_response) is TestStep.SUCCESS.value)
def test_work_order_with_empty_indata(setup_config): """testing work order request by passing invalid dataEncryption algorithm .""" # input file name request = 'work_order_tests/input/work_order_with_empty_indata.json' work_order_response, generic_params = (work_order_request_params( setup_config, request)) err_cd, work_order_get_result_response = (work_order_get_result_params( work_order_response[:2], generic_params)) assert (validate_response_code(work_order_get_result_response) is TestStep.SUCCESS.value)
def test_work_order_submit_requesterId_param_remove(setup_config): """ Testing work order request without requesterId. """ # input file name request = 'work_order_tests/input' \ '/work_order_submit_requesterId_param_remove.json' work_order_response, generic_params = (work_order_request_params( setup_config, request)) err_cd, work_order_get_result_response = (work_order_get_result_params( work_order_response[:6], generic_params)) # WorkOrderGetResult API Response validation with key parameters assert (validate_response_code(work_order_get_result_response) is TestStep.SUCCESS.value)
def test_work_order_workloadId_specialcharacters(setup_config): """ Test work order request with wrong workload id """ # input file name request = 'work_order_tests/input' \ '/work_order_workloadId_specialcharacters.json' work_order_response, generic_params = (work_order_request_params( setup_config, request)) err_cd, work_order_get_result_response = (work_order_get_result_params( work_order_response[:6], generic_params)) # WorkOrderGetResult API Response validation with key parameters assert (validate_response_code(work_order_get_result_response) is TestStep.SUCCESS.value)
def test_work_order_with_not_supported_dataencryption_algorithm(setup_config): """ Test work order request with unsupported dataencryption algorithm """ # input file name request = 'work_order_tests/input' \ '/work_order_with_not_supported_dataEncryption_algorithm.json' work_order_response, generic_params = (work_order_request_params( setup_config, request)) err_cd, work_order_get_result_response = (work_order_get_result_params( work_order_response[:6], generic_params)) # WorkOrderGetResult API Response validation with key parameters assert (validate_response_code(work_order_get_result_response) is TestStep.SUCCESS.value)
def test_work_order_signature_with_wrong_payload_format(setup_config): """ Testing work order request by passing wrong payload format. """ # input file name request = 'work_order_tests/input' \ '/work_order_signature_with_wrong_payload_format.json' work_order_response, generic_params = (work_order_request_params( setup_config, request)) err_cd, work_order_get_result_response = (work_order_get_result_params( work_order_response[:6], generic_params)) # WorkOrderGetResult API Response validation with key parameters assert (validate_response_code(work_order_get_result_response) is TestStep.SUCCESS.value)
def test_work_order_signing_wrong(setup_config): """ Testing work order with wrong signature. """ # input file name request = 'work_order_tests/input' \ '/work_order_signing_wrong.json' tamper = {"params": {"after_sign": {"requesterSignature": "hs"}}} work_order_response, generic_params = (work_order_request_params( setup_config, request)) err_cd, work_order_get_result_response = (work_order_get_result_params( work_order_response[:6], generic_params)) # WorkOrderGetResult API Response validation with key parameters assert (validate_response_code(work_order_get_result_response) is TestStep.SUCCESS.value) logger.info('\t\t!!! Test completed !!!\n\n')
def test_work_order_submit_requesterId_som_special_characters(setup_config): """ Testing work order request for requester Id with special_characters. """ # input file name request = 'work_order_tests/input' \ '/work_order_requesterId_special_characters.json' work_order_response, generic_params = (work_order_request_params( setup_config, request)) err_cd, work_order_get_result_response = (work_order_get_result_params( work_order_response[:6], generic_params)) # WorkOrderGetResult API Response validation with key parameters assert (validate_response_code(work_order_get_result_response) is TestStep.SUCCESS.value) logger.info('\t\t!!! Test completed !!!\n\n')
def test_work_order_submit_workload_id_random_string(setup_config): """ Test work order request with wrong workload id """ # input file name request = 'work_order_tests/input' \ '/work_order_submit_workload_id_random_string.json' tamper = {"params": {"before_sign": {"workloadId": ""}}} work_order_response, generic_params = (work_order_request_params( setup_config, request)) err_cd, work_order_get_result_response = (work_order_get_result_params( work_order_response[:6], generic_params)) # WorkOrderGetResult API Response validation with key parameters assert (validate_response_code(work_order_get_result_response) is TestStep.SUCCESS.value)
def test_work_order_with_empty_indata_outdata(setup_config): """ Testing work order request by passing empty indata and outdata. """ # input file name request = 'work_order_tests/input' \ '/work_order_with_empty_indata_outdata.json' work_order_response, generic_params = (work_order_request_params( setup_config, request)) err_cd, work_order_get_result_response = (work_order_get_result_params( work_order_response[:6], generic_params)) # WorkOrderGetResult API Response validation with key parameters assert (validate_response_code(work_order_get_result_response) is TestStep.SUCCESS.value)
def test_work_order_remove_payload_format_echoclient(setup_config): """ Testing work order request by removal of payload format. """ # input file name request = 'work_order_tests/input' \ '/work_order_remove_payload_format_echoclient.json' work_order_response, generic_params = work_order_request_params( setup_config, request) err_cd, work_order_get_result_response = work_order_get_result_params( work_order_response[:2], generic_params) # WorkOrderGetResult API Response validation with key parameters assert (validate_response_code(work_order_get_result_response) is TestStep.SUCCESS.value) logger.info('\t\t!!! Test completed !!!\n\n')
def test_work_order_with_empty_dataEncryption_algorithm(setup_config): """ Testing work order request by passing empty dataencryption algorithm. """ # input file name request = 'work_order_tests/input' \ '/work_order_with_empty_dataEncryption_algorithm.json' work_order_response, generic_params = (work_order_request_params( setup_config, request)) err_cd, work_order_get_result_response = (work_order_get_result_params( work_order_response[:6], generic_params)) # WorkOrderGetResult API Response validation with key parameters assert (validate_response_code(work_order_get_result_response) is TestStep.SUCCESS.value) logger.info('\t\t!!! Test completed !!!\n\n')
def test_work_order_with_wrong_private_key(setup_config): """ Testing work order request by passing wrong private key. """ # input file name request = 'work_order_tests/input' \ '/work_order_with_wrong_private_key.json' private_key = "BA12" work_order_response, generic_params = (work_order_request_params( setup_config, request)) err_cd, work_order_get_result_response = (work_order_get_result_params( work_order_response[:6], generic_params)) # WorkOrderGetResult API Response validation with key parameters assert (validate_response_code(work_order_get_result_response) is TestStep.SUCCESS.value) logger.info('\t\t!!! Test completed !!!\n\n')
def test_work_order_empty_workloadid(setup_config): """ Testing work order request by passing empty workloadid. """ # input file name request = 'work_order_tests/input' \ '/work_order_only_workloadid.json' work_order_response, generic_params = work_order_request_params( setup_config, request) err_cd, work_order_get_result_response = work_order_get_result_params( work_order_response[:2], generic_params) # WorkOrderGetResult API Response validation with key parameters assert (validate_response_code(work_order_get_result_response) is TestStep.SUCCESS.value) logger.info('\t\t!!! Test completed !!!\n\n')
def test_work_order_submit_WorkOrderId_null(setup_config): """ Testing work order request by passing empty indata and outdata. """ # input file name request = 'work_order_tests/input' \ '/work_order_submit_WorkOrderId_null.json' tamper = {"params": {"after_sign": {"workOrderId": ""}}} work_order_response, generic_params = (work_order_request_params( setup_config, request)) err_cd, work_order_get_result_response = (work_order_get_result_params( work_order_response[:6], generic_params)) # WorkOrderGetResult API Response validation with key parameters assert (validate_response_code(work_order_get_result_response) is TestStep.SUCCESS.value) logger.info('\t\t!!! Test completed !!!\n\n')
def test_work_order_not_supported_data_encryption_algorithm_echo(setup_config): """ Testing work order request by passing invalid indata. """ # input file name request = 'work_order_tests/input' \ '/work_order_non_supported_dataalgorithm_echoclient.json' work_order_response, generic_params = work_order_request_params( setup_config, request) err_cd, work_order_get_result_response = work_order_get_result_params( work_order_response[:2], generic_params) # WorkOrderGetResult API Response validation with key parameters assert (validate_response_code(work_order_get_result_response) is TestStep.SUCCESS.value) logger.info('\t\t!!! Test completed !!!\n\n')
def test_work_order_encryptedDataEncryptionKey_hyphen(setup_config): """ Testing work order by passing encryptedDataEncryptionKey hyphen in index of indata. """ # input file name request = 'work_order_tests/input' \ '/work_order_encryptedDataEncryptionKey_hyphen.json' work_order_response, generic_params = work_order_request_params( setup_config, request) err_cd, work_order_get_result_response = work_order_get_result_params( work_order_response[:2], generic_params) # WorkOrderGetResult API Response validation with key parameters assert (validate_response_code(work_order_get_result_response) is TestStep.SUCCESS.value) logger.info('\t\t!!! Test completed !!!\n\n')
def test_work_order_with_empty_indata_hash(setup_config): """Testing work order request with empty indata hash""" # input file name request = 'work_order_tests/input/work_order_with_empty_indata_hash.json' work_order_response, generic_params = (work_order_request_params( setup_config, request)) err_cd, work_order_get_result_response = (work_order_get_result_params( work_order_response[:6], generic_params)) assert (verify_work_order_signature(work_order_get_result_response, generic_params[0]) is TestStep.SUCCESS.value) assert (decrypt_work_order_response( work_order_get_result_response, work_order_response[3], work_order_response[4])[0] is TestStep.SUCCESS.value) # WorkOrderGetResult API Response validation with key parameters assert (validate_response_code(work_order_get_result_response) is TestStep.SUCCESS.value)
def test_work_order_submit_sessionkeyiv_and_iv_indata_hex_string(setup_config): """ Testing work order request by setting requesterId as null. """ # input file name request = 'work_order_tests/input/work_order_iv_indata_hex_string.json' work_order_response, generic_params = (work_order_request_params( setup_config, request)) err_cd, work_order_get_result_response = (work_order_get_result_params( work_order_response[:6], generic_params)) assert (verify_work_order_signature(work_order_get_result_response, generic_params[0]) is TestStep.SUCCESS.value) assert (decrypt_work_order_response( work_order_get_result_response, work_order_response[3], work_order_response[4])[0] is TestStep.SUCCESS.value) # WorkOrderGetResult API Response validation with key parameters assert (validate_response_code(work_order_get_result_response) is TestStep.SUCCESS.value)
def submit_work_order(input_request, request_mode, tamper, output_json_file_name, uri_client, worker_obj, request_method, private_key, err_cd): """ Function to submit work order Read input request from string or object and submit request. Uses WorkOrderSubmit class definition to initialize work order object. Triggers submit_request, validate_response_code, Returns - error code, input_json_str1, response, submiting_time, worker_obj, sig_obj, encrypted_session_key. """ response = {} if err_cd == 0: # -------------------------------------------------------------------- logger.info("------ Testing WorkOrderSubmit ------") if request_mode == "object": input_work_order = json.loads(input_request.to_string()) else: # create work order request wo_obj = WorkOrderSubmit() wo_obj.add_json_values(input_request, worker_obj, private_key, tamper) input_work_order = wo_obj.compute_signature(tamper) logger.info('Compute Signature complete \n') input_json_str1 = json.loads(input_work_order) response = submit_request(uri_client, input_json_str1, output_json_file_name) err_cd = validate_response_code(response) else: logger.info('ERROR: No Worker Retrieved from system.\ Unable to proceed to submit work order.') response_tup = (err_cd, input_json_str1, response, wo_obj.session_key, wo_obj.session_iv, wo_obj.get_encrypted_session_key()) return response_tup
def test_work_order_multiple_dataEncryptionAlgorithm(setup_config): """ Testing work order request by passing multiple data encryption algorithm. """ request = 'work_order_tests/input' \ '/work_order_multiple_dataEncryptionAlgorithm.json' work_order_response, generic_params = work_order_request_params( setup_config, request) err_cd, work_order_get_result_response = work_order_get_result_params( work_order_response[:2], generic_params) assert (verify_work_order_signature(work_order_get_result_response, generic_params[0]) is TestStep.SUCCESS.value) assert (decrypt_work_order_response( work_order_get_result_response, work_order_response[3], work_order_response[4])[0] is TestStep.SUCCESS.value) assert (validate_response_code(work_order_get_result_response) is TestStep.SUCCESS.value) logger.info('\t\t!!! Test completed !!!\n\n')
def test_work_order_specialcharacter_data_single_index_indata(setup_config): """Testing work order request with all special characters in index of indata """ # input file name request = 'work_order_tests/input' \ '/work_order_specialcharacter_data_single_index_indata.json' work_order_response, generic_params = (work_order_request_params( setup_config, request)) err_cd, work_order_get_result_response = (work_order_get_result_params( work_order_response[:6], generic_params)) assert (verify_work_order_signature(work_order_get_result_response, generic_params[0]) is TestStep.SUCCESS.value) assert (decrypt_work_order_response( work_order_get_result_response, work_order_response[3], work_order_response[4])[0] is TestStep.SUCCESS.value) # WorkOrderGetResult API Response validation with key parameters assert (validate_response_code(work_order_get_result_response) is TestStep.SUCCESS.value)
def test_work_order_indata_index1_data_different_hexlength(setup_config): """Testing work order request with indata index1 data with different hex length.""" # input file name request = 'work_order_tests/input' \ '/work_order_indata_index1_data_diff_len.json' work_order_response, generic_params = (work_order_request_params( setup_config, request)) err_cd, work_order_get_result_response = (work_order_get_result_params( work_order_response[:6], generic_params)) assert (verify_work_order_signature(work_order_get_result_response, generic_params[0]) is TestStep.SUCCESS.value) assert (decrypt_work_order_response( work_order_get_result_response, work_order_response[3], work_order_response[4])[0] is TestStep.SUCCESS.value) # WorkOrderGetResult API Response validation with key parameters assert (validate_response_code(work_order_get_result_response) is TestStep.SUCCESS.value)