summaryrefslogtreecommitdiff
path: root/tests/regressiontests/context_processors
diff options
context:
space:
mode:
Diffstat (limited to 'tests/regressiontests/context_processors')
-rw-r--r--tests/regressiontests/context_processors/tests.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/regressiontests/context_processors/tests.py b/tests/regressiontests/context_processors/tests.py
index c7fc4e5a93..31ecc83ab3 100644
--- a/tests/regressiontests/context_processors/tests.py
+++ b/tests/regressiontests/context_processors/tests.py
@@ -3,6 +3,8 @@ Tests for Django's bundled context processors.
"""
from django.conf import settings
+from django.contrib.auth.models import Group
+from django.db.models import Q
from django.test import TestCase
from django.template import Template
@@ -81,3 +83,20 @@ class AuthContextProcessorTests(TestCase):
self.assertContains(response, "username: super")
# bug #12037 is tested by the {% url %} in the template:
self.assertContains(response, "url: /userpage/super/")
+
+ # See if this object can be used for queries where a Q() comparing
+ # a user can be used with another Q() (in an AND or OR fashion).
+ # This simulates what a template tag might do with the user from the
+ # context. Note that we don't need to execute a query, just build it.
+ #
+ # The failure case (bug #12049) on Python 2.4 with a LazyObject-wrapped
+ # User is a fatal TypeError: "function() takes at least 2 arguments
+ # (0 given)" deep inside deepcopy().
+ #
+ # Python 2.5 and 2.6 succeeded, but logged internally caught exception
+ # spew:
+ #
+ # Exception RuntimeError: 'maximum recursion depth exceeded while
+ # calling a Python object' in <type 'exceptions.AttributeError'>
+ # ignored"
+ query = Q(user=response.context['user']) & Q(someflag=True)