Skip to content

Commit a36ae83

Browse files
committed
NRL-1811 add test scenarios for testpatients not generating warnings
1 parent 27575fa commit a36ae83

File tree

2 files changed

+144
-0
lines changed

2 files changed

+144
-0
lines changed

api/producer/createDocumentReference/tests/test_create_document_reference.py

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1875,3 +1875,89 @@ def test_create_logs_for_expected_multi_pointer(
18751875
assert not any(
18761876
call[0][0].name == "PROCREATE012" for call in mock_logger.log.call_args_list
18771877
)
1878+
1879+
1880+
@mock_aws
1881+
@mock_repository
1882+
@freeze_uuid("00000000-0000-0000-0000-000000000001")
1883+
@patch("api.producer.createDocumentReference.create_document_reference.logger")
1884+
def test_create_logs_for_test_patient_multi_pointer(
1885+
mock_logger: Mock,
1886+
repository: DocumentPointerRepository,
1887+
):
1888+
doc_ref = load_document_reference("Y05868-736253002-Valid-with-master-id")
1889+
doc_ref.subject.identifier.value = "9999999999"
1890+
doc_pointer = DocumentPointer.from_document_reference(doc_ref)
1891+
repository.create(doc_pointer)
1892+
1893+
event = create_test_api_gateway_event(
1894+
headers=create_headers(),
1895+
body=doc_ref.model_dump_json(exclude_none=True),
1896+
)
1897+
1898+
result = handler(event, create_mock_context())
1899+
body = result.pop("body")
1900+
1901+
assert result == {
1902+
"statusCode": "201",
1903+
"headers": {
1904+
"Location": "/DocumentReference/Y05868-00000000-0000-0000-0000-000000000001",
1905+
**default_response_headers(),
1906+
},
1907+
"isBase64Encoded": False,
1908+
}
1909+
1910+
parsed_body = json.loads(body)
1911+
1912+
assert parsed_body == {
1913+
"resourceType": "OperationOutcome",
1914+
"issue": [
1915+
{
1916+
"severity": "information",
1917+
"code": "informational",
1918+
"details": {
1919+
"coding": [
1920+
{
1921+
"code": "RESOURCE_CREATED",
1922+
"display": "Resource created",
1923+
"system": "https://fhir.nhs.uk/ValueSet/NRL-ResponseCode",
1924+
}
1925+
]
1926+
},
1927+
"diagnostics": "The document has been created",
1928+
}
1929+
],
1930+
}
1931+
1932+
assert any(
1933+
call[0][0].name == "PROCREATE012" for call in mock_logger.log.call_args_list
1934+
)
1935+
1936+
assert {
1937+
"existing_pointers_count": 1,
1938+
"nhs_number": (
1939+
doc_ref.subject.identifier.value
1940+
if doc_ref.subject and doc_ref.subject.identifier
1941+
else None
1942+
),
1943+
"pointer_type": (
1944+
f"{doc_ref.type.coding[0].system}|{doc_ref.type.coding[0].code}"
1945+
if doc_ref.type and doc_ref.type.coding
1946+
else None
1947+
),
1948+
"custodian": (
1949+
doc_ref.custodian.identifier.value
1950+
if doc_ref.custodian and doc_ref.custodian.identifier
1951+
else None
1952+
),
1953+
"new_pointer_id": "Y05868-00000000-0000-0000-0000-000000000001",
1954+
"new_pointer_master_id": (
1955+
doc_ref.masterIdentifier.value if doc_ref.masterIdentifier else None
1956+
),
1957+
} == [
1958+
call[1:][0]
1959+
for call in mock_logger.log.call_args_list
1960+
if call[0][0].name == "PROCREATE012"
1961+
][
1962+
0
1963+
]

api/producer/upsertDocumentReference/tests/test_upsert_document_reference.py

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1842,3 +1842,61 @@ def test_upsert_logs_for_expected_multi_pointer(
18421842
assert not any(
18431843
call[0][0].name == "PROUPSERT012" for call in mock_logger.log.call_args_list
18441844
)
1845+
1846+
1847+
@mock_aws
1848+
@mock_repository
1849+
@patch("api.producer.upsertDocumentReference.upsert_document_reference.logger")
1850+
def test_upsert_logs_for_test_patient_multi_pointer(
1851+
mock_logger: Mock,
1852+
repository: DocumentPointerRepository,
1853+
):
1854+
doc_ref = load_document_reference("Y05868-736253002-Valid-with-master-id")
1855+
doc_ref.subject.identifier.value = "9999999999"
1856+
doc_pointer = DocumentPointer.from_document_reference(doc_ref)
1857+
repository.create(doc_pointer)
1858+
1859+
doc_ref.id = "Y05868-99999-99999-999999-02"
1860+
1861+
event = create_test_api_gateway_event(
1862+
headers=create_headers(),
1863+
body=doc_ref.model_dump_json(exclude_none=True),
1864+
)
1865+
1866+
result = handler(event, create_mock_context())
1867+
body = result.pop("body")
1868+
1869+
assert result == {
1870+
"statusCode": "201",
1871+
"headers": {
1872+
"Location": "/DocumentReference/Y05868-99999-99999-999999-02",
1873+
**default_response_headers(),
1874+
},
1875+
"isBase64Encoded": False,
1876+
}
1877+
1878+
parsed_body = json.loads(body)
1879+
1880+
assert parsed_body == {
1881+
"resourceType": "OperationOutcome",
1882+
"issue": [
1883+
{
1884+
"severity": "information",
1885+
"code": "informational",
1886+
"details": {
1887+
"coding": [
1888+
{
1889+
"code": "RESOURCE_CREATED",
1890+
"display": "Resource created",
1891+
"system": "https://fhir.nhs.uk/ValueSet/NRL-ResponseCode",
1892+
}
1893+
]
1894+
},
1895+
"diagnostics": "The document has been created",
1896+
}
1897+
],
1898+
}
1899+
1900+
assert not any(
1901+
call[0][0].name == "PROUPSERT012" for call in mock_logger.log.call_args_list
1902+
)

0 commit comments

Comments
 (0)