Commit 4f40b97d authored by Tim Graham's avatar Tim Graham
Browse files

Fixed #21118 -- Isolated a test that uses the database.

Thanks rmboggs for the report.
parent 2f0566fa
Loading
Loading
Loading
Loading
+14 −12
Original line number Diff line number Diff line
@@ -5,6 +5,8 @@ import pickle
import sys
from unittest import TestCase

from django.contrib.auth.models import User
from django.test import TestCase as DjangoTestCase
from django.utils import six
from django.utils.functional import SimpleLazyObject, empty

@@ -165,9 +167,19 @@ class TestUtilsSimpleLazyObject(TestCase):
        self.assertTrue(lazy1 != lazy3)
        self.assertFalse(lazy1 != lazy2)

    def test_pickle_py2_regression(self):
        from django.contrib.auth.models import User
    def test_list_set(self):
        lazy_list = SimpleLazyObject(lambda: [1, 2, 3, 4, 5])
        lazy_set = SimpleLazyObject(lambda: set([1, 2, 3, 4]))
        self.assertTrue(1 in lazy_list)
        self.assertTrue(1 in lazy_set)
        self.assertFalse(6 in lazy_list)
        self.assertFalse(6 in lazy_set)
        self.assertEqual(len(lazy_list), 5)
        self.assertEqual(len(lazy_set), 4)

class TestUtilsSimpleLazyObjectDjangoTestCase(DjangoTestCase):

    def test_pickle_py2_regression(self):
        # See ticket #20212
        user = User.objects.create_user('johndoe', 'john@example.com', 'pass')
        x = SimpleLazyObject(lambda: user)
@@ -186,13 +198,3 @@ class TestUtilsSimpleLazyObject(TestCase):

            # This would fail with "TypeError: expected string or Unicode object, NoneType found".
            pickled = cPickle.dumps(x)

    def test_list_set(self):
        lazy_list = SimpleLazyObject(lambda: [1, 2, 3, 4, 5])
        lazy_set = SimpleLazyObject(lambda: set([1, 2, 3, 4]))
        self.assertTrue(1 in lazy_list)
        self.assertTrue(1 in lazy_set)
        self.assertFalse(6 in lazy_list)
        self.assertFalse(6 in lazy_set)
        self.assertEqual(len(lazy_list), 5)
        self.assertEqual(len(lazy_set), 4)