예제 #1
0
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)
예제 #2
0
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')
예제 #3
0
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')
예제 #4
0
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')
예제 #6
0
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)
예제 #7
0
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)
예제 #10
0
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)
예제 #11
0
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)
예제 #12
0
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)
예제 #13
0
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)
예제 #14
0
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')
예제 #15
0
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')
예제 #16
0
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)
예제 #17
0
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)
예제 #18
0
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')
예제 #19
0
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')
예제 #20
0
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')
예제 #21
0
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')
예제 #22
0
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')
예제 #23
0
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
예제 #28
0
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)