File: test_views.py

package info (click to toggle)
django-session-security 2.6.7%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 660 kB
  • sloc: javascript: 6,675; python: 594; makefile: 134; sh: 10
file content (49 lines) | stat: -rw-r--r-- 1,632 bytes parent folder | download
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