diff --git a/tests/abri/abri_relay_canceljob_errordetails_response.xml b/tests/abri/abri_relay_canceljob_errordetails_response.xml new file mode 100644 index 000000000..674e0bfa9 --- /dev/null +++ b/tests/abri/abri_relay_canceljob_errordetails_response.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/tests/abri/abri_relay_canceljob_relayerror_response.xml b/tests/abri/abri_relay_canceljob_relayerror_response.xml new file mode 100644 index 000000000..225563172 --- /dev/null +++ b/tests/abri/abri_relay_canceljob_relayerror_response.xml @@ -0,0 +1,6 @@ + + + false + RelayError + Job_no 1019905 is invalid. Job not found. + diff --git a/tests/infrastructure/abri/test_abri_client.py b/tests/infrastructure/abri/test_abri_client.py index 5def9f129..7c1d6ff99 100644 --- a/tests/infrastructure/abri/test_abri_client.py +++ b/tests/infrastructure/abri/test_abri_client.py @@ -129,6 +129,49 @@ def test_log_job_sends_the_recorded_logjob_envelope_to_the_relay_endpoint( ) +# --- abandon_job: rejection (canceljob's own error-details shape) --- + + +def test_abandon_job_returns_rejection_from_the_canceljob_error_details_document( + client: AbriClient, mock_session: MagicMock +) -> None: + # Arrange: canceljob signals failure as an empty cancellation collection + # carrying an ErrorDetails element, not the shared failure envelope. + mock_session.post.return_value.content = _load_fixture( + "abri_relay_canceljob_errordetails_response.xml" + ) + + # Act + result = client.abandon_job(_spec_example_abandon_request()) + + # Assert + assert result == AbriRequestRejected( + code="RelayError", + message="Job_no 1019905 is invalid. Job not found.", + ) + + +# --- abandon_job: rejection (the shared failure envelope) --- + + +def test_abandon_job_returns_rejection_from_the_shared_failure_envelope( + client: AbriClient, mock_session: MagicMock +) -> None: + # Arrange + mock_session.post.return_value.content = _load_fixture( + "abri_relay_canceljob_relayerror_response.xml" + ) + + # Act + result = client.abandon_job(_spec_example_abandon_request()) + + # Assert + assert result == AbriRequestRejected( + code="RelayError", + message="Job_no 1019905 is invalid. Job not found.", + ) + + # --- log_job: rejection ---