123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- from __future__ import absolute_import
- import pytz
- from datetime import datetime, date, time, timedelta
- from mock import Mock, patch
- from kombu import Queue
- from celery.utils import (
- chunks,
- is_iterable,
- cached_property,
- warn_deprecated,
- worker_direct,
- gen_task_name,
- jsonify,
- )
- from celery.tests.case import Case
- def double(x):
- return x * 2
- class test_worker_direct(Case):
- def test_returns_if_queue(self):
- q = Queue('foo')
- self.assertIs(worker_direct(q), q)
- class test_gen_task_name(Case):
- def test_no_module(self):
- app = Mock()
- app.name == '__main__'
- self.assertTrue(gen_task_name(app, 'foo', 'axsadaewe'))
- class test_jsonify(Case):
- def test_simple(self):
- self.assertTrue(jsonify(Queue('foo')))
- self.assertTrue(jsonify(['foo', 'bar', 'baz']))
- self.assertTrue(jsonify({'foo': 'bar'}))
- self.assertTrue(jsonify(datetime.utcnow()))
- self.assertTrue(jsonify(datetime.utcnow().replace(tzinfo=pytz.utc)))
- self.assertTrue(jsonify(datetime.utcnow().replace(microsecond=0)))
- self.assertTrue(jsonify(date(2012, 1, 1)))
- self.assertTrue(jsonify(time(hour=1, minute=30)))
- self.assertTrue(jsonify(time(hour=1, minute=30, microsecond=3)))
- self.assertTrue(jsonify(timedelta(seconds=30)))
- self.assertTrue(jsonify(10))
- self.assertTrue(jsonify(10.3))
- self.assertTrue(jsonify('hello'))
- with self.assertRaises(ValueError):
- jsonify(object())
- class test_chunks(Case):
- def test_chunks(self):
- # n == 2
- x = chunks(iter([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]), 2)
- self.assertListEqual(
- list(x),
- [[0, 1], [2, 3], [4, 5], [6, 7], [8, 9], [10]],
- )
- # n == 3
- x = chunks(iter([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]), 3)
- self.assertListEqual(
- list(x),
- [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10]],
- )
- # n == 2 (exact)
- x = chunks(iter([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), 2)
- self.assertListEqual(
- list(x),
- [[0, 1], [2, 3], [4, 5], [6, 7], [8, 9]],
- )
- class test_utils(Case):
- def test_is_iterable(self):
- for a in 'f', ['f'], ('f', ), {'f': 'f'}:
- self.assertTrue(is_iterable(a))
- for b in object(), 1:
- self.assertFalse(is_iterable(b))
- def test_cached_property(self):
- def fun(obj):
- return fun.value
- x = cached_property(fun)
- self.assertIs(x.__get__(None), x)
- self.assertIs(x.__set__(None, None), x)
- self.assertIs(x.__delete__(None), x)
- @patch('warnings.warn')
- def test_warn_deprecated(self, warn):
- warn_deprecated('Foo')
- self.assertTrue(warn.called)
|