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)