|
5 | 5 | from bugsnag.configuration import Configuration
|
6 | 6 | from bugsnag.notifier import _NOTIFIER_INFORMATION
|
7 | 7 | from bugsnag.sessiontracker import SessionTracker
|
8 |
| -from tests.utils import IntegrationTest |
| 8 | +from tests.utils import BrokenDelivery, IntegrationTest, QueueingDelivery |
9 | 9 | from unittest.mock import Mock
|
10 | 10 |
|
11 | 11 |
|
@@ -192,3 +192,37 @@ def test_session_tracker_starts_delivery_when_auto_capture_is_off(self):
|
192 | 192 | self.server.wait_for_session()
|
193 | 193 |
|
194 | 194 | assert self.server.sent_session_count == 1
|
| 195 | + |
| 196 | + def test_session_tracker_tracks_in_flight_requests(self): |
| 197 | + delivery = QueueingDelivery() |
| 198 | + client = Client( |
| 199 | + api_key='a05afff2bd2ffaf0ab0f52715bbdcffd', |
| 200 | + auto_capture_sessions=False, |
| 201 | + session_endpoint=self.server.sessions_url, |
| 202 | + asynchronous=False, |
| 203 | + delivery=delivery, |
| 204 | + ) |
| 205 | + |
| 206 | + client.session_tracker.start_session() |
| 207 | + client.session_tracker.send_sessions() |
| 208 | + |
| 209 | + request_tracker = client.session_tracker._request_tracker |
| 210 | + assert request_tracker.has_in_flight_requests() |
| 211 | + |
| 212 | + delivery.flush_request_queue() |
| 213 | + assert not request_tracker.has_in_flight_requests() |
| 214 | + |
| 215 | + def test_session_tracker_tracks_in_flight_requests_failure(self): |
| 216 | + client = Client( |
| 217 | + api_key='a05afff2bd2ffaf0ab0f52715bbdcffd', |
| 218 | + auto_capture_sessions=False, |
| 219 | + session_endpoint=self.server.sessions_url, |
| 220 | + asynchronous=False, |
| 221 | + delivery=BrokenDelivery(), |
| 222 | + ) |
| 223 | + |
| 224 | + client.session_tracker.start_session() |
| 225 | + client.session_tracker.send_sessions() |
| 226 | + |
| 227 | + request_tracker = client.session_tracker._request_tracker |
| 228 | + assert not request_tracker.has_in_flight_requests() |
0 commit comments