import pytest import requests from tests.integration import config @pytest.mark.parametrize( 'payload, expected_status, expected_response', [ pytest.param( { 'uuids': [ 'a8584a2c-f8e7-4625-a736-85e1b794d017', 'ca0cd829-5a2a-467e-93bf-7223ee72047e', ] }, 200, { 'subaccounts': [ None, { 'subaccount_uuid': 'ca0cd829-5a2a-467e-93bf-7223ee72047e', 'feature_ids': [6, 9, 10, 13, 16, 29, 30, 33], }, ] }, id='mixed known and unknown subaccounts', ), pytest.param( {'uuids': []}, 400, {'code': 'invalid_input', 'message': 'Request payload is not valid'}, id='empty_uuids', ), pytest.param( {'uuids': ['not-a-uuid']}, 400, {'code': 'input_validation_error', 'message': {'uuids': {'0': ['Not a valid UUID.']}}}, id='invalid_uuid', ), ], ) def test_lookup_subaccount_features_by_uuids(payload, expected_status, expected_response): """POST /lookup/subaccount/features/uuids/""" response = requests.post( url='{qa_base_url}/lookup/subaccounts/features/uuids/'.format( qa_base_url=config.QA_BASE_URL ), json=payload, ) assert response.status_code == expected_status assert response.json() == expected_response