1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
import time
from datetime import datetime, timedelta
import unittest
from django.test.utils import override_settings
from django.test.client import Client
from django import test
from session_security.utils import set_last_activity
from session_security import settings
class ViewsTestCase(test.TestCase):
fixtures = ['session_security_test_user']
def setUp(self):
self.client = Client()
def test_anonymous(self):
self.client.logout()
self.client.get('/admin/')
response = self.client.get('/session_security/ping/?idleFor=81')
self.assertEqual(response.content, '"logout"'.encode("utf-8"))
def test_ping(self):
test_cases = [
(1, 4, '1', True),
(3, 2, '2', True),
(5, 5, '5', True),
(12, 14, '"logout"', False),
]
old_warn, old_expire = settings.WARN_AFTER, settings.EXPIRE_AFTER
settings.WARN_AFTER, settings.EXPIRE_AFTER = 5, 10
self.client.login(username='test', password='test')
self.client.get('/admin/')
for server, client, expected, authenticated in test_cases:
now = datetime.now()
session = self.client.session
set_last_activity(session, now - timedelta(seconds=server))
session.save()
response = self.client.get('/session_security/ping/?idleFor=%s' % client)
self.assertEqual(response.content, expected.encode("utf-8"))
self.assertEqual(authenticated, '_auth_user_id' in self.client.session)
settings.WARN_AFTER, settings.EXPIRE_AFTER = old_warn, old_expire
|