@@ -230,27 +230,65 @@ def test_delet_by_id_should_raise_exception_when_no_match_found(
230230 assert "Record not found" in str (exec .value )
231231
232232
233+ def test_delete_many_with_a_pseudonym_logs_patient_scope (
234+ referral_service : ReferralService ,
235+ key_info_service : KeyInfoService ,
236+ ura_number : UraNumber ,
237+ caplog : pytest .LogCaptureFixture ,
238+ ) -> None :
239+ store_referral (referral_service , key_info_service , ura_number )
240+
241+ with caplog .at_level (logging .INFO ):
242+ deleted = referral_service .delete_many (ura_number , encrypted_pseudonym = PSEUDONYM , source = SOURCE )
243+
244+ (fields ,) = logged_fields (caplog , Log .ALL_PATIENT_REFERRALS_DELETED )
245+ assert deleted == 1
246+ assert fields ["pseudonym_hash" ] == str (PSEUDONYM )
247+ assert fields ["deleted_count" ] == 1
248+
249+
250+ def test_delete_many_without_a_pseudonym_logs_ura_scope (
251+ referral_service : ReferralService ,
252+ key_info_service : KeyInfoService ,
253+ ura_number : UraNumber ,
254+ caplog : pytest .LogCaptureFixture ,
255+ ) -> None :
256+ store_referral (referral_service , key_info_service , ura_number )
257+
258+ with caplog .at_level (logging .INFO ):
259+ referral_service .delete_many (ura_number , source = SOURCE )
260+
261+ (fields ,) = logged_fields (caplog , Log .ALL_URA_REFERRALS_DELETED )
262+ assert fields ["deleted_count" ] == 1
263+
264+
265+ def test_delete_many_logs_nothing_when_nothing_matched (
266+ referral_service : ReferralService ,
267+ ura_number : UraNumber ,
268+ caplog : pytest .LogCaptureFixture ,
269+ ) -> None :
270+ with caplog .at_level (logging .INFO ):
271+ deleted = referral_service .delete_many (ura_number , encrypted_pseudonym = PSEUDONYM )
272+
273+ assert deleted == 0
274+ assert logged_fields (caplog , Log .ALL_PATIENT_REFERRALS_DELETED ) == []
275+ assert logged_fields (caplog , Log .ALL_URA_REFERRALS_DELETED ) == []
276+
277+
233278def test_localize_logs_success_with_the_pseudonym_and_result_count (
234279 referral_service : ReferralService ,
235280 key_info_service : KeyInfoService ,
236281 ura_number : UraNumber ,
237282 caplog : pytest .LogCaptureFixture ,
238283) -> None :
239- key_info = key_info_service .add_one ("label-1" , "AES_CBC" )
240- pseudonym = EncryptedPseudonym ("ps-1" , "123" )
241- referral_service .add_one (
242- encrypted_pseudonym = pseudonym ,
243- ura_number = ura_number ,
244- source = "SomeDevice" ,
245- key_id = key_info .id ,
246- )
284+ store_referral (referral_service , key_info_service , ura_number )
247285
248286 with caplog .at_level (logging .INFO ):
249- _ , referrals = referral_service .localize (pseudonym , REQUESTING_URA )
287+ _ , referrals = referral_service .localize (PSEUDONYM , REQUESTING_URA )
250288
251289 (fields ,) = logged_fields (caplog , Log .LOCALIZATION_SUCCESS )
252290 assert len (referrals ) == 1
253- assert fields ["pseudonym_hash" ] == str (pseudonym )
291+ assert fields ["pseudonym_hash" ] == str (PSEUDONYM )
254292 assert fields ["result_count" ] == 1
255293
256294
@@ -259,8 +297,47 @@ def test_localize_logs_no_match_with_a_zero_result_count(
259297 caplog : pytest .LogCaptureFixture ,
260298) -> None :
261299 with caplog .at_level (logging .INFO ):
262- _ , referrals = referral_service .localize (EncryptedPseudonym ( "ps-1" , "123" ) , REQUESTING_URA )
300+ _ , referrals = referral_service .localize (PSEUDONYM , REQUESTING_URA )
263301
264302 (fields ,) = logged_fields (caplog , Log .LOCALIZATION_NO_MATCH )
265303 assert len (referrals ) == 0
266304 assert fields ["result_count" ] == 0
305+
306+
307+ def test_localize_does_not_log_a_query (
308+ referral_service : ReferralService ,
309+ caplog : pytest .LogCaptureFixture ,
310+ ) -> None :
311+ with caplog .at_level (logging .INFO ):
312+ referral_service .localize (PSEUDONYM , REQUESTING_URA )
313+
314+ assert logged_fields (caplog , Log .REFERRALS_QUERIED ) == []
315+
316+
317+ def test_query_logs_the_result_count (
318+ referral_service : ReferralService ,
319+ key_info_service : KeyInfoService ,
320+ ura_number : UraNumber ,
321+ caplog : pytest .LogCaptureFixture ,
322+ ) -> None :
323+ store_referral (referral_service , key_info_service , ura_number )
324+
325+ with caplog .at_level (logging .INFO ):
326+ _ , referrals = referral_service .query (ura_number , encrypted_pseudonym = PSEUDONYM )
327+
328+ (fields ,) = logged_fields (caplog , Log .REFERRALS_QUERIED )
329+ assert len (referrals ) == 1
330+ assert fields ["result_count" ] == 1
331+
332+
333+ def test_query_is_scoped_to_the_callers_ura (
334+ referral_service : ReferralService ,
335+ key_info_service : KeyInfoService ,
336+ ura_number : UraNumber ,
337+ ) -> None :
338+ store_referral (referral_service , key_info_service , ura_number )
339+
340+ total , referrals = referral_service .query (REQUESTING_URA , encrypted_pseudonym = PSEUDONYM )
341+
342+ assert total == 0
343+ assert len (referrals ) == 0
0 commit comments