コード例 #1
0
 def test_init_no_cassandra(self, *modules):
     # should raise ImproperlyConfigured when no python-driver
     # installed.
     from celery.backends import cassandra as mod
     prev, mod.cassandra = mod.cassandra, None
     try:
         with pytest.raises(ImproperlyConfigured):
             mod.CassandraBackend(app=self.app)
     finally:
         mod.cassandra = prev
コード例 #2
0
    def test_init_with_and_without_LOCAL_QUROM(self):
        with mock_module("pycassa"):
            from celery.backends import cassandra as mod
            mod.pycassa = Mock()
            cons = mod.pycassa.ConsistencyLevel = Object()
            cons.LOCAL_QUORUM = "foo"

            app = self.get_app()
            app.conf.CASSANDRA_READ_CONSISTENCY = "LOCAL_FOO"
            app.conf.CASSANDRA_WRITE_CONSISTENCY = "LOCAL_FOO"

            mod.CassandraBackend(app=app)
            cons.LOCAL_FOO = "bar"
            mod.CassandraBackend(app=app)

            # no servers raises ImproperlyConfigured
            with self.assertRaises(ImproperlyConfigured):
                app.conf.CASSANDRA_SERVERS = None
                mod.CassandraBackend(app=app, keyspace="b", column_family="c")
コード例 #3
0
    def test_store_result(self):
        with mock_module(*CASSANDRA_MODULES):
            from celery.backends import cassandra as mod
            mod.cassandra = Mock()

            x = mod.CassandraBackend(app=self.app)
            x._connection = True
            session = x._session = Mock()
            session.execute = Mock()
            x._store_result('task_id', 'result', states.SUCCESS)
コード例 #4
0
 def test_get_column_family(self):
     with mock_module('pycassa'):
         from celery.backends import cassandra as mod
         mod.pycassa = Mock()
         install_exceptions(mod.pycassa)
         app = self.get_app()
         x = mod.CassandraBackend(app=app)
         self.assertTrue(x._get_column_family())
         self.assertIsNotNone(x._column_family)
         self.assertIs(x._get_column_family(), x._column_family)
コード例 #5
0
ファイル: test_cassandra.py プロジェクト: jonadiazz/celery
    def test_process_cleanup(self):
        with mock_module('pycassa'):
            from celery.backends import cassandra as mod
            x = mod.CassandraBackend(app=self.app)
            x._column_family = None
            x.process_cleanup()

            x._column_family = True
            x.process_cleanup()
            self.assertIsNone(x._column_family)
コード例 #6
0
ファイル: test_cassandra.py プロジェクト: zhangzewen/celery
 def test_init_no_cassandra(self):
     """should raise ImproperlyConfigured when no python-driver
     installed."""
     with mock_module(*CASSANDRA_MODULES):
         from celery.backends import cassandra as mod
         prev, mod.cassandra = mod.cassandra, None
         try:
             with self.assertRaises(ImproperlyConfigured):
                 mod.CassandraBackend(app=self.app)
         finally:
             mod.cassandra = prev
コード例 #7
0
    def test_init_with_and_without_LOCAL_QUROM(self):
        with mock_module('pycassa'):
            from celery.backends import cassandra as mod
            mod.pycassa = Mock()
            install_exceptions(mod.pycassa)
            cons = mod.pycassa.ConsistencyLevel = Object()
            cons.LOCAL_QUORUM = 'foo'

            app = self.get_app()
            app.conf.CASSANDRA_READ_CONSISTENCY = 'LOCAL_FOO'
            app.conf.CASSANDRA_WRITE_CONSISTENCY = 'LOCAL_FOO'

            mod.CassandraBackend(app=app)
            cons.LOCAL_FOO = 'bar'
            mod.CassandraBackend(app=app)

            # no servers raises ImproperlyConfigured
            with self.assertRaises(ImproperlyConfigured):
                app.conf.CASSANDRA_SERVERS = None
                mod.CassandraBackend(app=app, keyspace='b', column_family='c')
コード例 #8
0
ファイル: test_cassandra.py プロジェクト: zxh1986123/celery
    def test_options(self):
        # Ensure valid options works properly
        from celery.backends import cassandra as mod

        mod.cassandra = Mock()
        # Valid options
        self.app.conf.cassandra_options = {
            'cql_version': '3.2.1',
            'protocol_version': 3
        }
        mod.CassandraBackend(app=self.app)
コード例 #9
0
    def test_init_with_and_without_LOCAL_QUROM(self, *modules):
        from celery.backends import cassandra as mod
        mod.cassandra = Mock()

        cons = mod.cassandra.ConsistencyLevel = Bunch(
            LOCAL_QUORUM='foo',
        )

        self.app.conf.cassandra_read_consistency = 'LOCAL_FOO'
        self.app.conf.cassandra_write_consistency = 'LOCAL_FOO'

        mod.CassandraBackend(app=self.app)
        cons.LOCAL_FOO = 'bar'
        mod.CassandraBackend(app=self.app)

        # no servers raises ImproperlyConfigured
        with pytest.raises(ImproperlyConfigured):
            self.app.conf.cassandra_servers = None
            mod.CassandraBackend(
                app=self.app, keyspace='b', column_family='c',
            )
コード例 #10
0
ファイル: test_cassandra.py プロジェクト: jonadiazz/celery
    def test_init_with_and_without_LOCAL_QUROM(self):
        with mock_module('pycassa'):
            from celery.backends import cassandra as mod
            mod.pycassa = Mock()
            install_exceptions(mod.pycassa)
            cons = mod.pycassa.ConsistencyLevel = Object()
            cons.LOCAL_QUORUM = 'foo'

            self.app.conf.cassandra_read_consistency = 'LOCAL_FOO'
            self.app.conf.cassandra_write_consistency = 'LOCAL_FOO'

            mod.CassandraBackend(app=self.app)
            cons.LOCAL_FOO = 'bar'
            mod.CassandraBackend(app=self.app)

            # no servers raises ImproperlyConfigured
            with self.assertRaises(ImproperlyConfigured):
                self.app.conf.cassandra_servers = None
                mod.CassandraBackend(
                    app=self.app, keyspace='b', column_family='c',
                )
コード例 #11
0
ファイル: test_cassandra.py プロジェクト: zxh1986123/celery
    def test_auth_provider(self):
        # Ensure valid auth_provider works properly, and invalid one raises
        # ImproperlyConfigured exception.
        from celery.backends import cassandra as mod

        class DummyAuth(object):
            ValidAuthProvider = Mock()

        mod.cassandra = Mock()
        mod.cassandra.auth = DummyAuth

        # Valid auth_provider
        self.app.conf.cassandra_auth_provider = 'ValidAuthProvider'
        self.app.conf.cassandra_auth_kwargs = {'username': '******'}
        mod.CassandraBackend(app=self.app)

        # Invalid auth_provider
        self.app.conf.cassandra_auth_provider = 'SpiderManAuth'
        self.app.conf.cassandra_auth_kwargs = {'username': '******'}
        with pytest.raises(ImproperlyConfigured):
            mod.CassandraBackend(app=self.app)
コード例 #12
0
ファイル: test_cassandra.py プロジェクト: vladbataev/celery
    def test_auth_provider(self):
        """Ensure valid auth_provider works properly, and invalid one raises
        ImproperlyConfigured exception."""
        class DummyAuth(object):
            ValidAuthProvider = Mock()

        with mock_module(*CASSANDRA_MODULES):
            from celery.backends import cassandra as mod

            mod.cassandra = Mock()
            mod.cassandra.auth = DummyAuth

            # Valid auth_provider
            self.app.conf.cassandra_auth_provider = 'ValidAuthProvider'
            self.app.conf.cassandra_auth_kwargs = {'username': '******'}
            mod.CassandraBackend(app=self.app)

            # Invalid auth_provider
            self.app.conf.cassandra_auth_provider = 'SpiderManAuth'
            self.app.conf.cassandra_auth_kwargs = {'username': '******'}
            with self.assertRaises(ImproperlyConfigured):
                mod.CassandraBackend(app=self.app)
コード例 #13
0
    def test_store_result(self):
        with mock_module("pycassa"):
            from celery.backends import cassandra as mod
            mod.pycassa = Mock()
            mod.Thrift = Mock()
            app = self.get_app()
            x = mod.CassandraBackend(app=app)
            Get_Column = x._get_column_family = Mock()
            cf = Get_Column.return_value = Mock()
            x.detailed_mode = False
            x._store_result("task_id", "result", states.SUCCESS)
            self.assertTrue(cf.insert.called)

            cf.insert.reset()
            x.detailed_mode = True
            x._store_result("task_id", "result", states.SUCCESS)
            self.assertTrue(cf.insert.called)
コード例 #14
0
    def test_get_task_meta_for(self, *modules):
        from celery.backends import cassandra as mod
        mod.cassandra = Mock()

        x = mod.CassandraBackend(app=self.app)
        x._connection = True
        session = x._session = Mock()
        execute = session.execute = Mock()
        execute.return_value = [
            [states.SUCCESS, '1', datetime.now(), b'', b'']
        ]
        x.decode = Mock()
        meta = x._get_task_meta_for('task_id')
        assert meta['status'] == states.SUCCESS

        x._session.execute.return_value = []
        meta = x._get_task_meta_for('task_id')
        assert meta['status'] == states.PENDING
コード例 #15
0
    def test_store_result(self):
        with mock_module('pycassa'):
            from celery.backends import cassandra as mod
            mod.pycassa = Mock()
            install_exceptions(mod.pycassa)
            mod.Thrift = Mock()
            install_exceptions(mod.Thrift)
            x = mod.CassandraBackend(app=self.app)
            Get_Column = x._get_column_family = Mock()
            cf = Get_Column.return_value = Mock()
            x.detailed_mode = False
            x._store_result('task_id', 'result', states.SUCCESS)
            self.assertTrue(cf.insert.called)

            cf.insert.reset()
            x.detailed_mode = True
            x._store_result('task_id', 'result', states.SUCCESS)
            self.assertTrue(cf.insert.called)
コード例 #16
0
    def test_get_task_meta_for(self):
        with mock_module(*CASSANDRA_MODULES):
            from celery.backends import cassandra as mod
            mod.cassandra = Mock()

            x = mod.CassandraBackend(app=self.app)
            x._connection = True
            session = x._session = Mock()
            execute = session.execute = Mock()
            execute.return_value = [
                [states.SUCCESS, '1', datetime.now(), b'', b'']
            ]
            x.decode = Mock()
            meta = x._get_task_meta_for('task_id')
            self.assertEqual(meta['status'], states.SUCCESS)

            x._session.execute.return_value = []
            meta = x._get_task_meta_for('task_id')
            self.assertEqual(meta['status'], states.PENDING)
コード例 #17
0
ファイル: test_cassandra.py プロジェクト: idahogray/celery
    def test_get_task_meta_for(self, module):
        from celery.backends import cassandra as mod
        mod.cassandra = Mock()

        x = mod.CassandraBackend(app=self.app)
        session = x._session = Mock()
        execute = session.execute = Mock()
        result_set = Mock()
        result_set.one.return_value = [
            states.SUCCESS, '1', datetime.now(), b'', b''
        ]
        execute.return_value = result_set
        x.decode = Mock()
        meta = x._get_task_meta_for('task_id')
        assert meta['status'] == states.SUCCESS

        result_set.one.return_value = []
        x._session.execute.return_value = result_set
        meta = x._get_task_meta_for('task_id')
        assert meta['status'] == states.PENDING
コード例 #18
0
ファイル: test_cassandra.py プロジェクト: zypriafl/celery
    def test_init_session(self):
        # Tests behavior when Cluster.connect works properly
        from celery.backends import cassandra as mod

        class DummyCluster(object):
            def __init__(self, *args, **kwargs):
                pass

            def connect(self, *args, **kwargs):
                return Mock()

        mod.cassandra = Mock()
        mod.cassandra.cluster = Mock()
        mod.cassandra.cluster.Cluster = DummyCluster

        x = mod.CassandraBackend(app=self.app)
        assert x._session is None
        x._get_connection(write=True)
        assert x._session is not None

        s = x._session
        x._get_connection()
        assert s is x._session