diff options
Diffstat (limited to 'tests/regressiontests/context_processors')
| -rw-r--r-- | tests/regressiontests/context_processors/tests.py | 19 |
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) |
