Skip to content

Commit 0b64a4f

Browse files
committed
PYTHON-2057 Make 'name' a required argument for DriverInfo class (mongodb#718)
1 parent 4483cdc commit 0b64a4f

File tree

4 files changed

+11
-1
lines changed

4 files changed

+11
-1
lines changed

doc/changelog.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ Breaking Changes in 4.0
105105
allowing for the automatic discovery of replica sets. This means that if you
106106
want a direct connection to a single server you must pass
107107
``directConnection=True`` as a URI option or keyword argument.
108+
- ``name`` is now a required argument for the :class:`pymongo.driver_info.DriverInfo` class.
108109

109110
Notable improvements
110111
....................

doc/migrate-to-pymongo4.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -735,3 +735,10 @@ pymongo.message helpers are removed
735735
Removed :meth:`pymongo.message.delete`, :meth:`pymongo.message.get_more`,
736736
:meth:`pymongo.message.insert`, :meth:`pymongo.message.kill_cursors`,
737737
:meth:`pymongo.message.query`, and :meth:`pymongo.message.update`.
738+
739+
740+
Name is a required argument for pymongo.driver_info.DriverInfo
741+
..............................................................
742+
743+
``name`` is now a required argument for the :class:`pymongo.driver_info.DriverInfo` class.
744+

pymongo/driver_info.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class DriverInfo(namedtuple('DriverInfo', ['name', 'version', 'platform'])):
2626
like 'MyDriver', '1.2.3', 'some platform info'. Any of these strings may be
2727
None to accept PyMongo's default.
2828
"""
29-
def __new__(cls, name=None, version=None, platform=None):
29+
def __new__(cls, name, version=None, platform=None):
3030
self = super(DriverInfo, cls).__new__(cls, name, version, platform)
3131
for key, value in self._asdict().items():
3232
if value is not None and not isinstance(value, str):

test/test_client.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,8 @@ def test_metadata(self):
305305
self.assertRaises(ValueError, MongoClient, appname='x' * 129)
306306
# Bad "driver" options.
307307
self.assertRaises(TypeError, DriverInfo, 'Foo', 1, 'a')
308+
self.assertRaises(TypeError, DriverInfo, version="1", platform='a')
309+
self.assertRaises(TypeError, DriverInfo)
308310
self.assertRaises(TypeError, MongoClient, driver=1)
309311
self.assertRaises(TypeError, MongoClient, driver='abc')
310312
self.assertRaises(TypeError, MongoClient, driver=('Foo', '1', 'a'))

0 commit comments

Comments
 (0)