forked from messagebird/python-rest-api
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_signed_request.py
More file actions
87 lines (70 loc) · 2.75 KB
/
Copy pathtest_signed_request.py
File metadata and controls
87 lines (70 loc) · 2.75 KB
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
import unittest
import time
from messagebird.signed_request import SignedRequest
try:
from unittest.mock import Mock
except ImportError:
# mock was added to unittest in Python 3.3, but was an external library
# before.
from mock import Mock
SIGNING_KEY = 'PlLrKaqvZNRR5zAjm42ZT6q1SQxgbbGd'
class TestMessage(unittest.TestCase):
def test_signed_request_withou_body(self):
query = {
'recipient': '31612345678',
'reference': 'FOO',
'statusDatetime': '2019-01-11T09:17:11+00:00',
'id': 'eef0ab57a9e049be946f3821568c2b2e',
'status': 'delivered',
'mccmnc': '20408',
'ported': '1',
}
signature = 'KVBdcVdz2lYMwcBLZCRITgxUfA/WkwSi+T3Wxl2HL6w='
timestamp = 1547198231
body = ''
signed_request = SignedRequest(signature, timestamp, body, query)
self.assertTrue(signed_request.verify(SIGNING_KEY))
def test_signed_request_with_body(self):
query = {
'recipient': '31612345678',
'reference': 'FOO',
'statusDatetime': '2019-01-11T09:17:11+00:00',
'id': 'eef0ab57a9e049be946f3821568c2b2e',
'status': 'delivered',
'mccmnc': '20408',
'ported': '1',
}
signature = '2bl+38H4oHVg03pC3bk2LvCB0IHFgfC4cL5HPQ0LdmI='
timestamp = 1547198231
body = '{"foo":"bar"}'
signed_request = SignedRequest(signature, timestamp, body, query)
self.assertTrue(signed_request.verify(SIGNING_KEY))
def test_incorrectly_signed_request(self):
query = {
'recipient': '31612345678',
'reference': 'BAR',
'statusDatetime': '2019-01-11T09:17:11+00:00',
'id': 'eef0ab57a9e049be946f3821568c2b2e',
'status': 'delivered',
'mccmnc': '20408',
'ported': '1',
}
signature = 'KVBdcVdz2lYMwcBLZCRITgxUfA/WkwSi+T3Wxl2HL6w='
timestamp = 1547198231
body = ''
signed_request = SignedRequest(signature, timestamp, body, query)
self.assertFalse(signed_request.verify(SIGNING_KEY))
def test_recent_signed_request(self):
query = {}
signature = 'KVBdcVdz2lYMwcBLZCRITgxUfA/WkwSi+T3Wxl2HL6w='
timestamp = int(time.time()) - 1
body = ''
signed_request = SignedRequest(signature, timestamp, body, query)
self.assertTrue(signed_request.is_recent())
def test_not_recent_signed_request(self):
query = {}
signature = 'KVBdcVdz2lYMwcBLZCRITgxUfA/WkwSi+T3Wxl2HL6w='
timestamp = int(time.time()) - 100
body = ''
signed_request = SignedRequest(signature, timestamp, body, query)
self.assertFalse(signed_request.is_recent())