diff options
| author | Luke Plant <L.Plant.98@cantab.net> | 2011-05-30 16:33:23 +0000 |
|---|---|---|
| committer | Luke Plant <L.Plant.98@cantab.net> | 2011-05-30 16:33:23 +0000 |
| commit | dc4c2f3add4f15edf05574e6e8eb101be9da4b90 (patch) | |
| tree | 9f2df1b1f0b22ba2759e826e67cdf7677ab05c75 /tests | |
| parent | de3b58d6267a01edefb36c22f80c3399c819d465 (diff) | |
Fixed #15929 - test.client.RequestFactory keeps state/AuthMiddleware does monkey patching
Thanks to m.vantellingen for the report and tests, and to aaugustin for
work on the tests.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@16297 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/regressiontests/test_client_regress/models.py | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/tests/regressiontests/test_client_regress/models.py b/tests/regressiontests/test_client_regress/models.py index 6757695fec..8b47fe2e5b 100644 --- a/tests/regressiontests/test_client_regress/models.py +++ b/tests/regressiontests/test_client_regress/models.py @@ -12,7 +12,7 @@ from django.template import (TemplateDoesNotExist, TemplateSyntaxError, Context, Template, loader) import django.template.context from django.test import Client, TestCase -from django.test.client import encode_file +from django.test.client import encode_file, RequestFactory from django.test.utils import ContextList @@ -908,3 +908,32 @@ class RawPostDataTest(TestCase): response = self.client.get("/test_client_regress/raw_post_data/") except AssertionError: self.fail("Accessing request.raw_post_data from a view fetched with GET by the test client shouldn't fail.") + + +class RequestFactoryStateTest(TestCase): + """Regression tests for #15929.""" + # These tests are checking that certain middleware don't change certain + # global state. Alternatively, from the point of view of a test, they are + # ensuring test isolation behaviour. So, unusually, it doesn't make sense to + # run the tests individually, and if any are failing it is confusing to run + # them with any other set of tests. + + def setUp(self): + self.factory = RequestFactory() + + def common_test_that_should_always_pass(self): + request = self.factory.get('/') + request.session = {} + self.assertFalse(hasattr(request, 'user')) + + def test_request(self): + self.common_test_that_should_always_pass() + + def test_request_after_client(self): + # apart from the next line the three tests are identical + self.client.get('/') + self.common_test_that_should_always_pass() + + def test_request_after_client_2(self): + # This test is executed after the previous one + self.common_test_that_should_always_pass() |
