"""Tests for Handlers.""" import json from oto import response from reporting.constants import error from reporting.constants.report_map import PRODUCT_US from reporting.logic import account, physical_reporting def test_filters_success(client, valid_get_headers, mocker): """Test getting data.""" mocker.patch.object( physical_reporting, 'get_report_filters_by_type', return_value=response.Response(status=200, message={'cat'}), ) mocker.patch.object( account, 'update_params_with_vendor_info', return_value={ 'param_subaccount_id': 'bees', 'param_vendor_id': 'pizza', }, ) handler_response = client.get( '/report/{}/filters'.format(PRODUCT_US), headers=valid_get_headers ) assert handler_response.status_code == 200 assert handler_response.data.decode('utf-8') == 'cat' assert account.update_params_with_vendor_info.called def test_get_data_failure_no_access(client, mocker): """Test it fails when you don't pass valid headers.""" handler_response = client.get( '/report/{}/filters'.format(PRODUCT_US), headers={} ) assert handler_response.status_code == 400 def test_get_data_failure_bad_report_type(client, valid_get_headers, mocker): """Test it fails pass a bad report type.""" bad_report_name = 'chowda' handler_response = client.get( '/report/{}/filters'.format(bad_report_name), headers=valid_get_headers ) assert handler_response.status_code == 400 assert ( json.loads(handler_response.data.decode('utf-8')).get('message') == error.ERROR_MESSAGE_BAD_REPORT )