12345678910111213141516171819202122232425262728293031 |
- from __future__ import unicode_literals
- import pickle
- from django.contrib.auth.models import User
- from django.test import TestCase
- from django.utils import six
- from django.utils.functional import SimpleLazyObject
- class TestUtilsSimpleLazyObjectDjangoTestCase(TestCase):
- def test_pickle_py2_regression(self):
- # See ticket #20212
- user = User.objects.create_user('johndoe', 'john@example.com', 'pass')
- x = SimpleLazyObject(lambda: user)
- # This would fail with "TypeError: can't pickle instancemethod objects",
- # only on Python 2.X.
- pickle.dumps(x)
- # Try the variant protocol levels.
- pickle.dumps(x, 0)
- pickle.dumps(x, 1)
- pickle.dumps(x, 2)
- if six.PY2:
- import cPickle
- # This would fail with "TypeError: expected string or Unicode object, NoneType found".
- cPickle.dumps(x)
|