def test_get(self): key = uuid4() self.redis.setex(key, 10, '1') storage = RedisStorage(self.redis) assert storage.get(key) == '1'
from celery import current_app from celery.task import task from redis import StrictRedis from celery_dedupe import DedupeTask from celery_dedupe.storage.redis import RedisStorage from tests import settings redis = StrictRedis(db=9) storage = RedisStorage(redis, expiry=60) @task(base=DedupeTask, storage=storage) def noop_task(*a, **kw): return None @task(base=DedupeTask, storage=storage, bind=True) def raise_exception(self, *a, **kw): raise AttributeError() @task(base=DedupeTask, storage=storage, bind=True) def retry_task(self, *a, **kw): if self.request.retries == 0: self.retry(countdown=0) return True class TestDedupeTask(object): def setup_class(self):
def test_already_locked(self): key = uuid4() self.redis.setex(key, 10, '1') storage = RedisStorage(self.redis, expiry=10) assert not storage.obtain_lock(key, '1')
def test_release_lock(self): key = uuid4() self.redis.setex(key, 10, '1') storage = RedisStorage(self.redis, expiry=10) storage.release_lock(key) assert not self.redis.get(key)
def test_lock_obtained(self): storage = RedisStorage(self.redis) assert storage.obtain_lock(uuid4(), '1')
def test_lock_obtained_with_expiry(self): key = uuid4() storage = RedisStorage(self.redis, expiry=10) assert storage.obtain_lock(key, '1') assert self.redis.ttl(key) == 10