From 4803ae40e1d810a169b3ecd313b48be78534b28b Mon Sep 17 00:00:00 2001 From: Daniel Roth Date: Fri, 3 Jul 2026 14:23:42 +0000 Subject: [PATCH] =?UTF-8?q?Abri=20log=5Fjob=20sends=20the=20spec's=20recor?= =?UTF-8?q?ded=20LogJob=20envelope=20to=20the=20relay=20endpoint=20?= =?UTF-8?q?=F0=9F=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- tests/infrastructure/abri/test_abri_client.py | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/infrastructure/abri/test_abri_client.py b/tests/infrastructure/abri/test_abri_client.py index 40eaed7a2..ef91dee1d 100644 --- a/tests/infrastructure/abri/test_abri_client.py +++ b/tests/infrastructure/abri/test_abri_client.py @@ -1,3 +1,4 @@ +import xml.etree.ElementTree as ET from datetime import date from pathlib import Path from unittest.mock import MagicMock, patch @@ -75,3 +76,26 @@ def test_log_job_returns_job_logged_with_openhousing_job_number( "Short Description example job." ), ) + + +def test_log_job_sends_the_recorded_logjob_envelope_to_the_relay_endpoint( + client: AbriClient, mock_session: MagicMock +) -> None: + # Arrange + mock_session.post.return_value.content = _load_fixture( + "abri_relay_logjob_success_response.xml" + ) + + # Act + client.log_job(_spec_example_request()) + + # Assert + # Fixture is the spec's recorded request example, except resource_group is + # "Surveyors" (the documented default) where the example used "surveyors". + (url,) = mock_session.post.call_args.args + sent_body: bytes = mock_session.post.call_args.kwargs["data"] + expected_body = _load_fixture("abri_relay_logjob_request_example.xml") + assert url == ENDPOINT_URL + assert ET.canonicalize(xml_data=sent_body) == ET.canonicalize( + xml_data=expected_body + )