~ubuntu-branches/debian/sid/python-django/sid

« back to all changes in this revision

Viewing changes to tests/regressiontests/signed_cookies_tests/tests.py

  • Committer: Package Import Robot
  • Author(s): Luke Faraone
  • Date: 2013-11-07 15:33:49 UTC
  • mfrom: (1.3.12)
  • Revision ID: package-import@ubuntu.com-20131107153349-e31sc149l2szs3jb
Tags: 1.6-1
* New upstream version. Closes: #557474, #724637.
* python-django now also suggests the installation of ipython,
  bpython, python-django-doc, and libgdal1.
  Closes: #636511, #686333, #704203
* Set package maintainer to Debian Python Modules Team.
* Bump standards version to 3.9.5, no changes needed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
from __future__ import unicode_literals
2
 
 
3
 
import time
4
 
 
5
 
from django.core import signing
6
 
from django.http import HttpRequest, HttpResponse
7
 
from django.test import TestCase
8
 
 
9
 
 
10
 
class SignedCookieTest(TestCase):
11
 
 
12
 
    def test_can_set_and_read_signed_cookies(self):
13
 
        response = HttpResponse()
14
 
        response.set_signed_cookie('c', 'hello')
15
 
        self.assertIn('c', response.cookies)
16
 
        self.assertTrue(response.cookies['c'].value.startswith('hello:'))
17
 
        request = HttpRequest()
18
 
        request.COOKIES['c'] = response.cookies['c'].value
19
 
        value = request.get_signed_cookie('c')
20
 
        self.assertEqual(value, 'hello')
21
 
 
22
 
    def test_can_use_salt(self):
23
 
        response = HttpResponse()
24
 
        response.set_signed_cookie('a', 'hello', salt='one')
25
 
        request = HttpRequest()
26
 
        request.COOKIES['a'] = response.cookies['a'].value
27
 
        value = request.get_signed_cookie('a', salt='one')
28
 
        self.assertEqual(value, 'hello')
29
 
        self.assertRaises(signing.BadSignature,
30
 
            request.get_signed_cookie, 'a', salt='two')
31
 
 
32
 
    def test_detects_tampering(self):
33
 
        response = HttpResponse()
34
 
        response.set_signed_cookie('c', 'hello')
35
 
        request = HttpRequest()
36
 
        request.COOKIES['c'] = response.cookies['c'].value[:-2] + '$$'
37
 
        self.assertRaises(signing.BadSignature,
38
 
            request.get_signed_cookie, 'c')
39
 
 
40
 
    def test_default_argument_supresses_exceptions(self):
41
 
        response = HttpResponse()
42
 
        response.set_signed_cookie('c', 'hello')
43
 
        request = HttpRequest()
44
 
        request.COOKIES['c'] = response.cookies['c'].value[:-2] + '$$'
45
 
        self.assertEqual(request.get_signed_cookie('c', default=None), None)
46
 
 
47
 
    def test_max_age_argument(self):
48
 
        value = 'hello'
49
 
        _time = time.time
50
 
        time.time = lambda: 123456789
51
 
        try:
52
 
            response = HttpResponse()
53
 
            response.set_signed_cookie('c', value)
54
 
            request = HttpRequest()
55
 
            request.COOKIES['c'] = response.cookies['c'].value
56
 
            self.assertEqual(request.get_signed_cookie('c'), value)
57
 
 
58
 
            time.time = lambda: 123456800
59
 
            self.assertEqual(request.get_signed_cookie('c', max_age=12), value)
60
 
            self.assertEqual(request.get_signed_cookie('c', max_age=11), value)
61
 
            self.assertRaises(signing.SignatureExpired,
62
 
                request.get_signed_cookie, 'c', max_age = 10)
63
 
        finally:
64
 
            time.time = _time