Skip to content

Commit 88e86f6

Browse files
authored
PYTHON-2057 Make 'name' a required argument for DriverInfo class (#718)
1 parent 6913738 commit 88e86f6

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
@@ -100,6 +100,7 @@ Breaking Changes in 4.0
100100
- Removed :class:`bson.binary.UUIDLegacy`.
101101
- The "tls" install extra is no longer necessary or supported and will be
102102
ignored by pip.
103+
- ``name`` is now a required argument for the :class:`pymongo.driver_info.DriverInfo` class.
103104

104105
Notable improvements
105106
....................

doc/migrate-to-pymongo4.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -725,3 +725,10 @@ pymongo.message helpers are removed
725725
Removed :meth:`pymongo.message.delete`, :meth:`pymongo.message.get_more`,
726726
:meth:`pymongo.message.insert`, :meth:`pymongo.message.kill_cursors`,
727727
:meth:`pymongo.message.query`, and :meth:`pymongo.message.update`.
728+
729+
730+
Name is a required argument for pymongo.driver_info.DriverInfo
731+
..............................................................
732+
733+
``name`` is now a required argument for the :class:`pymongo.driver_info.DriverInfo` class.
734+

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)