Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion lambdas/services/post_fhir_document_reference_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,10 @@ def process_fhir_document_reference(

except (ValidationError, InvalidNhsNumberException) as e:
logger.error(f"FHIR document validation error: {str(e)}")
raise DocumentRefException(400, LambdaError.DocRefNoParse)
base_error = LambdaError.DocRefNoParse.value # Get the dict
error_payload = {**base_error, "details": str(e)}
raise DocumentRefException(400, error_payload)

except ClientError as e:
logger.error(f"AWS client error: {str(e)}")
raise DocumentRefException(500, LambdaError.InternalServerError)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,24 +88,26 @@ def condition(response_json):


@pytest.mark.parametrize(
"nhs_number,expected_status,expected_code,expected_diagnostics",
"nhs_number,expected_status,expected_code,expected_diagnostics,expected_details",
[
(
"9999999993",
400,
"VALIDATION_ERROR",
"Failed to parse document upload request data",
"Invalid NHS number format",
),
(
"123",
400,
"VALIDATION_ERROR",
"Failed to parse document upload request data",
"Invalid NHS number length",
),
],
)
def test_search_edge_cases(
nhs_number, expected_status, expected_code, expected_diagnostics
nhs_number, expected_status, expected_code, expected_diagnostics, expected_details
):
record = {
"ods": "H81109",
Expand All @@ -120,11 +122,13 @@ def test_search_edge_cases(
assert response.status_code == expected_status

body = response.json()
print('body:', body)
issue = body["issue"][0]
details = issue.get("details", {})
coding = details.get("coding", [{}])[0]
assert coding.get("code") == expected_code
assert issue.get("diagnostics") == expected_diagnostics
assert details.get("text") == expected_details


def test_forbidden_with_invalid_cert(temp_cert_and_key):
Expand Down
Loading