File: test_tokens.py

package info (click to toggle)
python-oauthlib 0.1.2-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 244 kB
  • sloc: python: 1,053; makefile: 10
file content (82 lines) | stat: -rw-r--r-- 2,859 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
from __future__ import absolute_import

from ...unittest import TestCase

from oauthlib.oauth2.draft25.tokens import *


class TokenTest(TestCase):

    # MAC without body/payload or extension
    mac_plain = {
        u'token': u'h480djs93hd8',
        u'uri': u'http://example.com/resource/1?b=1&a=2',
        u'key': u'489dks293j39',
        u'http_method': u'GET',
        u'nonce': u'264095:dj83hs9s',
        u'hash_algorithm': u'hmac-sha-1'
    }
    auth_plain = {
        u'Authorization': u'MAC id="h480djs93hd8", nonce="264095:dj83hs9s",'
        ' mac="SLDJd4mg43cjQfElUs3Qub4L6xE="'
    }

    # MAC with body/payload, no extension
    mac_body = {
        u'token': u'jd93dh9dh39D',
        u'uri': u'http://example.com/request',
        u'key': u'8yfrufh348h',
        u'http_method': u'POST',
        u'nonce': u'273156:di3hvdf8',
        u'hash_algorithm': u'hmac-sha-1',
        u'body': u'hello=world%21'
    }
    auth_body = {
        u'Authorization': u'MAC id="jd93dh9dh39D", nonce="273156:di3hvdf8",'
        ' bodyhash="k9kbtCIy0CkI3/FEfpS/oIDjk6k=", mac="W7bdMZbv9UWOTadASIQHagZyirA="'
    }

    # MAC with body/payload and extension
    mac_both = {
        u'token': u'h480djs93hd8',
        u'uri': u'http://example.com/request?b5=%3D%253D&a3=a&c%40=&a2=r%20b&c2&a3=2+q',
        u'key': u'489dks293j39',
        u'http_method': u'GET',
        u'nonce': u'264095:7d8f3e4a',
        u'hash_algorithm': u'hmac-sha-1',
        u'body': u'Hello World!',
        u'ext': u'a,b,c'
    }
    auth_both = {
        u'Authorization': u'MAC id="h480djs93hd8", nonce="264095:7d8f3e4a",'
        ' bodyhash="Lve95gjOVATpfV8EL5X4nxwjKHE=", ext="a,b,c",'
        ' mac="Z3C2DojEopRDIC88/imW8Ez853g="'
    }

    # Bearer
    token = u'vF9dft4qmT'
    uri = u'http://server.example.com/resource'
    bearer_headers = {
        u'Authorization': u'Bearer vF9dft4qmT'
    }
    bearer_body = u'access_token=vF9dft4qmT'
    bearer_uri = u'http://server.example.com/resource?access_token=vF9dft4qmT'

    def test_prepare_mac_header(self):
        """Verify mac signatures correctness

        TODO: verify hmac-sha-256
        """
        self.assertEqual(prepare_mac_header(**self.mac_plain), self.auth_plain)
        self.assertEqual(prepare_mac_header(**self.mac_body), self.auth_body)
        self.assertEqual(prepare_mac_header(**self.mac_both), self.auth_both)

    def test_prepare_bearer_request(self):
        """Verify proper addition of bearer tokens to requests.

        They may be represented as query components in body or URI or
        in a Bearer authorization header.
        """
        self.assertEqual(prepare_bearer_headers(self.token), self.bearer_headers)
        self.assertEqual(prepare_bearer_body(self.token), self.bearer_body)
        self.assertEqual(prepare_bearer_uri(self.token, uri=self.uri), self.bearer_uri)