Skip to content

Commit 0fc4c9f

Browse files
committed
PPHA-475: Add logout endpoint
1 parent 5a09a0e commit 0fc4c9f

File tree

4 files changed

+35
-5
lines changed

4 files changed

+35
-5
lines changed

lung_cancer_screening/core/middleware/session_timeout_middleware.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,6 @@
33
from django.contrib.auth import logout
44
from django.shortcuts import redirect
55

6-
try:
7-
from django.utils.deprecation import MiddlewareMixin
8-
except ImportError:
9-
MiddlewareMixin = object
10-
116

127
SESSION_START_KEY = "_session_start_"
138
LAST_ACTIVITY_KEY = "_last_activity_"
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
from django.test import TestCase
2+
from django.urls import reverse
3+
from django.conf import settings
4+
5+
from .helpers.authentication import login_user
6+
7+
8+
class TestLogout(TestCase):
9+
10+
def setUp(self):
11+
self.user = login_user(self.client)
12+
13+
14+
def test_logout_redirects_to_logout_redirect_url(self):
15+
response = self.client.get(reverse("questions:logout"))
16+
17+
self.assertEqual(response.status_code, 302)
18+
self.assertEqual(response.url, settings.LOGOUT_REDIRECT_URL)
19+
20+
21+
def test_logout_destroys_session(self):
22+
self.client.get(reverse("questions:logout"))
23+
24+
session = self.client.session
25+
self.assertTrue(session.is_empty())

lung_cancer_screening/questions/urls.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
from .views.asbestos_exposure import AsbestosExposureView
3434
from .views.cancer_diagnosis import CancerDiagnosisView
3535
from .views.family_history_lung_cancer import FamilyHistoryLungCancerView
36+
from .views.logout import logout_view
3637

3738

3839
urlpatterns = [
@@ -54,4 +55,5 @@
5455
path('age-range-exit', AgeRangeExitView.as_view(), name='age_range_exit'),
5556
path('non-smoker-exit', NonSmokerExitView.as_view(), name='non_smoker_exit'),
5657
path('your-results', YourResultsView.as_view(), name='your_results'),
58+
path('logout', logout_view, name='logout'),
5759
]
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from django.contrib.auth import logout
2+
from django.shortcuts import redirect
3+
from django.conf import settings
4+
5+
6+
def logout_view(request):
7+
logout(request)
8+
return redirect(settings.LOGOUT_REDIRECT_URL)

0 commit comments

Comments
 (0)