|
| 1 | +from django.contrib.auth.models import AnonymousUser |
| 2 | +from django.http import HttpResponseRedirect |
| 3 | +from django.test import RequestFactory, TestCase |
| 4 | +from django_auth_adfs.middleware import LoginRequiredMiddleware |
| 5 | + |
| 6 | + |
| 7 | +class LoginRequiredMiddlewareTestCase(TestCase): |
| 8 | + def setUp(self): |
| 9 | + self.rf = RequestFactory() |
| 10 | + self.middleware = LoginRequiredMiddleware(get_response=lambda *args: None) |
| 11 | + |
| 12 | + def test_not_exempt_redirects(self): |
| 13 | + request = self.rf.get('/page/') |
| 14 | + request.user = AnonymousUser() |
| 15 | + response = self.middleware(request) |
| 16 | + assert isinstance(response, HttpResponseRedirect) |
| 17 | + |
| 18 | + request = self.rf.get('/nested/redirect/') |
| 19 | + request.user = AnonymousUser() |
| 20 | + response = self.middleware(request) |
| 21 | + assert isinstance(response, HttpResponseRedirect) |
| 22 | + |
| 23 | + def test_exempt(self): |
| 24 | + request = self.rf.get('/api') |
| 25 | + request.user = AnonymousUser() |
| 26 | + response = self.middleware(request) |
| 27 | + assert response is None |
| 28 | + |
| 29 | + request = self.rf.get('/nested/path/') |
| 30 | + request.user = AnonymousUser() |
| 31 | + response = self.middleware(request) |
| 32 | + assert response is None |
| 33 | + |
| 34 | + request = self.rf.get('/nested/path/further') |
| 35 | + request.user = AnonymousUser() |
| 36 | + response = self.middleware(request) |
| 37 | + assert response is None |
0 commit comments