Skip to content

Commit 961c4ae

Browse files
Merge pull request #957 from NHSDigital/feature/axkr1-NRL-1512-fix-log-references
NRL-1512 Fix log references reported incorrectly
2 parents cda4df5 + b4270bd commit 961c4ae

File tree

5 files changed

+40
-3
lines changed

5 files changed

+40
-3
lines changed

api/consumer/searchDocumentReference/tests/test_search_document_reference_consumer.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import json
2+
from unittest.mock import patch
23

34
from moto import mock_aws
45

@@ -720,7 +721,10 @@ def test_search_document_reference_invalid_category(
720721

721722
@mock_aws
722723
@mock_repository
723-
def test_search_document_reference_invalid_json(repository: DocumentPointerRepository):
724+
@patch("api.consumer.searchDocumentReference.search_document_reference.logger")
725+
def test_search_document_reference_invalid_json(
726+
mock_logger, repository: DocumentPointerRepository
727+
):
724728
doc_ref = load_document_reference("Y05868-736253002-Valid")
725729
doc_pointer = DocumentPointer.from_document_reference(doc_ref)
726730
repository.create(doc_pointer)
@@ -783,3 +787,7 @@ def test_search_document_reference_invalid_json(repository: DocumentPointerRepos
783787
{"resource": expected_operation_outcome},
784788
],
785789
}
790+
791+
assert any(
792+
call[0][0].name == "CONSEARCH005" for call in mock_logger.log.call_args_list
793+
)

api/consumer/searchPostDocumentReference/tests/test_search_post_document_reference_consumer.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import json
2+
from unittest.mock import patch
23

34
from moto import mock_aws
45

@@ -480,8 +481,9 @@ def test_search_document_reference_invalid_category(
480481

481482
@mock_aws
482483
@mock_repository
484+
@patch("api.consumer.searchPostDocumentReference.search_post_document_reference.logger")
483485
def test_search_post_document_reference_invalid_json_adds_operation_outcome(
484-
repository: DocumentPointerRepository,
486+
mock_logger, repository: DocumentPointerRepository
485487
):
486488
doc_ref = load_document_reference("Y05868-736253002-Valid")
487489
doc_pointer = DocumentPointer.from_document_reference(doc_ref)
@@ -547,3 +549,7 @@ def test_search_post_document_reference_invalid_json_adds_operation_outcome(
547549
{"resource": expected_operation_outcome},
548550
],
549551
}
552+
553+
assert any(
554+
call[0][0].name == "CONPOSTSEARCH005" for call in mock_logger.log.call_args_list
555+
)

api/producer/searchDocumentReference/tests/test_search_document_reference_producer.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import json
2+
from unittest.mock import patch
23

34
from moto import mock_aws
45

@@ -457,7 +458,10 @@ def test_search_document_reference_filters_by_pointer_types(
457458

458459
@mock_aws
459460
@mock_repository
460-
def test_search_document_reference_invalid_json(repository: DocumentPointerRepository):
461+
@patch("api.producer.searchDocumentReference.search_document_reference.logger")
462+
def test_search_document_reference_invalid_json(
463+
mock_logger, repository: DocumentPointerRepository
464+
):
461465
doc_ref = load_document_reference("Y05868-736253002-Valid")
462466
doc_pointer = DocumentPointer.from_document_reference(doc_ref)
463467
repository.create(doc_pointer)
@@ -514,3 +518,7 @@ def test_search_document_reference_invalid_json(repository: DocumentPointerRepos
514518
{"resource": expected_operation_outcome},
515519
],
516520
}
521+
522+
assert any(
523+
call[0][0].name == "PROSEARCH005" for call in mock_logger.log.call_args_list
524+
)

api/producer/searchPostDocumentReference/tests/test_search_post_document_reference_producer.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import json
2+
from unittest.mock import patch
23

34
from moto import mock_aws
45

@@ -474,7 +475,9 @@ def test_search_document_reference_filters_by_pointer_types(
474475

475476
@mock_aws
476477
@mock_repository
478+
@patch("api.producer.searchPostDocumentReference.search_post_document_reference.logger")
477479
def test_search_post_document_reference_invalid_json_adds_operation_outcome(
480+
mock_logger,
478481
repository: DocumentPointerRepository,
479482
):
480483
doc_ref = load_document_reference("Y05868-736253002-Valid")
@@ -535,3 +538,7 @@ def test_search_post_document_reference_invalid_json_adds_operation_outcome(
535538
{"resource": expected_operation_outcome},
536539
],
537540
}
541+
542+
assert any(
543+
call[0][0].name == "PROPOSTSEARCH005" for call in mock_logger.log.call_args_list
544+
)

layer/nrlf/core/log_references.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@ class _Reference:
77
level: str
88
message: str
99

10+
# WARNING: This makes all _Reference objects unequal unless they are the same instance.
11+
# It's fine for our use case, but be cautious if you compare _Reference objects.
12+
def __eq__(self, other):
13+
return self is other
14+
15+
def __hash__(self):
16+
return id(self)
17+
1018

1119
class LogReference(Enum):
1220
# Request Handler Logs

0 commit comments

Comments
 (0)