Exemple #1
0
    def test_reduce(self):
        a1 = self.app.AsyncResult('uuid')
        restored = pickle.loads(pickle.dumps(a1))
        self.assertEqual(restored.id, 'uuid')

        a2 = self.app.AsyncResult('uuid')
        self.assertEqual(pickle.loads(pickle.dumps(a2)).id, 'uuid')
Exemple #2
0
 def _mget_to_results(self, values, keys):
     if hasattr(values, "items"):
         # client returns dict so mapping preserved.
         return dict((self._strip_prefix(k), pickle.loads(str(v))) for k, v in values.iteritems() if v is not None)
     else:
         # client returns list so need to recreate mapping.
         return dict((keys[i], pickle.loads(str(value))) for i, value in enumerate(values) if value is not None)
Exemple #3
0
    def test_reduce(self):
        a1 = self.app.AsyncResult('uuid')
        restored = pickle.loads(pickle.dumps(a1))
        assert restored.id == 'uuid'

        a2 = self.app.AsyncResult('uuid')
        assert pickle.loads(pickle.dumps(a2)).id == 'uuid'
Exemple #4
0
    def test_reduce(self):
        a1 = self.app.AsyncResult('uuid')
        restored = pickle.loads(pickle.dumps(a1))
        assert restored.id == 'uuid'

        a2 = self.app.AsyncResult('uuid')
        assert pickle.loads(pickle.dumps(a2)).id == 'uuid'
Exemple #5
0
    def test_reduce(self):
        a1 = self.app.AsyncResult('uuid')
        restored = pickle.loads(pickle.dumps(a1))
        self.assertEqual(restored.id, 'uuid')

        a2 = self.app.AsyncResult('uuid')
        self.assertEqual(pickle.loads(pickle.dumps(a2)).id, 'uuid')
Exemple #6
0
    def test_reduce(self):
        a1 = AsyncResult("uuid", task_name="celery.ping")
        restored = pickle.loads(pickle.dumps(a1))
        self.assertEqual(restored.task_id, "uuid")
        self.assertEqual(restored.task_name, "celery.ping")

        a2 = AsyncResult("uuid")
        self.assertEqual(pickle.loads(pickle.dumps(a2)).task_id, "uuid")
    def test_reduce(self):
        a1 = AsyncResult("uuid", task_name=mytask.name)
        restored = pickle.loads(pickle.dumps(a1))
        self.assertEqual(restored.task_id, "uuid")
        self.assertEqual(restored.task_name, mytask.name)

        a2 = AsyncResult("uuid")
        self.assertEqual(pickle.loads(pickle.dumps(a2)).task_id, "uuid")
Exemple #8
0
    def test_reduce(self):
        a1 = AsyncResult('uuid', task_name=mytask.name)
        restored = pickle.loads(pickle.dumps(a1))
        self.assertEqual(restored.id, 'uuid')
        self.assertEqual(restored.task_name, mytask.name)

        a2 = AsyncResult('uuid')
        self.assertEqual(pickle.loads(pickle.dumps(a2)).id, 'uuid')
Exemple #9
0
    def test_reduce(self):
        a1 = self.app.AsyncResult("uuid", task_name=self.mytask.name)
        restored = pickle.loads(pickle.dumps(a1))
        self.assertEqual(restored.id, "uuid")
        self.assertEqual(restored.task_name, self.mytask.name)

        a2 = self.app.AsyncResult("uuid")
        self.assertEqual(pickle.loads(pickle.dumps(a2)).id, "uuid")
Exemple #10
0
    def test_reduce(self):
        a1 = self.app.AsyncResult('uuid', task_name=self.mytask.name)
        restored = pickle.loads(pickle.dumps(a1))
        self.assertEqual(restored.id, 'uuid')
        self.assertEqual(restored.task_name, self.mytask.name)

        a2 = self.app.AsyncResult('uuid')
        self.assertEqual(pickle.loads(pickle.dumps(a2)).id, 'uuid')
Exemple #11
0
    def test_reduce(self):
        a1 = AsyncResult("uuid", task_name="celery.ping")
        restored = pickle.loads(pickle.dumps(a1))
        self.assertEqual(restored.task_id, "uuid")
        self.assertEqual(restored.task_name, "celery.ping")

        a2 = AsyncResult("uuid")
        self.assertEqual(pickle.loads(pickle.dumps(a2)).task_id, "uuid")
Exemple #12
0
 def _mget_to_results(self, values, keys):
     if hasattr(values, "items"):
         # client returns dict so mapping preserved.
         return dict((self._strip_prefix(k), pickle.loads(str(v)))
                     for k, v in values.iteritems() if v is not None)
     else:
         # client returns list so need to recreate mapping.
         return dict((keys[i], pickle.loads(str(value)))
                     for i, value in enumerate(values) if value is not None)
Exemple #13
0
 def _do_get():
     cf = self._get_column_family()
     try:
         obj = cf.get(task_id)
         meta = {
             "task_id": task_id,
             "status": obj["status"],
             "result": pickle.loads(str(obj["result"])),
             "date_done": obj["date_done"],
             "traceback": pickle.loads(str(obj["traceback"])),
         }
     except (KeyError, pycassa.NotFoundException):
         meta = {"status": states.PENDING, "result": None}
     return meta
Exemple #14
0
 def _do_get():
     cf = self._get_column_family()
     try:
         obj = cf.get(task_id)
         meta = {
             "task_id": task_id,
             "status": obj["status"],
             "result": pickle.loads(str(obj["result"])),
             "date_done": obj["date_done"],
             "traceback": pickle.loads(str(obj["traceback"])),
         }
     except (KeyError, pycassa.NotFoundException):
         meta = {"status": states.PENDING, "result": None}
     return meta
    def test_memcache_wrapper(self):

        try:
            from django.core.cache.backends import memcached
            from django.core.cache.backends import locmem
        except InvalidCacheBackendError:
            sys.stderr.write(
                "\n* Memcache library is not installed. Skipping test.\n")
            return
        prev_cache_cls = memcached.CacheClass
        memcached.CacheClass = locmem.CacheClass
        prev_backend_module = sys.modules.pop("djcelery.backends.cache")
        try:
            from djcelery.backends.cache import cache, DjangoMemcacheWrapper
            self.assertIsInstance(cache, DjangoMemcacheWrapper)

            key = "cu.test_memcache_wrapper"
            val = "The quick brown fox."
            default = "The lazy dog."

            self.assertEqual(cache.get(key, default=default), default)
            cache.set(key, val)
            self.assertEqual(pickle.loads(cache.get(key, default=default)),
                              val)
        finally:
            memcached.CacheClass = prev_cache_cls
            sys.modules["djcelery.backends.cache"] = prev_backend_module
Exemple #16
0
 def test_pickle_app(self):
     changes = dict(THE_FOO_BAR="bars", THE_MII_MAR="jars")
     self.app.conf.update(changes)
     saved = pickle.dumps(self.app)
     self.assertLess(len(saved), 2048)
     restored = pickle.loads(saved)
     self.assertDictContainsSubset(changes, restored.conf)
Exemple #17
0
    def test_memcache_wrapper(self):

        try:
            from django.core.cache.backends import memcached
            from django.core.cache.backends import locmem
        except InvalidCacheBackendError:
            sys.stderr.write(
                "\n* Memcache library is not installed. Skipping test.\n")
            return
        prev_cache_cls = memcached.CacheClass
        memcached.CacheClass = locmem.CacheClass
        prev_backend_module = sys.modules.pop("djcelery.backends.cache")
        try:
            from djcelery.backends.cache import cache, DjangoMemcacheWrapper
            self.assertIsInstance(cache, DjangoMemcacheWrapper)

            key = "cu.test_memcache_wrapper"
            val = "The quick brown fox."
            default = "The lazy dog."

            self.assertEqual(cache.get(key, default=default), default)
            cache.set(key, val)
            self.assertEqual(pickle.loads(cache.get(key, default=default)),
                             val)
        finally:
            memcached.CacheClass = prev_cache_cls
            sys.modules["djcelery.backends.cache"] = prev_backend_module
Exemple #18
0
 def test_pickle_app(self):
     changes = dict(THE_FOO_BAR='bars', THE_MII_MAR='jars')
     self.app.conf.update(changes)
     saved = pickle.dumps(self.app)
     self.assertLess(len(saved), 2048)
     restored = pickle.loads(saved)
     self.assertDictContainsSubset(changes, restored.conf)
Exemple #19
0
 def test_pickle_app(self):
     changes = dict(THE_FOO_BAR="bars", THE_MII_MAR="jars")
     self.app.conf.update(changes)
     saved = pickle.dumps(self.app)
     assert len(saved) < 2048
     restored = pickle.loads(saved)
     for key, value in items(changes):
         assert restored.conf[key] == value
Exemple #20
0
 def test_pickle_app(self):
     changes = dict(THE_FOO_BAR='bars', THE_MII_MAR='jars')
     self.app.conf.update(changes)
     saved = pickle.dumps(self.app)
     assert len(saved) < 2048
     restored = pickle.loads(saved)
     for key, value in items(changes):
         assert restored.conf[key] == value
Exemple #21
0
 def test_pickle_app(self):
     changes = {'THE_FOO_BAR': 'bars', 'THE_MII_MAR': 'jars'}
     self.app.conf.update(changes)
     saved = pickle.dumps(self.app)
     assert len(saved) < 2048
     restored = pickle.loads(saved)
     for key, value in changes.items():
         assert restored.conf[key] == value
Exemple #22
0
    def _get_task_meta_for(self, task_id):
        """Get task metadata for a task by id."""

        db = self._get_database()
        taskmeta_collection = db[self.mongodb_taskmeta_collection]
        obj = taskmeta_collection.find_one({"_id": task_id})
        if not obj:
            return {"status": states.PENDING, "result": None}

        meta = {
            "task_id": obj["_id"],
            "status": obj["status"],
            "result": pickle.loads(str(obj["result"])),
            "date_done": obj["date_done"],
            "traceback": pickle.loads(str(obj["traceback"])),
        }

        return meta
Exemple #23
0
    def _get_task_meta_for(self, task_id):
        """Get task metadata for a task by id."""

        db = self._get_database()
        taskmeta_collection = db[self.mongodb_taskmeta_collection]
        obj = taskmeta_collection.find_one({"_id": task_id})
        if not obj:
            return {"status": states.PENDING, "result": None}

        meta = {
            "task_id": obj["_id"],
            "status": obj["status"],
            "result": pickle.loads(str(obj["result"])),
            "date_done": obj["date_done"],
            "traceback": pickle.loads(str(obj["traceback"])),
        }

        return meta
Exemple #24
0
    def test_pickle_regular_exception(self):
        exc = None
        try:
            raise RegularException('RegularException raised')
        except RegularException as exc_:
            exc = exc_

        pickled = pickle.dumps({'exception': exc})
        unpickled = pickle.loads(pickled)
        exception = unpickled.get('exception')
        self.assertTrue(exception)
        self.assertIsInstance(exception, RegularException)
        self.assertTupleEqual(exception.args, ('RegularException raised', ))
Exemple #25
0
    def test_pickle_regular_exception(self):
        exc = None
        try:
            raise RegularException('RegularException raised')
        except RegularException as exc_:
            exc = exc_

        pickled = pickle.dumps({'exception': exc})
        unpickled = pickle.loads(pickled)
        exception = unpickled.get('exception')
        assert exception
        assert isinstance(exception, RegularException)
        assert exception.args == ('RegularException raised',)
Exemple #26
0
    def test_pickle_regular_exception(self):
        exc = None
        try:
            raise RegularException('RegularException raised')
        except RegularException as exc_:
            exc = exc_

        pickled = pickle.dumps({'exception': exc})
        unpickled = pickle.loads(pickled)
        exception = unpickled.get('exception')
        self.assertTrue(exception)
        self.assertIsInstance(exception, RegularException)
        self.assertTupleEqual(exception.args, ('RegularException raised', ))
Exemple #27
0
    def test_pickle_regular_exception(self):
        exc = None
        try:
            raise RegularException('RegularException raised')
        except RegularException as exc_:
            exc = exc_

        pickled = pickle.dumps({'exception': exc})
        unpickled = pickle.loads(pickled)
        exception = unpickled.get('exception')
        assert exception
        assert isinstance(exception, RegularException)
        assert exception.args == ('RegularException raised',)
Exemple #28
0
class TestPickle(unittest.TestCase):
    def test_pickle_regular_exception(self):
        exc = None
        try:
            raise RegularException("RegularException raised")
        except RegularException, exc_:
            exc = exc_

        pickled = pickle.dumps({"exception": exc})
        unpickled = pickle.loads(pickled)
        exception = unpickled.get("exception")
        self.assertTrue(exception)
        self.assertIsInstance(exception, RegularException)
        self.assertTupleEqual(exception.args, ("RegularException raised", ))
Exemple #29
0
    def test_pickle_arg_override_exception(self):

        exc = None
        try:
            raise ArgOverrideException(
                'ArgOverrideException raised', status_code=100,
            )
        except ArgOverrideException as exc_:
            exc = exc_

        pickled = pickle.dumps({'exception': exc})
        unpickled = pickle.loads(pickled)
        exception = unpickled.get('exception')
        assert exception
        assert isinstance(exception, ArgOverrideException)
        assert exception.args == ('ArgOverrideException raised', 100)
        assert exception.status_code == 100
Exemple #30
0
    def test_pickle_arg_override_exception(self):

        exc = None
        try:
            raise ArgOverrideException('ArgOverrideException raised',
                                       status_code=100)
        except ArgOverrideException as exc_:
            exc = exc_

        pickled = pickle.dumps({'exception': exc})
        unpickled = pickle.loads(pickled)
        exception = unpickled.get('exception')
        self.assertTrue(exception)
        self.assertIsInstance(exception, ArgOverrideException)
        self.assertTupleEqual(exception.args,
                              ('ArgOverrideException raised', 100))
        self.assertEqual(exception.status_code, 100)
Exemple #31
0
    def test_pending_configuration__setattr(self):
        with self.Celery(broker='foo://bar') as app:
            app.conf.task_default_delivery_mode = 44
            app.conf.worker_agent = 'foo:Bar'
            self.assertFalse(app.configured)
            self.assertEqual(app.conf.worker_agent, 'foo:Bar')
            self.assertEqual(app.conf.broker_url, 'foo://bar')
            self.assertEqual(app._preconf['worker_agent'], 'foo:Bar')

            self.assertTrue(app.configured)
            reapp = pickle.loads(pickle.dumps(app))
            self.assertEqual(reapp._preconf['worker_agent'], 'foo:Bar')
            self.assertFalse(reapp.configured)
            self.assertEqual(reapp.conf.worker_agent, 'foo:Bar')
            self.assertTrue(reapp.configured)
            self.assertEqual(reapp.conf.broker_url, 'foo://bar')
            self.assertEqual(reapp._preconf['worker_agent'], 'foo:Bar')
Exemple #32
0
    def test_pending_configuration__setattr(self):
        with self.Celery(broker='foo://bar') as app:
            app.conf.task_default_delivery_mode = 44
            app.conf.worker_agent = 'foo:Bar'
            assert not app.configured
            assert app.conf.worker_agent == 'foo:Bar'
            assert app.conf.broker_url == 'foo://bar'
            assert app._preconf['worker_agent'] == 'foo:Bar'

            assert app.configured
            reapp = pickle.loads(pickle.dumps(app))
            assert reapp._preconf['worker_agent'] == 'foo:Bar'
            assert not reapp.configured
            assert reapp.conf.worker_agent == 'foo:Bar'
            assert reapp.configured
            assert reapp.conf.broker_url == 'foo://bar'
            assert reapp._preconf['worker_agent'] == 'foo:Bar'
Exemple #33
0
    def test_pending_configuration__setattr(self):
        with self.Celery(broker='foo://bar') as app:
            app.conf.task_default_delivery_mode = 44
            app.conf.worker_agent = 'foo:Bar'
            self.assertFalse(app.configured)
            self.assertEqual(app.conf.worker_agent, 'foo:Bar')
            self.assertEqual(app.conf.broker_url, 'foo://bar')
            self.assertEqual(app._preconf['worker_agent'], 'foo:Bar')

            self.assertTrue(app.configured)
            reapp = pickle.loads(pickle.dumps(app))
            self.assertEqual(reapp._preconf['worker_agent'], 'foo:Bar')
            self.assertFalse(reapp.configured)
            self.assertEqual(reapp.conf.worker_agent, 'foo:Bar')
            self.assertTrue(reapp.configured)
            self.assertEqual(reapp.conf.broker_url, 'foo://bar')
            self.assertEqual(reapp._preconf['worker_agent'], 'foo:Bar')
Exemple #34
0
    def test_pickle_arg_override_exception(self):

        exc = None
        try:
            raise ArgOverrideException(
                'ArgOverrideException raised', status_code=100,
            )
        except ArgOverrideException as exc_:
            exc = exc_

        pickled = pickle.dumps({'exception': exc})
        unpickled = pickle.loads(pickled)
        exception = unpickled.get('exception')
        assert exception
        assert isinstance(exception, ArgOverrideException)
        assert exception.args == ('ArgOverrideException raised', 100)
        assert exception.status_code == 100
Exemple #35
0
    def test_init(self):
        from celery import chord
        from celery.utils.serialization import pickle

        @self.app.task(shared=False)
        def addX(x, y):
            return x + y

        @self.app.task(shared=False)
        def sumX(n):
            return sum(n)

        x = chord(addX.s(i, i) for i in range(10))
        # kwargs used to nest and recurse in serialization/deserialization
        # (#6810)
        assert x.kwargs['kwargs'] == {}
        assert pickle.loads(pickle.dumps(x)).kwargs == x.kwargs
Exemple #36
0
    def test_pending_configuration__setattr(self):
        with self.Celery(broker='foo://bar') as app:
            app.conf.task_default_delivery_mode = 44
            app.conf.worker_agent = 'foo:Bar'
            assert not app.configured
            assert app.conf.worker_agent == 'foo:Bar'
            assert app.conf.broker_url == 'foo://bar'
            assert app._preconf['worker_agent'] == 'foo:Bar'

            assert app.configured
            reapp = pickle.loads(pickle.dumps(app))
            assert reapp._preconf['worker_agent'] == 'foo:Bar'
            assert not reapp.configured
            assert reapp.conf.worker_agent == 'foo:Bar'
            assert reapp.configured
            assert reapp.conf.broker_url == 'foo://bar'
            assert reapp._preconf['worker_agent'] == 'foo:Bar'
Exemple #37
0
    def test_pickle_arg_override_exception(self):

        exc = None
        try:
            raise ArgOverrideException(
                'ArgOverrideException raised', status_code=100,
            )
        except ArgOverrideException as exc_:
            exc = exc_

        pickled = pickle.dumps({'exception': exc})
        unpickled = pickle.loads(pickled)
        exception = unpickled.get('exception')
        self.assertTrue(exception)
        self.assertIsInstance(exception, ArgOverrideException)
        self.assertTupleEqual(exception.args, (
                              'ArgOverrideException raised', 100))
        self.assertEqual(exception.status_code, 100)
Exemple #38
0
 def test_is_pickleable(self):
     ts = self.app.GroupResult(uuid(), [self.app.AsyncResult(uuid())])
     self.assertEqual(pickle.loads(pickle.dumps(ts)), ts)
     ts2 = self.app.GroupResult(uuid(), [self.app.AsyncResult(uuid())])
     self.assertEqual(pickle.loads(pickle.dumps(ts2)), ts2)
Exemple #39
0
 def test_reduce(self):
     self.assertTrue(pickle.loads(pickle.dumps(self.ts)))
Exemple #40
0
        exc = None
        try:
            raise RegularException("RegularException raised")
        except RegularException, exc_:
            exc = exc_

        pickled = pickle.dumps({"exception": exc})
        unpickled = pickle.loads(pickled)
        exception = unpickled.get("exception")
        self.assertTrue(exception)
        self.assertIsInstance(exception, RegularException)
        self.assertTupleEqual(exception.args, ("RegularException raised", ))

    def test_pickle_arg_override_exception(self):

        exc = None
        try:
            raise ArgOverrideException("ArgOverrideException raised",
                    status_code=100)
        except ArgOverrideException, exc_:
            exc = exc_

        pickled = pickle.dumps({"exception": exc})
        unpickled = pickle.loads(pickled)
        exception = unpickled.get("exception")
        self.assertTrue(exception)
        self.assertIsInstance(exception, ArgOverrideException)
        self.assertTupleEqual(exception.args, (
                              "ArgOverrideException raised", 100))
        self.assertEqual(exception.status_code, 100)
Exemple #41
0
 def test_reduce(self):
     self.assertTrue(pickle.loads(pickle.dumps(self.ts)))
Exemple #42
0
 def test_pickleable(self):
     self.assertTrue(pickle.loads(pickle.dumps(self.ts)))
Exemple #43
0
 def _restore_taskset(self, taskset_id):
     """Get task metadata for a task by id."""
     meta = self.get(self.get_key_for_taskset(taskset_id))
     if meta:
         meta = pickle.loads(str(meta))
         return meta
Exemple #44
0
 def _restore_taskset(self, taskset_id):
     """Get task metadata for a task by id."""
     meta = self.get(self.get_key_for_taskset(taskset_id))
     if meta:
         meta = pickle.loads(str(meta))
         return meta
Exemple #45
0
 def test_is_pickleable(self):
     ts = self.app.GroupResult(uuid(), [self.app.AsyncResult(uuid())])
     assert pickle.loads(pickle.dumps(ts)) == ts
     ts2 = self.app.GroupResult(uuid(), [self.app.AsyncResult(uuid())])
     assert pickle.loads(pickle.dumps(ts2)) == ts2
Exemple #46
0
 def test_pickleable(self):
     assert pickle.loads(pickle.dumps(self.ts))
Exemple #47
0
        exc = None
        try:
            raise RegularException("RegularException raised")
        except RegularException, exc_:
            exc = exc_

        pickled = pickle.dumps({"exception": exc})
        unpickled = pickle.loads(pickled)
        exception = unpickled.get("exception")
        self.assertTrue(exception)
        self.assertIsInstance(exception, RegularException)
        self.assertTupleEqual(exception.args, ("RegularException raised", ))

    def test_pickle_arg_override_exception(self):

        exc = None
        try:
            raise ArgOverrideException("ArgOverrideException raised",
                                       status_code=100)
        except ArgOverrideException, exc_:
            exc = exc_

        pickled = pickle.dumps({"exception": exc})
        unpickled = pickle.loads(pickled)
        exception = unpickled.get("exception")
        self.assertTrue(exception)
        self.assertIsInstance(exception, ArgOverrideException)
        self.assertTupleEqual(exception.args,
                              ("ArgOverrideException raised", 100))
        self.assertEqual(exception.status_code, 100)
Exemple #48
0
def decode(value, compress_object=False):
    return pickle.loads(maybe_decompress(b64decode(value), compress_object))
Exemple #49
0
 def _get_task_meta_for(self, task_id):
     """Get task metadata for a task by id."""
     meta = self.get(self.get_key_for_task(task_id))
     if not meta:
         return {"status": states.PENDING, "result": None}
     return pickle.loads(str(meta))
def decode(value, compress_object=False):
    return pickle.loads(maybe_decompress(b64decode(value), compress_object))
Exemple #51
0
 def test_is_pickleable(self):
     ts = self.app.GroupResult(uuid(), [self.app.AsyncResult(uuid())])
     assert pickle.loads(pickle.dumps(ts)) == ts
     ts2 = self.app.GroupResult(uuid(), [self.app.AsyncResult(uuid())])
     assert pickle.loads(pickle.dumps(ts2)) == ts2
Exemple #52
0
 def test_is_pickleable(self):
     ts = self.app.GroupResult(uuid(), [self.app.AsyncResult(uuid())])
     self.assertEqual(pickle.loads(pickle.dumps(ts)), ts)
     ts2 = self.app.GroupResult(uuid(), [self.app.AsyncResult(uuid())])
     self.assertEqual(pickle.loads(pickle.dumps(ts2)), ts2)
Exemple #53
0
 def test_pickleable(self):
     assert pickle.loads(pickle.dumps(self.ts))
Exemple #54
0
 def _get_task_meta_for(self, task_id):
     """Get task metadata for a task by id."""
     meta = self.get(self.get_key_for_task(task_id))
     if not meta:
         return {"status": states.PENDING, "result": None}
     return pickle.loads(str(meta))
Exemple #55
0
 def test_pickleable(self):
     self.assertTrue(pickle.loads(pickle.dumps(self.ts)))