def test_delete(self): """test_delete CouchDBBackend.delete should return and take two params db conn to pycouchdb is mocked. TODO Should test on key not exists """ self.app.conf.CELERY_COUCHDB_BACKEND_SETTINGS = {} x = CouchDBBackend(app=self.app) x._connection = Mock() mocked_delete = x._connection.delete = Mock() mocked_delete.return_value = None # should return None self.assertIsNone(x.delete("1f3fab")) x._connection.delete.assert_called_once_with("1f3fab")
def test_get(self): """test_get CouchDBBackend.get should return and take two params db conn to couchdb is mocked. TODO Should test on key not exists """ self.app.conf.CELERY_COUCHDB_BACKEND_SETTINGS = {} x = CouchDBBackend(app=self.app) x._connection = Mock() mocked_get = x._connection.get = Mock() mocked_get.return_value = sentinel.retval # should return None self.assertEqual(x.get("1f3fab"), sentinel.retval) x._connection.get.assert_called_once_with("1f3fab")
def setup(self): if pycouchdb is None: raise SkipTest("pycouchdb is not installed.") self.backend = CouchDBBackend(app=self.app)
class test_CouchDBBackend(AppCase): def setup(self): if pycouchdb is None: raise SkipTest("pycouchdb is not installed.") self.backend = CouchDBBackend(app=self.app) def test_init_no_pycouchdb(self): """test init no pycouchdb raises""" prev, module.pycouchdb = module.pycouchdb, None try: with self.assertRaises(ImproperlyConfigured): CouchDBBackend(app=self.app) finally: module.pycouchdb = prev def test_init_no_settings(self): """test init no settings""" self.app.conf.CELERY_COUCHDB_BACKEND_SETTINGS = [] with self.assertRaises(ImproperlyConfigured): CouchDBBackend(app=self.app) def test_init_settings_is_None(self): """Test init settings is None""" self.app.conf.CELERY_COUCHDB_BACKEND_SETTINGS = None CouchDBBackend(app=self.app) def test_get_container_exists(self): with patch("pycouchdb.client.Database") 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(self): """test_get CouchDBBackend.get should return and take two params db conn to couchdb is mocked. TODO Should test on key not exists """ self.app.conf.CELERY_COUCHDB_BACKEND_SETTINGS = {} x = CouchDBBackend(app=self.app) x._connection = Mock() mocked_get = x._connection.get = Mock() mocked_get.return_value = sentinel.retval # should return None self.assertEqual(x.get("1f3fab"), sentinel.retval) x._connection.get.assert_called_once_with("1f3fab") def test_delete(self): """test_delete CouchDBBackend.delete should return and take two params db conn to pycouchdb is mocked. TODO Should test on key not exists """ self.app.conf.CELERY_COUCHDB_BACKEND_SETTINGS = {} x = CouchDBBackend(app=self.app) x._connection = Mock() mocked_delete = x._connection.delete = Mock() mocked_delete.return_value = None # should return None self.assertIsNone(x.delete("1f3fab")) x._connection.delete.assert_called_once_with("1f3fab") def test_config_params(self): """test_config_params celery.conf.CELERY_COUCHDB_BACKEND_SETTINGS is properly set """ self.app.conf.CELERY_COUCHDB_BACKEND_SETTINGS = { "container": "mycoolcontainer", "host": ["here.host.com", "there.host.com"], "username": "******", "password": "******", "port": "1234", } x = CouchDBBackend(app=self.app) self.assertEqual(x.container, "mycoolcontainer") self.assertEqual(x.host, ["here.host.com", "there.host.com"]) self.assertEqual(x.username, "johndoe") self.assertEqual(x.password, "mysecret") self.assertEqual(x.port, 1234) def test_backend_by_url(self, url="couchdb://myhost/mycoolcontainer"): from celery.backends.couchdb import CouchDBBackend backend, url_ = backends.get_backend_by_url(url, self.app.loader) self.assertIs(backend, CouchDBBackend) self.assertEqual(url_, url) def test_backend_params_by_url(self): url = "couchdb://*****:*****@myhost:123/mycoolcontainer" with self.Celery(backend=url) as app: x = app.backend self.assertEqual(x.container, "mycoolcontainer") self.assertEqual(x.host, "myhost") self.assertEqual(x.username, "johndoe") self.assertEqual(x.password, "mysecret") self.assertEqual(x.port, 123)