Skip to content

Commit ef37c3e

Browse files
committed
PYTHON-1714 Add c extension use to client metadata
- Fix tests - Truncate long lines - Test c extension driver info
1 parent 35c7f49 commit ef37c3e

File tree

2 files changed

+44
-13
lines changed

2 files changed

+44
-13
lines changed

test/asynchronous/test_client.py

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -348,18 +348,23 @@ def _test_metadata(self, add_meta, *args, **kwargs):
348348
metadata.update(add_meta)
349349
client = self.simple_client(*args, **kwargs)
350350
options = client.options
351-
self.assertIn(metadata["driver"]["name"], options.pool_options.metadata["driver"]["name"])
351+
self.assertIn(metadata["driver"]["name"],
352+
options.pool_options.metadata["driver"]["name"])
352353
if "application" in metadata.keys():
353-
self.assertEqual(metadata["application"]["name"], options.pool_options.metadata["application"]["name"])
354+
self.assertEqual(metadata["application"]["name"],
355+
options.pool_options.metadata["application"]["name"])
354356

355357
self.assertLessEqual(
356358
len(bson.encode(options.pool_options.metadata)),
357359
_MAX_METADATA_SIZE,
358360
)
359361

360362
async def test_metadata(self):
361-
self._test_metadata({"driver": {"name": "async"}, "application": {"name": "foobar"}}, "mongodb://foo:27017/?appname=foobar&connect=false")
362-
self._test_metadata({"driver": {"name": "async"}}, "foo", 27017, appname="foobar", connect=False)
363+
self._test_metadata({"driver": {"name": "async"},
364+
"application": {"name": "foobar"}},
365+
"mongodb://foo:27017/?appname=foobar&connect=false")
366+
self._test_metadata({"driver": {"name": "async"}}, "foo", 27017,
367+
appname="foobar", connect=False)
363368

364369
# No error
365370
self._test_metadata({}, appname="x" * 128)
@@ -380,12 +385,24 @@ async def test_metadata(self):
380385
self._test_metadata({}, driver=("Foo", "1", "a"))
381386

382387
# Test appending to driver info.
383-
self._test_metadata({"driver": {"name": "FooDriver", "version": "{}|1.2.3".format(_METADATA["driver"]["version"])}}, "foo", 27017, appname="foobar", driver=DriverInfo("FooDriver", "1.2.3", None), connect=False)
384-
self._test_metadata({"platform": "{}|FooPlatform".format(_METADATA["platform"])}, "foo", 27017, appname="foobar", driver=DriverInfo("FooDriver", "1.2.3", "FooPlatform"), connect=False)
388+
self._test_metadata({"driver":
389+
{"name": "FooDriver",
390+
"version": "{}|1.2.3".format(_METADATA["driver"]["version"])}},
391+
"foo", 27017, appname="foobar",
392+
driver=DriverInfo("FooDriver", "1.2.3", None),
393+
connect=False)
394+
self._test_metadata({"platform": "{}|FooPlatform".format(_METADATA["platform"])},
395+
"foo", 27017, appname="foobar",
396+
driver=DriverInfo("FooDriver","1.2.3", "FooPlatform"), connect=False)
385397

386398
# Test truncating driver info metadata.
387399
self._test_metadata({}, driver=DriverInfo(name="s" * _MAX_METADATA_SIZE), connect=False)
388-
self._test_metadata({}, driver=DriverInfo(name="s" * _MAX_METADATA_SIZE, version="s" * _MAX_METADATA_SIZE), connect=False)
400+
self._test_metadata({}, driver=DriverInfo(name="s" * _MAX_METADATA_SIZE,
401+
version="s" * _MAX_METADATA_SIZE), connect=False)
402+
403+
# Test C extension in driver info.
404+
if pymongo.has_c():
405+
self._test_metadata({"driver": {"name": "c"}})
389406

390407
@mock.patch.dict("os.environ", {ENV_VAR_K8S: "1"})
391408
def test_container_metadata(self):

test/test_client.py

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -341,16 +341,19 @@ def _test_metadata(self, add_meta, *args, **kwargs):
341341
options = client.options
342342
self.assertIn(metadata["driver"]["name"], options.pool_options.metadata["driver"]["name"])
343343
if "application" in metadata.keys():
344-
self.assertEqual(metadata["application"]["name"], options.pool_options.metadata["application"]["name"])
344+
self.assertEqual(metadata["application"]["name"],
345+
options.pool_options.metadata["application"]["name"])
345346

346347
self.assertLessEqual(
347348
len(bson.encode(options.pool_options.metadata)),
348349
_MAX_METADATA_SIZE,
349350
)
350351

351352
def test_metadata(self):
352-
self._test_metadata({"driver": {"name": "PyMongo"}, "application": {"name": "foobar"}}, "mongodb://foo:27017/?appname=foobar&connect=false")
353-
self._test_metadata({"driver": {"name": "PyMongo"}}, "foo", 27017, appname="foobar", connect=False)
353+
self._test_metadata({"driver": {"name": "PyMongo"}, "application": {"name": "foobar"}},
354+
"mongodb://foo:27017/?appname=foobar&connect=false")
355+
self._test_metadata({"driver": {"name": "PyMongo"}}, "foo", 27017, appname="foobar",
356+
connect=False)
354357

355358
# No error
356359
self._test_metadata({}, appname="x" * 128)
@@ -371,12 +374,23 @@ def test_metadata(self):
371374
self._test_metadata({}, driver=("Foo", "1", "a"))
372375

373376
# Test appending to driver info.
374-
self._test_metadata({"driver": {"name": "FooDriver", "version": "{}|1.2.3".format(_METADATA["driver"]["version"])}}, "foo", 27017, appname="foobar", driver=DriverInfo("FooDriver", "1.2.3", None), connect=False)
375-
self._test_metadata({"platform": "{}|FooPlatform".format(_METADATA["platform"])}, "foo", 27017, appname="foobar", driver=DriverInfo("FooDriver", "1.2.3", "FooPlatform"), connect=False)
377+
self._test_metadata({"driver":
378+
{"name": "FooDriver",
379+
"version": "{}|1.2.3".format(_METADATA["driver"]["version"])}},
380+
"foo", 27017, appname="foobar",
381+
driver=DriverInfo("FooDriver","1.2.3", None), connect=False)
382+
self._test_metadata({"platform": "{}|FooPlatform".format(_METADATA["platform"])},
383+
"foo", 27017, appname="foobar",
384+
driver=DriverInfo("FooDriver", "1.2.3", "FooPlatform"),
385+
connect=False)
376386

377387
# Test truncating driver info metadata.
378388
self._test_metadata({}, driver=DriverInfo(name="s" * _MAX_METADATA_SIZE), connect=False)
379-
self._test_metadata({}, driver=DriverInfo(name="s" * _MAX_METADATA_SIZE, version="s" * _MAX_METADATA_SIZE), connect=False)
389+
self._test_metadata({}, driver=DriverInfo(name="s" * _MAX_METADATA_SIZE,
390+
version="s" * _MAX_METADATA_SIZE), connect=False)
391+
# Test C extension in driver info.
392+
if pymongo.has_c():
393+
self._test_metadata({"driver": {"name": "c"}})
380394

381395
@mock.patch.dict("os.environ", {ENV_VAR_K8S: "1"})
382396
def test_container_metadata(self):

0 commit comments

Comments
 (0)