Skip to content

Commit cac3375

Browse files
committed
Fake auth middleware in tests
Some tests require the session and auth middleware. The auth middleware inject the AnonymousUser. It helps to pass some tests in the corporate site to update a dependency
1 parent 5067f5c commit cac3375

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

readthedocs/rtd_tests/tests/test_middleware.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from corsheaders.middleware import CorsMiddleware
22
from django.conf import settings
3-
from django.contrib.auth.models import AnonymousUser
3+
from django.contrib.auth.middleware import AuthenticationMiddleware
4+
from django.contrib.sessions.middleware import SessionMiddleware
45
from django.http import Http404
56
from django.test import TestCase
67
from django.test.client import RequestFactory
@@ -30,10 +31,14 @@ def setUp(self):
3031
privacy_level='public'
3132
)
3233

34+
def process_request_auth_middleware(self, request):
35+
SessionMiddleware().process_request(request)
36+
AuthenticationMiddleware().process_request(request)
37+
3338
def test_failey_cname(self):
3439
self.assertFalse(Domain.objects.filter(domain='my.host.com').exists())
3540
request = self.factory.get(self.url, HTTP_HOST='my.host.com')
36-
request.user = AnonymousUser()
41+
self.process_request_auth_middleware(request)
3742
r = self.middleware.process_request(request)
3843
self.assertEqual(r.status_code, 404)
3944
self.assertEqual(request.cname, True)
@@ -98,7 +103,7 @@ def test_domain_object(self):
98103
def test_domain_object_missing(self):
99104
self.domain = get(Domain, domain='docs.foobar2.com', project=self.pip)
100105
request = self.factory.get(self.url, HTTP_HOST='docs.foobar.com')
101-
request.user = AnonymousUser()
106+
self.process_request_auth_middleware(request)
102107
r = self.middleware.process_request(request)
103108
self.assertEqual(r.status_code, 404)
104109

@@ -144,15 +149,15 @@ def test_use_subdomain(self):
144149
def test_long_bad_subdomain(self):
145150
domain = 'www.pip.readthedocs.org'
146151
request = self.factory.get(self.url, HTTP_HOST=domain)
147-
request.user = AnonymousUser()
152+
self.process_request_auth_middleware(request)
148153
res = self.middleware.process_request(request)
149154
self.assertEqual(res.status_code, 400)
150155

151156
@override_settings(PRODUCTION_DOMAIN='readthedocs.org')
152157
def test_long_subdomain(self):
153158
domain = 'some.long.readthedocs.org'
154159
request = self.factory.get(self.url, HTTP_HOST=domain)
155-
request.user = AnonymousUser()
160+
self.process_request_auth_middleware(request)
156161
res = self.middleware.process_request(request)
157162
self.assertIsNone(res)
158163

0 commit comments

Comments
 (0)