From ac64ade10f27b1cf102965ec1950caaf5e190c9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastien=20G=C3=A9rard?= Date: Wed, 15 May 2019 21:54:26 +0200 Subject: [PATCH] remove dead code (related to pymongo2) + minor cleaning --- mongoengine/document.py | 8 ++------ mongoengine/queryset/base.py | 34 ++++++++++++---------------------- tests/queryset/queryset.py | 11 ++--------- tests/test_connection.py | 30 +++++++++--------------------- 4 files changed, 25 insertions(+), 58 deletions(-) diff --git a/mongoengine/document.py b/mongoengine/document.py index 5ccedbfa..a1139789 100644 --- a/mongoengine/document.py +++ b/mongoengine/document.py @@ -816,11 +816,9 @@ class Document(six.with_metaclass(TopLevelDocumentMetaclass, BaseDocument)): index_spec = index_spec.copy() fields = index_spec.pop('fields') drop_dups = kwargs.get('drop_dups', False) - if IS_PYMONGO_3 and drop_dups: + if drop_dups: msg = 'drop_dups is deprecated and is removed when using PyMongo 3+.' warnings.warn(msg, DeprecationWarning) - elif not IS_PYMONGO_3: - index_spec['drop_dups'] = drop_dups index_spec['background'] = background index_spec.update(kwargs) @@ -842,11 +840,9 @@ class Document(six.with_metaclass(TopLevelDocumentMetaclass, BaseDocument)): :param drop_dups: Was removed/ignored with MongoDB >2.7.5. The value will be removed if PyMongo3+ is used """ - if IS_PYMONGO_3 and drop_dups: + if drop_dups: msg = 'drop_dups is deprecated and is removed when using PyMongo 3+.' warnings.warn(msg, DeprecationWarning) - elif not IS_PYMONGO_3: - kwargs.update({'drop_dups': drop_dups}) return cls.create_index(key_or_list, background=background, **kwargs) @classmethod diff --git a/mongoengine/queryset/base.py b/mongoengine/queryset/base.py index 66e43514..16a2512d 100644 --- a/mongoengine/queryset/base.py +++ b/mongoengine/queryset/base.py @@ -626,7 +626,7 @@ class BaseQuerySet(object): queryset = self.clone() query = queryset._query - if not IS_PYMONGO_3 or not remove: + if not remove: update = transform.update(queryset._document, **update) sort = queryset._ordering @@ -1090,7 +1090,7 @@ class BaseQuerySet(object): return queryset def timeout(self, enabled): - """Enable or disable the default mongod timeout when querying. + """Enable or disable the default mongod timeout when querying. (no_cursor_timeout option) :param enabled: whether or not the timeout is used @@ -1531,26 +1531,16 @@ class BaseQuerySet(object): @property def _cursor_args(self): - if not IS_PYMONGO_3: - fields_name = 'fields' - cursor_args = { - 'timeout': self._timeout, - 'snapshot': self._snapshot - } - if self._read_preference is not None: - cursor_args['read_preference'] = self._read_preference - else: - cursor_args['slave_okay'] = self._slave_okay - else: - fields_name = 'projection' - # snapshot is not handled at all by PyMongo 3+ - # TODO: evaluate similar possibilities using modifiers - if self._snapshot: - msg = 'The snapshot option is not anymore available with PyMongo 3+' - warnings.warn(msg, DeprecationWarning) - cursor_args = { - 'no_cursor_timeout': not self._timeout - } + fields_name = 'projection' + # snapshot is not handled at all by PyMongo 3+ + # TODO: evaluate similar possibilities using modifiers + if self._snapshot: + msg = 'The snapshot option is not anymore available with PyMongo 3+' + warnings.warn(msg, DeprecationWarning) + cursor_args = { + 'no_cursor_timeout': not self._timeout + } + if self._loaded_fields: cursor_args[fields_name] = self._loaded_fields.as_dict() diff --git a/tests/queryset/queryset.py b/tests/queryset/queryset.py index 31b1641e..c403e68f 100644 --- a/tests/queryset/queryset.py +++ b/tests/queryset/queryset.py @@ -3415,10 +3415,7 @@ class QuerySetTest(unittest.TestCase): self.assertEqual(query.count(), 3) self.assertEqual(query._query, {'$text': {'$search': 'brasil'}}) cursor_args = query._cursor_args - if not IS_PYMONGO_3: - cursor_args_fields = cursor_args['fields'] - else: - cursor_args_fields = cursor_args['projection'] + cursor_args_fields = cursor_args['projection'] self.assertEqual( cursor_args_fields, {'_text_score': {'$meta': 'textScore'}}) @@ -4511,11 +4508,7 @@ class QuerySetTest(unittest.TestCase): bars = list(Bar.objects(read_preference=ReadPreference.PRIMARY)) self.assertEqual([], bars) - if not IS_PYMONGO_3: - error_class = ConfigurationError - else: - error_class = TypeError - self.assertRaises(error_class, Bar.objects, read_preference='Primary') + self.assertRaises(TypeError, Bar.objects, read_preference='Primary') # read_preference as a kwarg bars = Bar.objects(read_preference=ReadPreference.SECONDARY_PREFERRED) diff --git a/tests/test_connection.py b/tests/test_connection.py index e5e10479..65f01717 100644 --- a/tests/test_connection.py +++ b/tests/test_connection.py @@ -23,10 +23,7 @@ from mongoengine.connection import (MongoEngineConnectionError, get_db, def get_tz_awareness(connection): - if not IS_PYMONGO_3: - return connection.tz_aware - else: - return connection.codec_options.tz_aware + return connection.codec_options.tz_aware class ConnectionTest(unittest.TestCase): @@ -425,12 +422,6 @@ class ConnectionTest(unittest.TestCase): c.admin.authenticate("admin", "password") c.admin.command("createUser", "username", pwd="password", roles=["dbOwner"]) - if not IS_PYMONGO_3: - self.assertRaises( - MongoEngineConnectionError, connect, 'testdb_uri_bad', - host='mongodb://test:password@localhost' - ) - connect("testdb_uri", host='mongodb://username:password@localhost/mongoenginetest') conn = get_connection() @@ -641,17 +632,14 @@ class ConnectionTest(unittest.TestCase): self.assertEqual(len(mongo_connections.items()), 2) self.assertIn('t1', mongo_connections.keys()) self.assertIn('t2', mongo_connections.keys()) - if not IS_PYMONGO_3: - self.assertEqual(mongo_connections['t1'].host, 'localhost') - self.assertEqual(mongo_connections['t2'].host, '127.0.0.1') - else: - # Handle PyMongo 3+ Async Connection - # Ensure we are connected, throws ServerSelectionTimeoutError otherwise. - # Purposely not catching exception to fail test if thrown. - mongo_connections['t1'].server_info() - mongo_connections['t2'].server_info() - self.assertEqual(mongo_connections['t1'].address[0], 'localhost') - self.assertEqual(mongo_connections['t2'].address[0], '127.0.0.1') + + # Handle PyMongo 3+ Async Connection + # Ensure we are connected, throws ServerSelectionTimeoutError otherwise. + # Purposely not catching exception to fail test if thrown. + mongo_connections['t1'].server_info() + mongo_connections['t2'].server_info() + self.assertEqual(mongo_connections['t1'].address[0], 'localhost') + self.assertEqual(mongo_connections['t2'].address[0], '127.0.0.1') if __name__ == '__main__':