|
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