"""Integration tests for GET /vendor/{vendor_id} endpoint.""" from typing import Any import pytest import requests from tests.integration.consts import api, vendors EXPECTED_FRENCHKISS_RECORDS = { 'company_brand': 'theorchard', 'country': 'USA', 'country_code': 'US', 'is_distributor': 'N', 'account_name': 'Frenchkiss Records', 'owner': 'odd', 'status': 'signed', 'vendor_id': 6971, 'vendor_uuid': vendors.FRENCHKISS_RECORDS_VENDOR_UUID, } EXPECTED_PITFALL = { 'company_brand': 'awal', 'country': 'Turkey', 'country_code': 'TR', 'is_distributor': 'N', 'account_name': 'Pitfall', 'owner': 'AWAL-Core', 'status': 'deletion', 'vendor_id': 73952, 'vendor_uuid': vendors.PITFALL_VENDOR_UUID, } @pytest.mark.parametrize( 'token_fixture, profile_fixture, vendor_id, expected_status, expected_vendor', [ pytest.param('bearer_token_account360_user', None, '73952', 200, EXPECTED_PITFALL), pytest.param('bearer_token_account360_user', None, '6971', 403, None), pytest.param( None, 'ows_account_test_user_settings_profile', '6971', 200, EXPECTED_FRENCHKISS_RECORDS, ), ], ) def test_get_vendor( token_fixture: str, profile_fixture: str, vendor_id: str, expected_status: int, expected_vendor: dict[str,], request: Any, ) -> None: """GET /vendor/{vendor_id}.""" full_headers = {'Orchard-Requestor-Service': 'graphql-account-test'} # Add Authorization header if provided in the parameters. bearer_token = request.getfixturevalue(token_fixture) if token_fixture else None if bearer_token: full_headers['Authorization'] = f'Bearer {bearer_token}' # Add profile headers if provided in the parameters. profile = request.getfixturevalue(profile_fixture) if profile_fixture else None if profile: full_headers.update( { 'Orchard-Identity-Id': f'{profile.identity_id}', 'Orchard-Profile-Id': f'{profile.profile_id}', 'Orchard-Profile-Type': f'{profile.profile_type}', } ) response = requests.get(api.GET_VENDOR + vendor_id, headers=full_headers) assert response.status_code == expected_status if expected_vendor: assert expected_vendor.items() <= response.json().items()