"""Integration tests for ows-accounting: reports - negative cases""" import pytest from tests.integration import conftest from tests.integration.conftest import get_periods, label_7482, user_headers @pytest.mark.parametrize('absent_field', ['file_type', 'number_format', 'periods', 'request_context']) def test_required_field_missing(absent_field): """POST /report should respond with an appropriate message if required field is missing.""" test_user = label_7482() params = { 'file_type': 'xls', 'number_format': 'en_US', 'transaction_types': 'CL,MV', 'periods': get_periods(), 'request_context': { 'first_name': 'Chris', 'last_name': 'Wilson', 'contact_id': test_user['id'], 'contact_email': 'QAORCHEmailContact@theorchard.com' } } params.pop(absent_field) headers = user_headers( test_user['user_type'], test_user['id'], test_user['vend_contact_id']) ows_accounting_client = conftest.ows_accounting_api_client(headers) results = ows_accounting_client.post_report(params) assert results.status_code == 400, \ 'Result of call was {}, expected 400.'.format(results.status_code) json_results = results.json() assert json_results['message'] == '\'{absent_field}\' is ' \ 'a required property'.format( absent_field=absent_field)