"""Test handler utils.""" import application from oto import response import pytest from masters_registry.constant import error from masters_registry.util import handler_utils TEST_ACCOUNT_TYPE = 'vendor' TEST_ACCOUNT_ID = '234' valid_account = (TEST_ACCOUNT_TYPE, TEST_ACCOUNT_ID) valid_account_resp = response.Response(valid_account) error_resp = response.create_error_response( code=error.ERROR_ACCOUNT_DATA_CODE, message=error.ERROR_ACCOUNT_DATA_REQUIRED_MSG) client_headers = { 'Grass-Account-Type': TEST_ACCOUNT_TYPE, 'Grass-Account-Id': TEST_ACCOUNT_ID } client_params = { 'account_type': TEST_ACCOUNT_TYPE, 'account_id': TEST_ACCOUNT_ID } invalid_headers = { 'Some-Value': 'test' } invalid_params = { 'test': 2 } @pytest.mark.parametrize( 'headers,params,response', [ (client_headers, {}, valid_account_resp), ({}, client_params, valid_account_resp), (client_headers, client_params, valid_account_resp), (invalid_headers, {}, error_resp), ({}, invalid_params, error_resp), ({}, {}, error_resp), (invalid_headers, invalid_params, error_resp) ] ) def test_get_account_info(headers, params, response): """Verify extraction of account type and id from headers and params.""" with application.app.test_request_context( headers=headers, query_string=params): account_response = handler_utils.get_grass_account() if account_response: assert response.message == account_response.message else: assert ( account_response.errors['code'] == error.ERROR_ACCOUNT_DATA_CODE) assert ( account_response.errors['message'] == error.ERROR_ACCOUNT_DATA_REQUIRED_MSG)