The test suite fails on 3.4.2:
[2020/11/20 22:33:48.824] FAIL: test_metadata (test_client.ClientUnitTest) [2020/11/20 22:33:48.824] ---------------------------------------------------------------------- [2020/11/20 22:33:48.824] Traceback (most recent call last): [2020/11/20 22:33:48.824] File "/data/mci/52b9e171edeb47e2aab844bb34d76fc9/src/test/test_client.py", line 296, in test_metadata [2020/11/20 22:33:48.824] self.assertRaises(TypeError, DriverInfo, 'Foo', 1, 'a') [2020/11/20 22:33:48.824] AssertionError: TypeError not raised by DriverInfo [2020/11/20 22:33:48.824] ====================================================================== [2020/11/20 22:33:48.824] FAIL: test_grid_out_custom_opts (test_custom_types.TestGridFileCustomType) [2020/11/20 22:33:48.824] ---------------------------------------------------------------------- [2020/11/20 22:33:48.824] Traceback (most recent call last): [2020/11/20 22:33:48.824] File "/data/mci/52b9e171edeb47e2aab844bb34d76fc9/src/test/test_custom_types.py", line 736, in test_grid_out_custom_opts [2020/11/20 22:33:48.824] self.assertEqual({"foo": 'red', "bar": 'blue'}, two.metadata) [2020/11/20 22:33:48.824] AssertionError: {'foo': 'red', 'bar': 'blue'} != RawBSONDocument(b' \x00\x00\x00\x02foo\x0[333 chars]ne))) [2020/11/20 22:33:48.824] ====================================================================== [2020/11/20 22:33:48.824] FAIL: test_grid_out_cursor_options (test_grid_file.TestGridFile) [2020/11/20 22:33:48.824] ---------------------------------------------------------------------- [2020/11/20 22:33:48.824] Traceback (most recent call last): [2020/11/20 22:33:48.824] File "/data/mci/52b9e171edeb47e2aab844bb34d76fc9/src/test/test_grid_file.py", line 242, in test_grid_out_cursor_options [2020/11/20 22:33:48.824] self.assertEqual(cursor_dict, cursor_clone_dict) [2020/11/20 22:33:48.824] AssertionError: {'_Cu[35 chars]sor__exhaust_mgr': None, '_Cursor__max_await_t[1464 chars]': 0} != {'_Cu[35 chars]sor__data': deque([]), '_Cursor__hint': None, [1469 chars]None} [2020/11/20 22:33:48.824] Diff is 2289 characters long. Set self.maxDiff to None to see it. [2020/11/20 22:33:48.824] ====================================================================== [2020/11/20 22:33:48.824] FAIL: test_json_options_with_options (test_json_util.TestJsonUtil) [2020/11/20 22:33:48.824] ---------------------------------------------------------------------- [2020/11/20 22:33:48.824] Traceback (most recent call last): [2020/11/20 22:33:48.824] File "/data/mci/52b9e171edeb47e2aab844bb34d76fc9/src/test/test_json_util.py", line 80, in test_json_options_with_options [2020/11/20 22:33:48.824] opts3.uuid_representation, UuidRepresentation.JAVA_LEGACY) [2020/11/20 22:33:48.824] AssertionError: 3 != 5
These failures are caused by this python bug in _asdict fixed in 3.4.4 (and possibly some early 3.5/3.6 releases):
https://bugs.python.org/issue24931
$ git grep _asdict | tee
bson/codec_options.py:313: opts = self._asdict()
bson/json_util.py:327: opts = self._asdict()
pymongo/driver_info.py:33: for name, value in self._asdict().items():
We should either stop using _asdict or define it on these classes ourselves:
def _asdict(self): return collections.OrderedDict(zip(self._fields, self))
- causes
-
PYTHON-2442 Remove workarounds for namedtuple._asdict()
- Backlog
- related to
-
PYTHON-1974 Drop Python 3.4 support
- Released
-
PYTHON-2386 Drop Python 3.5 support
- Released