"""Functional tests for getting collaborator data.""" import json import pytest from tests.testutils import db, mock_auth from tests.testutils.matchers import AnyIsoDateTimeString @db.test_schema_default_seed @pytest.mark.parametrize( "vendor_id, collaborator_id, payload, response", [ ( 24601, 1, { "name": "Updated Person 1", "performance_rights": True, "description": "Mastering Engineer", "internal_id": "ABC-124", }, { "id": 1, "name": "Updated Person 1", "vendor_id": 24601, "performance_rights": True, "subaccount_id": None, "participant_id": "12345", "recipient_id": None, "currency": "USD", "collaborator_type": "COLLABORATOR", "description": "Mastering Engineer", "internal_id": "ABC-124", "created_date": AnyIsoDateTimeString(), "dp_enabled_date": None, "dp_splits_agreed_date": AnyIsoDateTimeString(), }, ), ( 24601, 2, { "name": "Updated Person 2", "performance_rights": True, "description": "Mastering Engineer", "internal_id": "ABC-524", }, { "id": 2, "name": "Updated Person 2", "vendor_id": 24601, "performance_rights": True, "subaccount_id": None, "participant_id": "12346", "recipient_id": None, "currency": "USD", "collaborator_type": "COLLABORATOR", "description": "Mastering Engineer", "internal_id": "ABC-524", "created_date": AnyIsoDateTimeString(), "dp_enabled_date": "2012-03-04T05:06:07", "dp_splits_agreed_date": AnyIsoDateTimeString(), }, ), ( 24601, 2, { "dp_enabled": False, }, { "id": 2, "name": "Another Person", "vendor_id": 24601, "performance_rights": False, "subaccount_id": None, "participant_id": "12346", "recipient_id": None, "currency": "USD", "collaborator_type": "COLLABORATOR", "description": "Mixing Engineer", "internal_id": "ABC-523", "created_date": AnyIsoDateTimeString(), "dp_enabled_date": None, "dp_splits_agreed_date": AnyIsoDateTimeString(), }, ), ( 24601, 2, { "dp_splits_agreed": True, }, { "id": 2, "name": "Another Person", "vendor_id": 24601, "performance_rights": False, "subaccount_id": None, "participant_id": "12346", "recipient_id": None, "currency": "USD", "collaborator_type": "COLLABORATOR", "description": "Mixing Engineer", "internal_id": "ABC-523", "created_date": AnyIsoDateTimeString(), "dp_enabled_date": "2012-03-04T05:06:07", "dp_splits_agreed_date": AnyIsoDateTimeString(), }, ), ], ) def test_put_collaborator_success( auth_client, mocker, vendor_id, collaborator_id, payload, response ): """Testing successfully updating collaborator.""" mock_auth(mocker, vendor_id) result = auth_client.put( f"/collaborators/{collaborator_id}", data=json.dumps(payload), content_type="application/json", ) result_data = json.loads(result.data.decode()) assert result.status_code == 200 assert result_data == response