"""Functional tests for PATCH track_sample.""" import json from oto import response from backend.constants import error from backend.handlers.track_sample_handlers import sample_logic from backend.utils import api as api_utils def test_create_new_track_sample(client, mocker, valid_track_sample_request): """Test POST track_sample when logic returns success response.""" endpoint = '/track/samples/1' valid_data = json.dumps(valid_track_sample_request) expected = {'foo': 'bar'} mocker.patch.object( sample_logic, 'update_sample_data', return_value=response.Response( message=expected)) actual_response = client.patch(endpoint, data=valid_data) assert actual_response response_json = json.loads(actual_response.data.decode()) assert response_json == expected def test_create_track_sample_error(client, mocker, valid_track_sample_request): """Test POST track_sample when logic returns validation errors.""" endpoint = '/track/samples/1' valid_data = json.dumps(valid_track_sample_request) expected = api_utils.create_validation_error_response( error.VALIDATION_ERROR_INVALID_FIELD_MSG, 'foo') mocker.patch.object( sample_logic, 'update_sample_data', return_value=expected) actual_response = client.patch(endpoint, data=valid_data) assert actual_response response_json = json.loads(actual_response.data.decode()) assert response_json == expected.errors