"""Test v2 profile get vendors.""" import pytest import requests from tests.integration import config, utils common_vendors = [ {'vendor_uuid': 'c69e4857-6d19-4dbc-8bad-cc6e65da0a20', 'vendor_id': 27380}, {'vendor_uuid': 'ec1fd7e2-9c95-4e09-a037-e924e0244283', 'vendor_id': 21989}, {'vendor_uuid': '065aced3-b2fb-11ef-b6a8-0affe2ca6553', 'vendor_id': 791192}, {'vendor_uuid': 'b5278606-86e5-49d7-b2b1-5c64d236b7b6', 'vendor_id': 33284}, {'vendor_uuid': '43c9ad01-b939-4a68-a5f6-b7ecd242f389', 'vendor_id': 32093}, {'vendor_uuid': '0db46832-9dbe-11ef-b6a8-0affe2ca6553', 'vendor_id': 790990}, {'vendor_uuid': 'e5ef9e93-2bdc-421b-aff0-69c05d4752bc', 'vendor_id': 30326}, {'vendor_uuid': 'b7583a9b-a599-11ef-b6a8-0affe2ca6553', 'vendor_id': 791048}, {'vendor_uuid': '07bee19b-a595-11ef-b6a8-0affe2ca6553', 'vendor_id': 791047}, {'vendor_uuid': '9338111a-176f-4781-89a8-23be698b2a55', 'vendor_id': 32207}, {'vendor_uuid': '8cbcd1e2-c1c0-4f19-b43e-abf6274f2bb0', 'vendor_id': 73132}, {'vendor_uuid': '93e28ee5-a2a3-11ef-b6a8-0affe2ca6553', 'vendor_id': 791033}, {'vendor_uuid': '2a24668a-6b7d-4641-a84c-e386ce8ab910', 'vendor_id': 34070}, {'vendor_uuid': '0460a822-a595-11ef-b6a8-0affe2ca6553', 'vendor_id': 791046}, {'vendor_uuid': '8dbdd0d8-daee-4c12-bc3d-a2f7622e8345', 'vendor_id': 35293}, {'vendor_uuid': 'f05e9067-a2ed-4056-870a-0d49a970d510', 'vendor_id': 20625}, {'vendor_uuid': 'ce6a2ded-37bb-4c9c-912a-4d402b7df569', 'vendor_id': 6410}, ] settings_vendors = common_vendors + [ {'vendor_uuid': '2e79b9b8-29ed-44e1-832f-2aa3b47f13c8', 'vendor_id': 30} ] collaborators_vendors = common_vendors + [ {'vendor_uuid': '25364b17-36df-4ff8-96cd-65456778dac5', 'vendor_id': 32496} ] @pytest.mark.parametrize( ('profile_type', 'profile_id', 'expected_vendors'), [ pytest.param( 'SettingsProfile', '467615', settings_vendors, id='SettingsProfile with direct access' ), pytest.param( 'CollaboratorsProfile', '467616', collaborators_vendors, id='CollaboratorsProfile with direct access', ), pytest.param('FakeProfile', '465788', [], id='FakeProfile return empty list'), ], ) def test_v2_profile_get_vendors_with_different_profiles( profile_type: str, profile_id: str, expected_vendors: list[dict], bearer_token_user_without_vendor_star: str, ) -> None: """Test GET /v2/profile/self/vendors/direct-access without Vendor *.""" response = requests.get( f'{config.QA_BASE_URL}/v2/profile/self/vendors/direct-access', headers={ 'Authorization': f'Bearer {bearer_token_user_without_vendor_star}', 'Orchard-Profile-Type': profile_type, 'Orchard-Profile-Id': profile_id, 'Orchard-Identity-Id': utils.OWS_PERMISSIONS_TEST_USER_ID, }, ) assert response.status_code == 200 assert all(ev in response.json()['vendors'] for ev in expected_vendors) @pytest.mark.parametrize( ('profile_type', 'profile_id', 'expected_vendors'), [ ( 'SettingsProfile', '465788', [ {'vendor_uuid': '2a24668a-6b7d-4641-a84c-e386ce8ab910', 'vendor_id': 34070}, {'vendor_uuid': 'b7583a9b-a599-11ef-b6a8-0affe2ca6553', 'vendor_id': 791048}, {'vendor_uuid': '07bee19b-a595-11ef-b6a8-0affe2ca6553', 'vendor_id': 791047}, {'vendor_uuid': '93e28ee5-a2a3-11ef-b6a8-0affe2ca6553', 'vendor_id': 791033}, {'vendor_uuid': 'b5278606-86e5-49d7-b2b1-5c64d236b7b6', 'vendor_id': 33284}, {'vendor_uuid': 'c69e4857-6d19-4dbc-8bad-cc6e65da0a20', 'vendor_id': 27380}, {'vendor_uuid': 'f05e9067-a2ed-4056-870a-0d49a970d510', 'vendor_id': 20625}, {'vendor_uuid': '43c9ad01-b939-4a68-a5f6-b7ecd242f389', 'vendor_id': 32093}, {'vendor_uuid': '053a1a75-acc5-4cd8-9206-a194335d2afa', 'vendor_id': '*'}, {'vendor_uuid': 'ce6a2ded-37bb-4c9c-912a-4d402b7df569', 'vendor_id': 6410}, {'vendor_uuid': '9338111a-176f-4781-89a8-23be698b2a55', 'vendor_id': 32207}, {'vendor_uuid': '8cbcd1e2-c1c0-4f19-b43e-abf6274f2bb0', 'vendor_id': 73132}, {'vendor_uuid': '0460a822-a595-11ef-b6a8-0affe2ca6553', 'vendor_id': 791046}, {'vendor_uuid': '065aced3-b2fb-11ef-b6a8-0affe2ca6553', 'vendor_id': 791192}, {'vendor_uuid': '0db46832-9dbe-11ef-b6a8-0affe2ca6553', 'vendor_id': 790990}, {'vendor_uuid': '8dbdd0d8-daee-4c12-bc3d-a2f7622e8345', 'vendor_id': 35293}, {'vendor_uuid': 'fff741c2-6def-4493-bfdf-c2bcb1128e02', 'vendor_id': 6971}, {'vendor_uuid': 'e5ef9e93-2bdc-421b-aff0-69c05d4752bc', 'vendor_id': 30326}, ], ), ( 'InsightsProfile', '465789', [ {'vendor_uuid': 'f05e9067-a2ed-4056-870a-0d49a970d510', 'vendor_id': 20625}, {'vendor_uuid': '8cbcd1e2-c1c0-4f19-b43e-abf6274f2bb0', 'vendor_id': 73132}, {'vendor_uuid': 'b7583a9b-a599-11ef-b6a8-0affe2ca6553', 'vendor_id': 791048}, {'vendor_uuid': '8dbdd0d8-daee-4c12-bc3d-a2f7622e8345', 'vendor_id': 35293}, {'vendor_uuid': 'e5ef9e93-2bdc-421b-aff0-69c05d4752bc', 'vendor_id': 30326}, {'vendor_uuid': 'fff741c2-6def-4493-bfdf-c2bcb1128e02', 'vendor_id': 6971}, {'vendor_uuid': '07bee19b-a595-11ef-b6a8-0affe2ca6553', 'vendor_id': 791047}, {'vendor_uuid': 'c69e4857-6d19-4dbc-8bad-cc6e65da0a20', 'vendor_id': 27380}, {'vendor_uuid': 'ce6a2ded-37bb-4c9c-912a-4d402b7df569', 'vendor_id': 6410}, {'vendor_uuid': '93e28ee5-a2a3-11ef-b6a8-0affe2ca6553', 'vendor_id': 791033}, {'vendor_uuid': '0db46832-9dbe-11ef-b6a8-0affe2ca6553', 'vendor_id': 790990}, {'vendor_uuid': 'b5278606-86e5-49d7-b2b1-5c64d236b7b6', 'vendor_id': 33284}, {'vendor_uuid': '0460a822-a595-11ef-b6a8-0affe2ca6553', 'vendor_id': 791046}, {'vendor_uuid': '2a24668a-6b7d-4641-a84c-e386ce8ab910', 'vendor_id': 34070}, {'vendor_uuid': '065aced3-b2fb-11ef-b6a8-0affe2ca6553', 'vendor_id': 791192}, {'vendor_uuid': '43c9ad01-b939-4a68-a5f6-b7ecd242f389', 'vendor_id': 32093}, {'vendor_uuid': '9338111a-176f-4781-89a8-23be698b2a55', 'vendor_id': 32207}, ], ), ], ) def test_v2_profile_get_vendors_with_vendor_star( profile_type: str, profile_id: str, expected_vendors: list[dict], bearer_token_user_with_vendor_star: str, ) -> None: """Test GET /v2/profile/self/vendors/direct-access with Vendor *.""" response = requests.get( f'{config.QA_BASE_URL}/v2/profile/self/vendors/direct-access', headers={ 'Authorization': f'Bearer {bearer_token_user_with_vendor_star}', 'Orchard-Profile-Type': profile_type, 'Orchard-Profile-Id': profile_id, 'Orchard-Identity-Id': utils.OWS_PERMISSIONS_TEST_USER_ID, }, ) assert response.status_code == 200 vendors = response.json()['vendors'] response_uuids = {v['vendor_uuid'] for v in vendors} expected_uuids = {v['vendor_uuid'] for v in expected_vendors} assert set(expected_uuids).issubset(set(response_uuids)) response_vendor_ids = {v['vendor_id'] for v in vendors} expected_vendor_ids = {v['vendor_id'] for v in vendors} assert set(expected_vendor_ids).issubset(set(response_vendor_ids))