52 lines
1.7 KiB
Python
52 lines
1.7 KiB
Python
from django.contrib.auth import get_user_model
|
|
from django.test import Client, TestCase
|
|
from django.test.utils import override_settings
|
|
|
|
|
|
TEST_STORAGES = {
|
|
'default': {
|
|
'BACKEND': 'django.core.files.storage.FileSystemStorage',
|
|
},
|
|
'staticfiles': {
|
|
'BACKEND': 'django.contrib.staticfiles.storage.StaticFilesStorage',
|
|
},
|
|
}
|
|
|
|
|
|
@override_settings(STORAGES=TEST_STORAGES)
|
|
class SessionWarningTests(TestCase):
|
|
def setUp(self):
|
|
self.user = get_user_model().objects.create_user(
|
|
username='session-user',
|
|
email='session@example.com',
|
|
password='secret-12345',
|
|
)
|
|
|
|
def test_base_shell_exposes_session_warning_config(self):
|
|
client = Client(HTTP_HOST='localhost')
|
|
client.force_login(self.user)
|
|
|
|
response = client.get('/')
|
|
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertContains(response, 'WorkdockSessionConfig')
|
|
self.assertContains(response, '/session/keepalive/')
|
|
self.assertContains(response, 'Ihre Sitzung läuft bald ab')
|
|
self.assertContains(response, 'app-session-warning-status')
|
|
self.assertContains(response, 'Was passiert?')
|
|
|
|
def test_keepalive_refreshes_session_timestamps(self):
|
|
client = Client(HTTP_HOST='localhost')
|
|
client.force_login(self.user)
|
|
session = client.session
|
|
session['last_activity_ts'] = 1
|
|
session['auth_fresh_ts'] = 1
|
|
session.save()
|
|
|
|
response = client.post('/session/keepalive/', {}, HTTP_HOST='localhost')
|
|
|
|
self.assertEqual(response.status_code, 200)
|
|
session = client.session
|
|
self.assertGreater(session['last_activity_ts'], 1)
|
|
self.assertGreater(session['auth_fresh_ts'], 1)
|