"""Logic layer test for image.""" from unittest.mock import MagicMock from images import response from images.logic import image from images.models import image as image_model def test_post_image_parses_prepare_for_bulk_upload( filename, monkeypatch, prepare_for_bulk_upload_message, valid_post_image_response): """Return the parsed response from workstation.""" monkeypatch.setattr( image_model, 'prepare_for_bulk_upload', MagicMock(return_value=response.Response( message=prepare_for_bulk_upload_message, status=200)) ) php_session_cookie_value = 'some_php_session_cookie' logic_response = image.post_image( filename, php_session_cookie_value) image_model.prepare_for_bulk_upload.assert_called_once_with( filename, php_session_cookie_value) assert logic_response.message == valid_post_image_response def test_post_image_prepare_for_bulk_upload_error(monkeypatch, filename): """Test prepare for bulk upload error on image post. Return a 500 reponse error when there was an issue with the prepare_for_bulk_upload call. """ model_layer_error_message = 'some_error_message' monkeypatch.setattr( image_model, 'prepare_for_bulk_upload', MagicMock(return_value=response.create_fatal_response( message=model_layer_error_message)) ) php_session_cookie_value = 'some_php_session_cookie' logic_response = image.post_image( filename, php_session_cookie_value) image_model.prepare_for_bulk_upload.assert_called_once_with( filename, php_session_cookie_value) assert logic_response.errors.get('message') == model_layer_error_message assert logic_response.status == 500