"""Module with tests for post_job_status method.""" from unittest.mock import patch from unittest.mock import Mock import pytest import common_config import config import index # noqa @pytest.fixture def fixture_correct_post_job_status_args(): """Fixture with correct post_job_status call args.""" return { 'transcoding_job_id': 10, 'status': 'some_status', 'status_description': 'some_description', 'output_bucket': 'bucket', 'output_key': 'filename', 'duration': 12345 } @patch('owsrequest.request.process') def test_post_job_status_success( process, fixture_correct_post_job_status_args): """Test for post_job_status success.""" process.return_value = Mock(status_code=200) result = index.post_job_status(**fixture_correct_post_job_status_args) assert result process.assert_called_with( application=config.APPLICATION_NAME, environment=common_config.ENVIRONMENT, method='POST', service_name=common_config.OWS_TRANSCODING_SERVICE_NAME, path='/transcoding-job/10/status', json={ 'status': fixture_correct_post_job_status_args['status'], 'status_description': fixture_correct_post_job_status_args[ 'status_description'], 'duration': fixture_correct_post_job_status_args['duration'] } ) @patch('owsrequest.request.process') def test_post_job_status_server_error( process, fixture_correct_post_job_status_args): """Test for post_job_status ows-transcoding 500 failure.""" process.return_value = Mock(status_code=500, text='error_text') with pytest.raises(Exception) as exc_info: index.post_job_status(**fixture_correct_post_job_status_args) expected_error = 'Post job status failed with code 500; text error_text' assert exc_info.value.args[0] == expected_error @patch('owsrequest.request.process') def test_post_job_status_request_exception_failure( process, fixture_correct_post_job_status_args): """Test for post_job_status ows-transcoding exception failure.""" expected_error = 'some_error' process.side_effect = Exception(expected_error) with pytest.raises(Exception) as exc_info: index.post_job_status(**fixture_correct_post_job_status_args) assert exc_info.value.args[0] == expected_error