PYTHON-2966 Make MongoClient.event_listeners work as expected (#761)
This commit is contained in:
parent
d77cb674b6
commit
f4eb8f93fd
@ -895,7 +895,7 @@ class MongoClient(common.BaseObject):
|
||||
|
||||
See :mod:`~pymongo.monitoring` for details.
|
||||
"""
|
||||
return self._event_listeners.event_listeners
|
||||
return self._event_listeners.event_listeners()
|
||||
|
||||
@property
|
||||
def topology_description(self):
|
||||
|
||||
@ -1318,10 +1318,11 @@ class _EventListeners(object):
|
||||
|
||||
def event_listeners(self):
|
||||
"""List of registered event listeners."""
|
||||
return (self.__command_listeners[:],
|
||||
self.__server_heartbeat_listeners[:],
|
||||
self.__server_listeners[:],
|
||||
self.__topology_listeners[:])
|
||||
return (self.__command_listeners[:] +
|
||||
self.__server_heartbeat_listeners[:] +
|
||||
self.__server_listeners[:] +
|
||||
self.__topology_listeners[:] +
|
||||
self.__cmap_listeners)
|
||||
|
||||
def publish_command_start(self, command, database_name,
|
||||
request_id, connection_id, op_id=None,
|
||||
|
||||
@ -35,7 +35,7 @@ from bson.codec_options import CodecOptions, TypeEncoder, TypeRegistry
|
||||
from bson.son import SON
|
||||
from bson.tz_util import utc
|
||||
import pymongo
|
||||
from pymongo import message, monitoring
|
||||
from pymongo import event_loggers, message, monitoring
|
||||
from pymongo.command_cursor import CommandCursor
|
||||
from pymongo.common import CONNECT_TIMEOUT, _UUID_REPRESENTATIONS
|
||||
from pymongo.compression_support import _HAVE_SNAPPY, _HAVE_ZSTD
|
||||
@ -463,6 +463,17 @@ class ClientUnitTest(unittest.TestCase):
|
||||
with self.assertRaises(InvalidURI):
|
||||
MongoClient(ssl=True, tls=False)
|
||||
|
||||
def test_event_listeners(self):
|
||||
c = MongoClient(event_listeners=[], connect=False)
|
||||
self.assertEqual(c.event_listeners, [])
|
||||
listeners = [event_loggers.CommandLogger(),
|
||||
event_loggers.HeartbeatLogger(),
|
||||
event_loggers.ServerLogger(),
|
||||
event_loggers.TopologyLogger(),
|
||||
event_loggers.ConnectionPoolLogger()]
|
||||
c = MongoClient(event_listeners=listeners, connect=False)
|
||||
self.assertEqual(c.event_listeners, listeners)
|
||||
|
||||
|
||||
class TestClient(IntegrationTest):
|
||||
def test_multiple_uris(self):
|
||||
|
||||
@ -104,7 +104,7 @@ class TestSession(IntegrationTest):
|
||||
self.assertLessEqual(used_lsids, current_lsids)
|
||||
|
||||
def _test_ops(self, client, *ops):
|
||||
listener = client.event_listeners()[0][0]
|
||||
listener = client.event_listeners[0]
|
||||
|
||||
for f, args, kw in ops:
|
||||
with client.start_session() as s:
|
||||
@ -626,7 +626,7 @@ class TestSession(IntegrationTest):
|
||||
lambda cursor: list(cursor))
|
||||
|
||||
def _test_unacknowledged_ops(self, client, *ops):
|
||||
listener = client.event_listeners()[0][0]
|
||||
listener = client.event_listeners[0]
|
||||
|
||||
for f, args, kw in ops:
|
||||
with client.start_session() as s:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user