File: test_auth_tkt.py

package info (click to toggle)
paste 3.10.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,472 kB
  • sloc: python: 19,960; javascript: 8,028; makefile: 47; sh: 24
file content (111 lines) | stat: -rw-r--r-- 3,598 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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
import hashlib
import base64
from http.cookies import SimpleCookie
from paste.auth.auth_tkt import AuthTicket


def test_auth_ticket_digest_and_cookie_value():
    test_parameters = [
        (
            (
                'shared_secret',
                'username',
                '0.0.0.0',  # remote address
            ),
            {
                'tokens': ['admin'],
                'time': 1579782607
            },
            b'731274bec45f6983c1f33bac8e8baf43',
            b'731274bec45f6983c1f33bac8e8baf435e2991cfusername!admin!',
        ),
        (
            (
                'shared_secret',
                'username',
                '0.0.0.0',
            ),
            {
                'tokens': ['admin'],
                'time': 1579782607,
                'digest_algo': hashlib.sha512
            },
            b'09e72a63c57ca4cfeca5fa578646deb2b27f7a461d91ad9aa32b85c93ef6fa7744ac006eb3d9a71a36375b5ab50cbae072bb3042e2a59198b7f314900cba4423',
            b'09e72a63c57ca4cfeca5fa578646deb2b27f7a461d91ad9aa32b85c93ef6fa7744ac006eb3d9a71a36375b5ab50cbae072bb3042e2a59198b7f314900cba44235e2991cfusername!admin!',
        ),
    ]

    for test_args, test_kwargs, expected_digest, expected_cookie_value in test_parameters:
        token = AuthTicket(*test_args, **test_kwargs)
        assert expected_digest == token.digest()
        assert expected_cookie_value == token.cookie_value()


def test_auth_ticket_cookie():
    test_parameters = [
        (
            (
                'shared_secret',
                'username',
                '0.0.0.0',  # remote address
            ),
            {
                'tokens': ['admin'],
                'time': 1579782607
            },
            {
                'name': 'auth_tkt',
                'path': '/',
                'secure': '',
                'cookie_value': b'731274bec45f6983c1f33bac8e8baf435e2991cfusername!admin!'
            }
        ),
        (
            (
                'shared_secret',
                'username',
                '0.0.0.0',  # remote address
            ),
            {
                'tokens': ['admin'],
                'time': 1579782607,
                'secure': True
            },
            {
                'name': 'auth_tkt',
                'path': '/',
                'secure': 'true',
                'cookie_value': b'731274bec45f6983c1f33bac8e8baf435e2991cfusername!admin!'
            }
        ),
        (
            (
                'shared_secret',
                'username',
                '0.0.0.0',  # remote address
            ),
            {
                'tokens': ['admin'],
                'time': 1579782607,
                'cookie_name': 'custom_cookie',
                'secure': False
            },
            {
                'name': 'custom_cookie',
                'path': '/',
                'secure': '',
                'cookie_value': b'731274bec45f6983c1f33bac8e8baf435e2991cfusername!admin!'
            }
        ),
    ]

    for test_args, test_kwargs, expected_values in test_parameters:
        token = AuthTicket(*test_args, **test_kwargs)
        expected_cookie = SimpleCookie()
        # import pdb; pdb.set_trace()
        expected_cookie_value = base64.b64encode(expected_values['cookie_value'])

        expected_cookie[expected_values['name']] = expected_cookie_value
        expected_cookie[expected_values['name']]['path'] = expected_values['path']
        expected_cookie[expected_values['name']]['secure'] = expected_values['secure']
        assert expected_cookie == token.cookie()