Description
As currently implemented, the SpecRunner cannot be used to run tests against MongoDB versions that do not support sessions. This is because of the code that creates sessions for use in the transactions spec tests is always executed even when entirely different spec tests are being run. This causes the runner to error with the following traceback:
======================================================================
|
ERROR: test_v2_updateOne_hint_clientError_UpdateOne_with_hint_document_unsupported_(client-side_error) (test.test_crud_v2.TestSpec)
|
----------------------------------------------------------------------
|
Traceback (most recent call last):
|
File "/Users/pmital/Developer/mongo-python-driver/test/__init__.py", line 447, in wrap
|
return f(*args, **kwargs)
|
File "/Users/pmital/Developer/mongo-python-driver/test/test_crud_v2.py", line 62, in run_scenario
|
self.run_scenario(scenario_def, test)
|
File "/Users/pmital/Developer/mongo-python-driver/test/utils_spec_runner.py", line 529, in run_scenario
|
s = client.start_session(**dict(opts))
|
File "/Users/pmital/Developer/mongo-python-driver/pymongo/mongo_client.py", line 1797, in start_session
|
default_transaction_options=default_transaction_options)
|
File "/Users/pmital/Developer/mongo-python-driver/pymongo/mongo_client.py", line 1768, in __start_session
|
server_session = self._get_server_session()
|
File "/Users/pmital/Developer/mongo-python-driver/pymongo/mongo_client.py", line 1801, in _get_server_session
|
return self._topology.get_server_session()
|
File "/Users/pmital/Developer/mongo-python-driver/pymongo/topology.py", line 498, in get_server_session
|
"Sessions are not supported by this MongoDB deployment")
|
pymongo.errors.ConfigurationError: Sessions are not supported by this MongoDB deployment
|
We need to modify the spec runner so that we can use the same class to run spec tests across MongoDB versions irrespective of server-side support for sessions.
Attachments
Issue Links
- is depended on by
-
PYTHON-2142 Allow hinting the delete command
-
- Closed
-