"""Test POST /v2/subaccounts.""" import time import uuid import requests from tests.integration import config from tests.integration.consts import vendors def test_v2_create_subaccount(bearer_token_contract_admin_sme: str) -> None: """contract_admin can create a Subaccount under a distributor account.""" subaccount_attrs = { 'subaccount_name': f'ows-account-integration-test-sme-{time.time()}', 'description': 'ows-account-integration-test-sme', 'country_id': 1, 'subaccount_split_type': 'Net', 'vendor_id': vendors.COLUMBIA_RECORDS_VENDOR_ID, } headers = {'Authorization': f'Bearer {bearer_token_contract_admin_sme}'} response = requests.post( f'{config.QA_BASE_URL}/v2/subaccounts', json=subaccount_attrs, headers=headers ) assert response.status_code == 200, response.text actual = response.json() assert actual['subaccount_name'] == subaccount_attrs['subaccount_name'] assert actual['description'] == 'ows-account-integration-test-sme' assert actual['country_id'] == 1 assert actual['vendor_id'] == 34514 assert actual['subaccount_split_type'] == 'Net' assert actual['commission_override'] == 1.0 assert isinstance(actual['subaccount_uuid'], str) and uuid.UUID(actual['subaccount_uuid']) assert isinstance(actual['subaccount_id'], int) def test_v2_create_subaccount_fails_not_distributor(bearer_token_contract_admin_sme: str) -> None: """contract_admin can't create a Subaccount under an account that is not a distributor.""" subaccount_attrs = { 'subaccount_name': f'ows-account-integration-test-sme-{time.time()}', 'description': 'ows-account-integration-test-sme', 'country_id': 1, 'subaccount_split_type': 'Net', 'vendor_id': vendors.COLUMBIA_UK_VENDOR_ID, } headers = {'Authorization': f'Bearer {bearer_token_contract_admin_sme}'} response = requests.post( f'{config.QA_BASE_URL}/v2/subaccounts', json=subaccount_attrs, headers=headers ) assert response.status_code == 403, response.text