"""Integration tests for parent company endpoints.""" import requests from account.constants.constants import ORCHARD_PARENT_COMPANY_UUID, SME_PARENT_COMPANY_UUID from tests.integration import config def test_get_parent_companies_success(bearer_token_with_vendor_star) -> None: """GET /parent_companies returns a list of parent companies.""" response = requests.get( f'{config.QA_BASE_URL}/parent_companies', headers={'Authorization': f'Bearer {bearer_token_with_vendor_star}'}, ) assert response.status_code == 200 data = response.json() assert 'parent_companies' in data assert len(data['parent_companies']) >= 2 uuids = [pc['uuid'] for pc in data['parent_companies']] assert ORCHARD_PARENT_COMPANY_UUID in uuids assert SME_PARENT_COMPANY_UUID in uuids for pc in data['parent_companies']: assert 'id' in pc assert 'name' in pc assert 'uuid' in pc assert 'display_name' in pc assert 'company_brands' not in pc def test_get_parent_company_success(bearer_token_with_vendor_star) -> None: """GET /parent_companies/ returns the parent company.""" response = requests.get( f'{config.QA_BASE_URL}/parent_companies/{ORCHARD_PARENT_COMPANY_UUID}', headers={'Authorization': f'Bearer {bearer_token_with_vendor_star}'}, ) assert response.status_code == 200 data = response.json() assert data['uuid'] == ORCHARD_PARENT_COMPANY_UUID assert 'id' in data assert 'name' in data assert 'display_name' in data assert 'company_brands' not in data def test_get_parent_company_not_found(bearer_token_with_vendor_star) -> None: """GET /parent_companies/ returns 404 for unknown UUID.""" response = requests.get( f'{config.QA_BASE_URL}/parent_companies/00000000-0000-0000-0000-000000000000', headers={'Authorization': f'Bearer {bearer_token_with_vendor_star}'}, ) assert response.status_code == 404 def test_get_parent_company_companies_success(bearer_token_with_vendor_star) -> None: """GET /parent_companies//companies returns companies.""" response = requests.get( f'{config.QA_BASE_URL}/parent_companies/{ORCHARD_PARENT_COMPANY_UUID}/companies', headers={'Authorization': f'Bearer {bearer_token_with_vendor_star}'}, ) assert response.status_code == 200 data = response.json() assert 'companies' in data assert len(data['companies']) >= 1 for cb in data['companies']: assert 'id' in cb assert 'name' in cb assert 'uuid' in cb assert 'display_name' in cb def test_get_parent_company_companies_sme(bearer_token_with_vendor_star) -> None: """GET /parent_companies//companies returns SME companies.""" response = requests.get( f'{config.QA_BASE_URL}/parent_companies/{SME_PARENT_COMPANY_UUID}/companies', headers={'Authorization': f'Bearer {bearer_token_with_vendor_star}'}, ) assert response.status_code == 200 data = response.json() assert 'companies' in data assert len(data['companies']) >= 1 def test_get_parent_company_companies_not_found(bearer_token_with_vendor_star) -> None: """GET /parent_companies//companies returns 404 for unknown UUID.""" response = requests.get( f'{config.QA_BASE_URL}/parent_companies/00000000-0000-0000-0000-000000000000/companies', headers={'Authorization': f'Bearer {bearer_token_with_vendor_star}'}, ) assert response.status_code == 404