| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 | 
							- from __future__ import absolute_import, unicode_literals
 
- import json
 
- import pickle
 
- import sys
 
- from datetime import date, datetime, time, timedelta
 
- import pytest
 
- import pytz
 
- from case import Mock, mock, skip
 
- from kombu import Queue
 
- from celery.utils.serialization import (UnpickleableExceptionWrapper,
 
-                                         ensure_serializable,
 
-                                         get_pickleable_etype, jsonify)
 
- class test_AAPickle:
 
-     def test_no_cpickle(self):
 
-         prev = sys.modules.pop('celery.utils.serialization', None)
 
-         try:
 
-             with mock.mask_modules('cPickle'):
 
-                 from celery.utils.serialization import pickle
 
-                 import pickle as orig_pickle
 
-                 assert pickle.dumps is orig_pickle.dumps
 
-         finally:
 
-             sys.modules['celery.utils.serialization'] = prev
 
- class test_ensure_serializable:
 
-     @skip.unless_python3()
 
-     def test_json_py3(self):
 
-         assert (1, "<class 'object'>") == \
 
-             ensure_serializable([1, object], encoder=json.dumps)
 
-     @skip.if_python3()
 
-     def test_json_py2(self):
 
-         assert (1, "<type 'object'>") == \
 
-             ensure_serializable([1, object], encoder=json.dumps)
 
-     def test_pickle(self):
 
-         assert (1, object) == \
 
-             ensure_serializable((1, object), encoder=pickle.dumps)
 
- class test_UnpickleExceptionWrapper:
 
-     def test_init(self):
 
-         x = UnpickleableExceptionWrapper('foo', 'Bar', [10, lambda x: x])
 
-         assert x.exc_args
 
-         assert len(x.exc_args) == 2
 
- class test_get_pickleable_etype:
 
-     def test_get_pickleable_etype(self):
 
-         class Unpickleable(Exception):
 
-             def __reduce__(self):
 
-                 raise ValueError('foo')
 
-         assert get_pickleable_etype(Unpickleable) is Exception
 
- class test_jsonify:
 
-     @pytest.mark.parametrize('obj', [
 
-         Queue('foo'),
 
-         ['foo', 'bar', 'baz'],
 
-         {'foo': 'bar'},
 
-         datetime.utcnow(),
 
-         datetime.utcnow().replace(tzinfo=pytz.utc),
 
-         datetime.utcnow().replace(microsecond=0),
 
-         date(2012, 1, 1),
 
-         time(hour=1, minute=30),
 
-         time(hour=1, minute=30, microsecond=3),
 
-         timedelta(seconds=30),
 
-         10,
 
-         10.3,
 
-         'hello',
 
-     ])
 
-     def test_simple(self, obj):
 
-         assert jsonify(obj)
 
-     def test_unknown_type_filter(self):
 
-         unknown_type_filter = Mock()
 
-         obj = object()
 
-         assert (jsonify(obj, unknown_type_filter=unknown_type_filter) is
 
-                 unknown_type_filter.return_value)
 
-         unknown_type_filter.assert_called_with(obj)
 
-         with pytest.raises(ValueError):
 
-             jsonify(obj)
 
 
  |