|
20 | 20 | import sys |
21 | 21 | import threading |
22 | 22 |
|
23 | | -from pymongo.monitoring import ServerHeartbeatFailedEvent, ServerHeartbeatStartedEvent |
24 | | - |
25 | 23 | sys.path[0:0] = [""] |
26 | 24 |
|
27 | 25 | from test import IntegrationTest, unittest |
|
52 | 50 | ) |
53 | 51 | from pymongo.hello import Hello, HelloCompat |
54 | 52 | from pymongo.helpers import _check_command_response, _check_write_command_response |
| 53 | +from pymongo.monitoring import ServerHeartbeatFailedEvent, ServerHeartbeatStartedEvent |
55 | 54 | from pymongo.server_description import SERVER_TYPE, ServerDescription |
56 | 55 | from pymongo.settings import TopologySettings |
57 | 56 | from pymongo.topology import Topology, _ErrorContext |
@@ -408,17 +407,21 @@ def handle(self): |
408 | 407 | self.request.close() |
409 | 408 |
|
410 | 409 |
|
411 | | -class TestHeartbeatStartOrdering(unittest.TestCase): |
412 | | - def start_server(self, events): |
413 | | - server = socketserver.TCPServer(("localhost", 9999), MockTCPHandler) |
414 | | - server.events = events |
415 | | - server.handle_request() |
416 | | - server.server_close() |
| 410 | +class TCPServer(socketserver.TCPServer): |
| 411 | + allow_reuse_address = True |
417 | 412 |
|
| 413 | + def handle_request_and_shutdown(self): |
| 414 | + self.handle_request() |
| 415 | + self.server_close() |
| 416 | + |
| 417 | + |
| 418 | +class TestHeartbeatStartOrdering(unittest.TestCase): |
418 | 419 | def test_heartbeat_start_ordering(self): |
419 | 420 | events = [] |
420 | 421 | listener = HeartbeatEventsListListener(events) |
421 | | - server_thread = threading.Thread(target=self.start_server, args=(events,)) |
| 422 | + server = TCPServer(("localhost", 9999), MockTCPHandler) |
| 423 | + server.events = events |
| 424 | + server_thread = threading.Thread(target=server.handle_request_and_shutdown) |
422 | 425 | server_thread.start() |
423 | 426 | _c = MongoClient( |
424 | 427 | "mongodb://localhost:9999", serverSelectionTimeoutMS=500, event_listeners=(listener,) |
|
0 commit comments