Details
-
Bug
-
Status: Closed
-
Trivial - P5
-
Resolution: Fixed
-
3.3
-
None
-
None
Description
MongoClient.event_listeners does not work as documented:
@property
|
def event_listeners(self): |
"""The event listeners registered for this client. |
|
See :mod:`~pymongo.monitoring` for details.
|
"""
|
return self._event_listeners.event_listeners |
One would expect for event_listeners to return the list of event listeners passed to MongoClient. However, this is what it actually does:
>>> from pymongo import event_loggers |
>>> listeners = [event_loggers.CommandLogger(), |
... event_loggers.HeartbeatLogger(),
|
... event_loggers.ServerLogger(),
|
... event_loggers.TopologyLogger(),
|
... event_loggers.ConnectionPoolLogger()]
|
>>> c = MongoClient(event_listeners=listeners) |
WARNING:root:No writable servers available.
|
WARNING:root:No readable servers available.
|
>>> c.event_listeners
|
<bound method _EventListeners.event_listeners of <pymongo.monitoring._EventListeners object at 0x7fea50a8d2e0>> |
>>> c.event_listeners()
|
([<pymongo.event_loggers.CommandLogger object at 0x7fea4d090d90>], [<pymongo.event_loggers.HeartbeatLogger object at 0x7fea50a74ca0>], [<pymongo.event_loggers.ServerLogger object at 0x7fea50a74c40>], [<pymongo.event_loggers.TopologyLogger object at 0x7fea50a74c10>]) |
So there are multiple issues:
- it's not actually a property
- it doesn't return a list
- it doesn't return the Connection Pool listener
The expected behavior should be a property that returns all the listeners in one list:
...
|
>>> c.event_listeners
|
[<pymongo.event_loggers.CommandLogger object at 0x7feeab090d90>, <pymongo.event_loggers.HeartbeatLogger object at 0x7feeaea40c10>, <pymongo.event_loggers.ServerLogger object at 0x7feeaea40cd0>, <pymongo.event_loggers.TopologyLogger object at 0x7feeaea40ee0>, <pymongo.event_loggers.ConnectionPoolLogger object at 0x7feeaea40e80>]
|
Attachments
Issue Links
- is caused by
-
PYTHON-1067 Implement SDAM Monitoring spec
-
- Closed
-
- related to
-
PYTHON-2164 Rethink MongoClient read only configuration attributes
-
- Closed
-