Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_get_item(self):
client = create_class_with_framework(core.MongoMotorAgnosticClient,
asyncio_framework,
self.__module__)()
db = client['some-db']
comp_db = create_class_with_framework(
core.MongoMotorAgnosticDatabase,
asyncio_framework,
self.__module__)
self.assertTrue(isinstance(db, comp_db))
def test_getattr_with_under(self, *args, **kwrags):
connection = Mock(spec=core.MongoMotorAgnosticClient)
delegate = MagicMock()
delegate.name = 'blabla'
connection.delegate = delegate
name = 'blabla'
db = create_class_with_framework(core.MongoMotorAgnosticDatabase,
asyncio_framework,
self.__module__)(connection, name)
coll = create_class_with_framework(core.MongoMotorAgnosticCollection,
asyncio_framework,
self.__module__)
coll = coll(db, name)
self.assertEqual(coll._get_write_mode, coll.delegate._get_write_mode)
def test_getitem(self, *args, **kwargs):
connection = Mock(spec=core.MongoMotorAgnosticClient)
delegate = MagicMock()
delegate.name = 'blabla'
connection.delegate = delegate
name = 'blabla'
db = create_class_with_framework(core.MongoMotorAgnosticDatabase,
asyncio_framework,
self.__module__)(connection, name)
coll = create_class_with_framework(core.MongoMotorAgnosticCollection,
asyncio_framework,
self.__module__)
coll = coll(db, name)
other_coll = coll['other']
self.assertTrue(isinstance(other_coll, type(coll)))
def test_find(self, *args, **kwargs):
connection = Mock(spec=core.MongoMotorAgnosticClient)
delegate = MagicMock()
delegate.name = 'blabla'
connection.delegate = delegate
name = 'blabla'
db = create_class_with_framework(core.MongoMotorAgnosticDatabase,
asyncio_framework,
self.__module__)(connection, name)
coll = create_class_with_framework(core.MongoMotorAgnosticCollection,
asyncio_framework,
self.__module__)(db, name)
cursor = create_class_with_framework(core.MongoMotorAgnosticCursor,
asyncio_framework,
self.__module__)
self.assertIsInstance(coll.find(), cursor)
def test_find(self, *args, **kwargs):
connection = Mock(spec=core.MongoMotorAgnosticClient)
delegate = MagicMock()
delegate.name = 'blabla'
connection.delegate = delegate
name = 'blabla'
db = create_class_with_framework(core.MongoMotorAgnosticDatabase,
asyncio_framework,
self.__module__)(connection, name)
coll = create_class_with_framework(core.MongoMotorAgnosticCollection,
asyncio_framework,
self.__module__)(db, name)
cursor = create_class_with_framework(core.MongoMotorAgnosticCursor,
asyncio_framework,
self.__module__)
self.assertIsInstance(coll.find(), cursor)
def create_asyncio_class(cls):
return create_class_with_framework(cls, asyncio_framework,
'motor.motor_asyncio')
def wrap(self, obj):
if obj.__class__ is grid_file.GridIn:
grid_in_class = create_class_with_framework(
MongoMotorAgnosticGridIn, self._framework, self.__module__)
return grid_in_class(
root_collection=self.collection,
delegate=obj)
elif obj.__class__ is grid_file.GridOut:
grid_out_class = create_class_with_framework(
MongoMotorAgnosticGridOut, self._framework, self.__module__)
return grid_out_class(
root_collection=self.collection,
delegate=obj)
elif obj.__class__ is gridfs.GridOutCursor:
grid_out_class = create_class_with_framework(
AgnosticGridOutCursor, self._framework, self.__module__)
return grid_out_class(
cursor=obj,
collection=self.collection)
:Parameters:
- `root_collection`: root collection to write to
- `session` (optional): a
:class:`~pymongo.client_session.ClientSession` to use for all
commands
- `disable_md5` (optional): When True, an MD5 checksum will not be
computed for the uploaded file. Useful in environments where
MD5 cannot be used for regulatory or other reasons. Defaults to
False.
- `**kwargs` (optional): file level options (see above)
.. versionchanged:: 0.2
``open`` method removed, no longer needed.
"""
collection_class = create_class_with_framework(
AgnosticCollection, self._framework, self.__module__)
if not isinstance(root_collection, collection_class):
raise TypeError(
"First argument to MotorGridIn must be "
"MotorCollection, not %r" % root_collection)
self.io_loop = root_collection.get_io_loop()
if delegate:
# Short cut.
self.delegate = delegate
else:
self.delegate = self.__delegate_class__(
root_collection.delegate,
session=session,
disable_md5=disable_md5,
:class:`~pymongo.client_session.ClientSession`.
- `start_after` (optional): The same as `resume_after` except that
`start_after` can resume notifications after an invalidate event.
This option and `resume_after` are mutually exclusive.
:Returns:
A :class:`~MotorChangeStream`.
.. versionchanged:: 2.1
Added the ``start_after`` parameter.
.. versionadded:: 2.0
.. mongodoc:: changeStreams
"""
cursor_class = create_class_with_framework(
AgnosticChangeStream, self._framework, self.__module__)
# Latent cursor that will send initial command on first "async for".
return cursor_class(self, pipeline, full_document, resume_after,
max_await_time_ms, batch_size, collation,
start_at_operation_time, session, start_after)
.. versionchanged:: 1.0
:meth:`aggregate` now **always** returns a cursor.
.. versionchanged:: 0.5
:meth:`aggregate` now returns a cursor by default,
and the cursor is returned immediately without a ``yield``.
See :ref:`aggregation changes in Motor 0.5 `.
.. versionchanged:: 0.2
Added cursor support.
.. _aggregate command:
http://docs.mongodb.org/manual/applications/aggregation
"""
cursor_class = create_class_with_framework(
AgnosticLatentCommandCursor, self._framework, self.__module__)
# Latent cursor that will send initial command on first "async for".
return cursor_class(self, self._async_aggregate, pipeline,
**unwrap_kwargs_session(kwargs))