@@ -23,7 +23,16 @@ def mock_queue_client(self):
2323 queue_client .from_connection_string .return_value = mock_client
2424 yield mock_client
2525
26- def test_queue_is_created (self ):
26+ @pytest .fixture
27+ def mock_metrics (self ):
28+ with patch (
29+ "manage_breast_screening.notifications.services.queue.Metrics"
30+ ) as mock_metics :
31+ mock_instance = MagicMock ()
32+ mock_metics .return_value = mock_instance
33+ yield mock_metics , mock_instance
34+
35+ def test_queue_is_created (self , mock_metrics ):
2736 with patch (
2837 "manage_breast_screening.notifications.services.queue.QueueClient"
2938 ) as queue_client :
@@ -36,12 +45,49 @@ def test_queue_is_created(self):
3645 "qqq111" , "new-queue"
3746 )
3847 mock_client .create_queue .assert_called_once ()
48+ mock_metrics [0 ].assert_called_once_with (
49+ "new-queue" , "messages" , "Queue length"
50+ )
51+
52+ def test_add_to_queue_records_metrics (self , mock_queue_client , mock_metrics ):
53+ _ , mock_metrics_instance = mock_metrics
54+
55+ mock_queue_client .get_queue_properties .return_value .approximate_message_count = 82
56+
57+ queue = Queue ("new-queue" )
58+ queue .client = mock_queue_client
59+ queue .add ("testing123" )
60+
61+ mock_queue_client .send_message .assert_called_once_with ("testing123" )
62+ mock_queue_client .get_queue_properties .assert_called_once ()
63+ mock_metrics_instance .add .assert_called_once_with (82 )
64+
65+ def test_records_metrics_exception (self , mock_queue_client , mock_metrics ):
66+ _ , mock_metrics_instance = mock_metrics
67+ mock_queue_client .get_queue_properties .side_effect = Exception ("An exception" )
68+
69+ queue = Queue ("new-queue" )
70+ queue .client = mock_queue_client
71+ queue .recordMetrics ()
72+
73+ mock_metrics_instance .add .assert_not_called ()
74+
75+ def test_delete_from_queue_records_metrics (self , mock_queue_client , mock_metrics ):
76+ _ , mock_metrics_instance = mock_metrics
77+ mock_queue_client .get_queue_properties .return_value .approximate_message_count = 8
78+
79+ queue = Queue ("new-queue" )
80+ queue .client = mock_queue_client
81+ queue .add ("testing123" )
82+
83+ mock_queue_client .send_message .assert_called_once_with ("testing123" )
84+ mock_queue_client .get_queue_properties .assert_called_once ()
85+ mock_metrics_instance .add .assert_called_once_with (8 )
3986
4087 def test_add_to_queue (self , mock_queue_client ):
4188 Queue ("new-queue" ).add ("a message" )
4289
4390 mock_queue_client .send_message .assert_called_once_with ("a message" )
44- # mock_queue_client.
4591
4692 def test_message_status_updates_queue (self ):
4793 with patch (
0 commit comments