Skip to content

Commit 92d103d

Browse files
committed
Add new unit testing
1 parent 327ea5b commit 92d103d

File tree

1 file changed

+48
-2
lines changed
  • manage_breast_screening/notifications/tests/services

1 file changed

+48
-2
lines changed

manage_breast_screening/notifications/tests/services/test_queue.py

Lines changed: 48 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)