"""Functional tests for track_sample handler.""" 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/100/samples' valid_data = json.dumps(valid_track_sample_request) expected = {'foo': 'bar'} mocker.patch.object( sample_logic, 'create_track_sample', return_value=response.Response( message=expected, status=200)) actual_response = client.post(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/100/samples' 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, 'create_track_sample', return_value=expected) actual_response = client.post(endpoint, data=valid_data) assert actual_response response_json = json.loads(actual_response.data.decode()) assert response_json == expected.errors