本文整理汇总了Python中celery.backends.mongodb.MongoBackend类的典型用法代码示例。如果您正苦于以下问题:Python MongoBackend类的具体用法?Python MongoBackend怎么用?Python MongoBackend使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了MongoBackend类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_init_with_settings
def test_init_with_settings(self):
self.app.conf.mongodb_backend_settings = None
# empty settings
mb = MongoBackend(app=self.app)
# uri
uri = 'mongodb://localhost:27017'
mb = MongoBackend(app=self.app, url=uri)
self.assertEqual(mb.mongo_host, ['localhost:27017'])
self.assertEqual(mb.options, mb._prepare_client_options())
self.assertEqual(mb.database_name, 'celery')
# uri with database name
uri = 'mongodb://localhost:27017/celerydb'
mb = MongoBackend(app=self.app, url=uri)
self.assertEqual(mb.database_name, 'celerydb')
# uri with user, password, database name, replica set
uri = ('mongodb://'
'celeryuser:[email protected]'
'mongo1.example.com:27017,'
'mongo2.example.com:27017,'
'mongo3.example.com:27017/'
'celerydatabase?replicaSet=rs0')
mb = MongoBackend(app=self.app, url=uri)
self.assertEqual(mb.mongo_host, ['mongo1.example.com:27017',
'mongo2.example.com:27017',
'mongo3.example.com:27017'])
self.assertEqual(
mb.options, dict(mb._prepare_client_options(), replicaset='rs0'),
)
self.assertEqual(mb.user, 'celeryuser')
self.assertEqual(mb.password, 'celerypassword')
self.assertEqual(mb.database_name, 'celerydatabase')
# same uri, change some parameters in backend settings
self.app.conf.mongodb_backend_settings = {
'replicaset': 'rs1',
'user': 'backenduser',
'database': 'another_db',
'options': {
'socketKeepAlive': True,
},
}
mb = MongoBackend(app=self.app, url=uri)
self.assertEqual(mb.mongo_host, ['mongo1.example.com:27017',
'mongo2.example.com:27017',
'mongo3.example.com:27017'])
self.assertEqual(
mb.options, dict(mb._prepare_client_options(),
replicaset='rs1', socketKeepAlive=True),
)
self.assertEqual(mb.user, 'backenduser')
self.assertEqual(mb.password, 'celerypassword')
self.assertEqual(mb.database_name, 'another_db')
mb = MongoBackend(app=self.app, url='mongodb://')
示例2: get_mongo_or_SkipTest
def get_mongo_or_SkipTest():
def emit_no_mongo_msg(reason):
global _no_mongo_msg_emitted
if not _no_mongo_msg_emitted:
sys.stderr.write("\n" + _no_mongo_msg % reason + "\n")
_no_mongo_msg_emitted = True
try:
tb = MongoBackend()
try:
tb._get_database()
except AutoReconnect, exc:
emit_no_mongo_msg("not running")
raise SkipTest("Can't connect to MongoDB: %s" % (exc, ))
return tb
示例3: test_init_with_settings
def test_init_with_settings(self):
self.app.conf.mongodb_backend_settings = None
# empty settings
mb = MongoBackend(app=self.app)
# uri
uri = "mongodb://localhost:27017"
mb = MongoBackend(app=self.app, url=uri)
self.assertEqual(mb.mongo_host, ["localhost:27017"])
self.assertEqual(mb.options, mb._prepare_client_options())
self.assertEqual(mb.database_name, "celery")
# uri with database name
uri = "mongodb://localhost:27017/celerydb"
mb = MongoBackend(app=self.app, url=uri)
self.assertEqual(mb.database_name, "celerydb")
# uri with user, password, database name, replica set
uri = (
"mongodb://"
"celeryuser:[email protected]"
"mongo1.example.com:27017,"
"mongo2.example.com:27017,"
"mongo3.example.com:27017/"
"celerydatabase?replicaSet=rs0"
)
mb = MongoBackend(app=self.app, url=uri)
self.assertEqual(
mb.mongo_host, ["mongo1.example.com:27017", "mongo2.example.com:27017", "mongo3.example.com:27017"]
)
self.assertEqual(mb.options, dict(mb._prepare_client_options(), replicaset="rs0"))
self.assertEqual(mb.user, "celeryuser")
self.assertEqual(mb.password, "celerypassword")
self.assertEqual(mb.database_name, "celerydatabase")
# same uri, change some parameters in backend settings
self.app.conf.mongodb_backend_settings = {
"replicaset": "rs1",
"user": "backenduser",
"database": "another_db",
"options": {"socketKeepAlive": True},
}
mb = MongoBackend(app=self.app, url=uri)
self.assertEqual(
mb.mongo_host, ["mongo1.example.com:27017", "mongo2.example.com:27017", "mongo3.example.com:27017"]
)
self.assertEqual(mb.options, dict(mb._prepare_client_options(), replicaset="rs1", socketKeepAlive=True))
self.assertEqual(mb.user, "backenduser")
self.assertEqual(mb.password, "celerypassword")
self.assertEqual(mb.database_name, "another_db")
mb = MongoBackend(app=self.app, url="mongodb://")
示例4: setup
def setup(self):
R = self._reset = {}
R['encode'], MongoBackend.encode = MongoBackend.encode, Mock()
R['decode'], MongoBackend.decode = MongoBackend.decode, Mock()
R['Binary'], module.Binary = module.Binary, Mock()
R['datetime'], datetime.datetime = datetime.datetime, Mock()
self.backend = MongoBackend(app=self.app, url=self.default_url)
示例5: setup
def setup(self):
if pymongo is None:
raise SkipTest('pymongo is not installed.')
R = self._reset = {}
R['encode'], MongoBackend.encode = MongoBackend.encode, Mock()
R['decode'], MongoBackend.decode = MongoBackend.decode, Mock()
R['Binary'], module.Binary = module.Binary, Mock()
R['datetime'], datetime.datetime = datetime.datetime, Mock()
self.backend = MongoBackend(app=self.app)
示例6: setUp
def setUp(self):
if pymongo is None:
raise SkipTest("pymongo is not installed.")
from pymongo import binary
R = self._reset = {}
R["encode"], MongoBackend.encode = MongoBackend.encode, Mock()
R["decode"], MongoBackend.decode = MongoBackend.decode, Mock()
R["Binary"], binary.Binary = binary.Binary, Mock()
R["datetime"], datetime.datetime = datetime.datetime, Mock()
self.backend = MongoBackend()
示例7: test_encode_decode
def test_encode_decode(self, app):
backend = MongoBackend(app=app)
data = {'foo': 1}
assert backend.decode(backend.encode(data))
backend.serializer = 'bson'
assert backend.encode(data) == data
assert backend.decode(data) == data
示例8: test_encode_decode
def test_encode_decode(self):
backend = MongoBackend(app=self.app)
data = {'foo': 1}
self.assertTrue(backend.decode(backend.encode(data)))
backend.serializer = 'bson'
self.assertEquals(backend.encode(data), data)
self.assertEquals(backend.decode(data), data)
示例9: test_get_database_authfailure
def test_get_database_authfailure(self):
x = MongoBackend(app=self.app)
x._get_connection = Mock()
conn = x._get_connection.return_value = {}
db = conn[x.database_name] = Mock()
db.authenticate.return_value = False
x.user = 'jerry'
x.password = 'cere4l'
with self.assertRaises(ImproperlyConfigured):
x._get_database()
db.authenticate.assert_called_with('jerry', 'cere4l')
示例10: test_get_database_authfailure
def test_get_database_authfailure(self):
x = MongoBackend()
x._get_connection = Mock()
conn = x._get_connection.return_value = {}
db = conn[x.mongodb_database] = Mock()
db.authenticate.return_value = False
x.mongodb_user = "jerry"
x.mongodb_password = "cere4l"
with self.assertRaises(ImproperlyConfigured):
x._get_database()
db.authenticate.assert_called_with("jerry", "cere4l")
示例11: setUp
def setUp(self):
if pymongo is None:
raise SkipTest("pymongo is not installed.")
self.backend = MongoBackend()
示例12: test_MongoBackend
class test_MongoBackend(AppCase):
def setup(self):
if pymongo is None:
raise SkipTest('pymongo is not installed.')
R = self._reset = {}
R['encode'], MongoBackend.encode = MongoBackend.encode, Mock()
R['decode'], MongoBackend.decode = MongoBackend.decode, Mock()
R['Binary'], module.Binary = module.Binary, Mock()
R['datetime'], datetime.datetime = datetime.datetime, Mock()
self.backend = MongoBackend(app=self.app)
def teardown(self):
MongoBackend.encode = self._reset['encode']
MongoBackend.decode = self._reset['decode']
module.Binary = self._reset['Binary']
datetime.datetime = self._reset['datetime']
def test_Bunch(self):
x = Bunch(foo='foo', bar=2)
self.assertEqual(x.foo, 'foo')
self.assertEqual(x.bar, 2)
def test_init_no_mongodb(self):
prev, module.pymongo = module.pymongo, None
try:
with self.assertRaises(ImproperlyConfigured):
MongoBackend(app=self.app)
finally:
module.pymongo = prev
def test_init_no_settings(self):
self.app.conf.CELERY_MONGODB_BACKEND_SETTINGS = []
with self.assertRaises(ImproperlyConfigured):
MongoBackend(app=self.app)
def test_init_settings_is_None(self):
self.app.conf.CELERY_MONGODB_BACKEND_SETTINGS = None
MongoBackend(app=self.app)
def test_restore_group_no_entry(self):
x = MongoBackend(app=self.app)
x.collection = Mock()
fo = x.collection.find_one = Mock()
fo.return_value = None
self.assertIsNone(x._restore_group('1f3fab'))
@depends_on_current_app
def test_reduce(self):
x = MongoBackend(app=self.app)
self.assertTrue(loads(dumps(x)))
def test_get_connection_connection_exists(self):
with patch('pymongo.MongoClient') as mock_Connection:
self.backend._connection = sentinel._connection
connection = self.backend._get_connection()
self.assertEqual(sentinel._connection, connection)
self.assertFalse(mock_Connection.called)
def test_get_connection_no_connection_host(self):
with patch('pymongo.MongoClient') as mock_Connection:
self.backend._connection = None
self.backend.host = MONGODB_HOST
self.backend.port = MONGODB_PORT
mock_Connection.return_value = sentinel.connection
connection = self.backend._get_connection()
mock_Connection.assert_called_once_with(
host='mongodb://localhost:27017', ssl=False, max_pool_size=10,
auto_start_request=False)
self.assertEqual(sentinel.connection, connection)
def test_get_connection_no_connection_mongodb_uri(self):
with patch('pymongo.MongoClient') as mock_Connection:
mongodb_uri = 'mongodb://%s:%d' % (MONGODB_HOST, MONGODB_PORT)
self.backend._connection = None
self.backend.host = mongodb_uri
mock_Connection.return_value = sentinel.connection
connection = self.backend._get_connection()
mock_Connection.assert_called_once_with(
host=mongodb_uri, ssl=False, max_pool_size=10,
auto_start_request=False)
self.assertEqual(sentinel.connection, connection)
@patch('celery.backends.mongodb.MongoBackend._get_connection')
def test_get_database_no_existing(self, mock_get_connection):
# Should really check for combinations of these two, to be complete.
self.backend.user = MONGODB_USER
self.backend.password = MONGODB_PASSWORD
mock_database = Mock()
#.........这里部分代码省略.........
示例13: test_MongoBackend
class test_MongoBackend(AppCase):
def setUp(self):
if pymongo is None:
raise SkipTest("pymongo is not installed.")
from pymongo import binary
R = self._reset = {}
R["encode"], MongoBackend.encode = MongoBackend.encode, Mock()
R["decode"], MongoBackend.decode = MongoBackend.decode, Mock()
R["Binary"], binary.Binary = binary.Binary, Mock()
R["datetime"], datetime.datetime = datetime.datetime, Mock()
self.backend = MongoBackend()
def tearDown(self):
from pymongo import binary
MongoBackend.encode = self._reset["encode"]
MongoBackend.decode = self._reset["decode"]
binary.Binary = self._reset["Binary"]
datetime.datetime = self._reset["datetime"]
def test_Bunch(self):
x = Bunch(foo="foo", bar=2)
self.assertEqual(x.foo, "foo")
self.assertEqual(x.bar, 2)
def test_init_no_mongodb(self):
prev, module.pymongo = module.pymongo, None
try:
with self.assertRaises(ImproperlyConfigured):
MongoBackend()
finally:
module.pymongo = prev
def test_init_no_settings(self):
celery = Celery(set_as_current=False)
celery.conf.CELERY_MONGODB_BACKEND_SETTINGS = []
with self.assertRaises(ImproperlyConfigured):
MongoBackend(app=celery)
def test_init_settings_is_None(self):
celery = Celery(set_as_current=False)
celery.conf.CELERY_MONGODB_BACKEND_SETTINGS = None
MongoBackend(app=celery)
def test_restore_taskset_no_entry(self):
x = MongoBackend()
x.collection = Mock()
fo = x.collection.find_one = Mock()
fo.return_value = None
self.assertIsNone(x._restore_taskset("1f3fab"))
def test_reduce(self):
x = MongoBackend()
self.assertTrue(loads(dumps(x)))
def test_get_connection_connection_exists(self):
with patch("pymongo.connection.Connection") as mock_Connection:
self.backend._connection = sentinel._connection
connection = self.backend._get_connection()
self.assertEquals(sentinel._connection, connection)
self.assertFalse(mock_Connection.called)
def test_get_connection_no_connection_host(self):
with patch("pymongo.connection.Connection") as mock_Connection:
self.backend._connection = None
self.backend.mongodb_host = MONGODB_HOST
self.backend.mongodb_port = MONGODB_PORT
mock_Connection.return_value = sentinel.connection
connection = self.backend._get_connection()
mock_Connection.assert_called_once_with(
MONGODB_HOST, MONGODB_PORT)
self.assertEquals(sentinel.connection, connection)
def test_get_connection_no_connection_mongodb_uri(self):
with patch("pymongo.connection.Connection") as mock_Connection:
mongodb_uri = "mongodb://%s:%d" % (MONGODB_HOST, MONGODB_PORT)
self.backend._connection = None
self.backend.mongodb_host = mongodb_uri
mock_Connection.return_value = sentinel.connection
connection = self.backend._get_connection()
mock_Connection.assert_called_once_with(mongodb_uri)
self.assertEquals(sentinel.connection, connection)
@patch("celery.backends.mongodb.MongoBackend._get_connection")
def test_get_database_no_existing(self, mock_get_connection):
# Should really check for combinations of these two, to be complete.
self.backend.mongodb_user = MONGODB_USER
self.backend.mongodb_password = MONGODB_PASSWORD
mock_database = Mock()
#.........这里部分代码省略.........
示例14: setup
class test_MongoBackend:
default_url = 'mongodb://uuuu:[email protected]/database'
replica_set_url = (
'mongodb://uuuu:[email protected],'
'hostname.dom/database?replicaSet=rs'
)
sanitized_default_url = 'mongodb://uuuu:**@hostname.dom/database'
sanitized_replica_set_url = (
'mongodb://uuuu:**@hostname.dom/,'
'hostname.dom/database?replicaSet=rs'
)
def setup(self):
self.patching('celery.backends.mongodb.MongoBackend.encode')
self.patching('celery.backends.mongodb.MongoBackend.decode')
self.patching('celery.backends.mongodb.Binary')
self.patching('datetime.datetime')
self.backend = MongoBackend(app=self.app, url=self.default_url)
def test_init_no_mongodb(self, patching):
patching('celery.backends.mongodb.pymongo', None)
with pytest.raises(ImproperlyConfigured):
MongoBackend(app=self.app)
def test_init_no_settings(self):
self.app.conf.mongodb_backend_settings = []
with pytest.raises(ImproperlyConfigured):
MongoBackend(app=self.app)
def test_init_settings_is_None(self):
self.app.conf.mongodb_backend_settings = None
MongoBackend(app=self.app)
def test_init_with_settings(self):
self.app.conf.mongodb_backend_settings = None
# empty settings
mb = MongoBackend(app=self.app)
# uri
uri = 'mongodb://localhost:27017'
mb = MongoBackend(app=self.app, url=uri)
assert mb.mongo_host == ['localhost:27017']
assert mb.options == mb._prepare_client_options()
assert mb.database_name == 'celery'
# uri with database name
uri = 'mongodb://localhost:27017/celerydb'
mb = MongoBackend(app=self.app, url=uri)
assert mb.database_name == 'celerydb'
# uri with user, password, database name, replica set
uri = ('mongodb://'
'celeryuser:[email protected]'
'mongo1.example.com:27017,'
'mongo2.example.com:27017,'
'mongo3.example.com:27017/'
'celerydatabase?replicaSet=rs0')
mb = MongoBackend(app=self.app, url=uri)
assert mb.mongo_host == [
'mongo1.example.com:27017',
'mongo2.example.com:27017',
'mongo3.example.com:27017',
]
assert mb.options == dict(
mb._prepare_client_options(),
replicaset='rs0',
)
assert mb.user == 'celeryuser'
assert mb.password == 'celerypassword'
assert mb.database_name == 'celerydatabase'
# same uri, change some parameters in backend settings
self.app.conf.mongodb_backend_settings = {
'replicaset': 'rs1',
'user': 'backenduser',
'database': 'another_db',
'options': {
'socketKeepAlive': True,
},
}
mb = MongoBackend(app=self.app, url=uri)
assert mb.mongo_host == [
'mongo1.example.com:27017',
'mongo2.example.com:27017',
'mongo3.example.com:27017',
]
assert mb.options == dict(
mb._prepare_client_options(),
replicaset='rs1',
socketKeepAlive=True,
)
assert mb.user == 'backenduser'
assert mb.password == 'celerypassword'
assert mb.database_name == 'another_db'
mb = MongoBackend(app=self.app, url='mongodb://')
@pytest.mark.usefixtures('depends_on_current_app')
def test_reduce(self):
#.........这里部分代码省略.........
示例15: TestBackendMongoDb
class TestBackendMongoDb(Case):
def setUp(self):
if pymongo is None:
raise SkipTest("pymongo is not installed.")
from pymongo import binary
R = self._reset = {}
R["encode"], MongoBackend.encode = MongoBackend.encode, Mock()
R["decode"], MongoBackend.decode = MongoBackend.decode, Mock()
R["Binary"], binary.Binary = binary.Binary, Mock()
R["datetime"], datetime.datetime = datetime.datetime, Mock()
self.backend = MongoBackend()
def tearDown(self):
from pymongo import binary
MongoBackend.encode = self._reset["encode"]
MongoBackend.decode = self._reset["decode"]
binary.Binary = self._reset["Binary"]
datetime.datetime = self._reset["datetime"]
def test_get_connection_connection_exists(self):
@patch("pymongo.connection.Connection")
def do_test(mock_Connection):
self.backend._connection = sentinel._connection
connection = self.backend._get_connection()
self.assertEquals(sentinel._connection, connection)
self.assertFalse(mock_Connection.called)
do_test()
def test_get_connection_no_connection_host(self):
@patch("pymongo.connection.Connection")
def do_test(mock_Connection):
self.backend._connection = None
self.backend.mongodb_host = MONGODB_HOST
self.backend.mongodb_port = MONGODB_PORT
mock_Connection.return_value = sentinel.connection
connection = self.backend._get_connection()
mock_Connection.assert_called_once_with(
MONGODB_HOST, MONGODB_PORT)
self.assertEquals(sentinel.connection, connection)
do_test()
def test_get_connection_no_connection_mongodb_uri(self):
@patch("pymongo.connection.Connection")
def do_test(mock_Connection):
mongodb_uri = "mongodb://%s:%d" % (MONGODB_HOST, MONGODB_PORT)
self.backend._connection = None
self.backend.mongodb_host = mongodb_uri
mock_Connection.return_value = sentinel.connection
connection = self.backend._get_connection()
mock_Connection.assert_called_once_with(mongodb_uri)
self.assertEquals(sentinel.connection, connection)
do_test()
@patch("celery.backends.mongodb.MongoBackend._get_connection")
def test_get_database_no_existing(self, mock_get_connection):
# Should really check for combinations of these two, to be complete.
self.backend.mongodb_user = MONGODB_USER
self.backend.mongodb_password = MONGODB_PASSWORD
mock_database = Mock()
mock_connection = MagicMock(spec=['__getitem__'])
mock_connection.__getitem__.return_value = mock_database
mock_get_connection.return_value = mock_connection
database = self.backend.database
self.assertTrue(database is mock_database)
self.assertTrue(self.backend.__dict__["database"] is mock_database)
mock_database.authenticate.assert_called_once_with(
MONGODB_USER, MONGODB_PASSWORD)
@patch("celery.backends.mongodb.MongoBackend._get_connection")
def test_get_database_no_existing_no_auth(self, mock_get_connection):
# Should really check for combinations of these two, to be complete.
self.backend.mongodb_user = None
self.backend.mongodb_password = None
mock_database = Mock()
mock_connection = MagicMock(spec=['__getitem__'])
mock_connection.__getitem__.return_value = mock_database
mock_get_connection.return_value = mock_connection
database = self.backend.database
self.assertTrue(database is mock_database)
self.assertFalse(mock_database.authenticate.called)
self.assertTrue(self.backend.__dict__["database"] is mock_database)
def test_process_cleanup(self):
#.........这里部分代码省略.........