This repository was archived by the owner on Jun 16, 2022. It is now read-only.
forked from auth0/auth0-python
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_base.py
116 lines (84 loc) · 4.47 KB
/
test_base.py
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
112
113
114
115
116
import unittest
import mock
from ...authentication.base import AuthenticationBase
from ...exceptions import Auth0Error
class TestBase(unittest.TestCase):
@mock.patch('requests.post')
def test_post(self, mock_post):
ab = AuthenticationBase()
mock_post.return_value.status_code = 200
mock_post.return_value.text = '{"x": "y"}'
data = ab.post('the-url', data={'a': 'b'}, headers={'c': 'd'})
mock_post.assert_called_with(url='the-url', data='{"a": "b"}',
headers={'c': 'd'})
self.assertEqual(data, {'x': 'y'})
@mock.patch('requests.post')
def test_post_error(self, mock_post):
ab = AuthenticationBase()
for error_status in [400, 500, None]:
mock_post.return_value.status_code = error_status
mock_post.return_value.text = '{"error": "e0",' \
'"error_description": "desc"}'
with self.assertRaises(Auth0Error) as context:
ab.post('the-url', data={'a': 'b'}, headers={'c': 'd'})
self.assertEqual(context.exception.status_code, error_status)
self.assertEqual(context.exception.error_code, 'e0')
self.assertEqual(context.exception.message, 'desc')
@mock.patch('requests.post')
def test_post_error_with_code_property(self, mock_post):
ab = AuthenticationBase()
for error_status in [400, 500, None]:
mock_post.return_value.status_code = error_status
mock_post.return_value.text = '{"code": "e0",' \
'"error_description": "desc"}'
with self.assertRaises(Auth0Error) as context:
ab.post('the-url', data={'a': 'b'}, headers={'c': 'd'})
self.assertEqual(context.exception.status_code, error_status)
self.assertEqual(context.exception.error_code, 'e0')
self.assertEqual(context.exception.message, 'desc')
@mock.patch('requests.post')
def test_post_error_with_no_error_code(self, mock_post):
ab = AuthenticationBase()
for error_status in [400, 500, None]:
mock_post.return_value.status_code = error_status
mock_post.return_value.text = '{"error_description": "desc"}'
with self.assertRaises(Auth0Error) as context:
ab.post('the-url', data={'a': 'b'}, headers={'c': 'd'})
self.assertEqual(context.exception.status_code, error_status)
self.assertEqual(context.exception.error_code,
'a0.sdk.internal.unknown')
self.assertEqual(context.exception.message, 'desc')
@mock.patch('requests.post')
def test_post_error_with_text_response(self, mock_post):
ab = AuthenticationBase()
for error_status in [400, 500, None]:
mock_post.return_value.status_code = error_status
mock_post.return_value.text = 'there has been a terrible error'
with self.assertRaises(Auth0Error) as context:
ab.post('the-url', data={'a': 'b'}, headers={'c': 'd'})
self.assertEqual(context.exception.status_code, error_status)
self.assertEqual(context.exception.error_code,
'a0.sdk.internal.unknown')
self.assertEqual(context.exception.message,
'there has been a terrible error')
@mock.patch('requests.post')
def test_post_error_with_no_response_text(self, mock_post):
ab = AuthenticationBase()
for error_status in [400, 500, None]:
mock_post.return_value.status_code = error_status
mock_post.return_value.text = None
with self.assertRaises(Auth0Error) as context:
ab.post('the-url', data={'a': 'b'}, headers={'c': 'd'})
self.assertEqual(context.exception.status_code, error_status)
self.assertEqual(context.exception.error_code,
'a0.sdk.internal.unknown')
self.assertEqual(context.exception.message, '')
@mock.patch('requests.get')
def test_get(self, mock_get):
ab = AuthenticationBase()
mock_get.return_value.status_code = 200
mock_get.return_value.text = '{"x": "y"}'
result = ab.get('the-url', params={'a': 'b'}, headers={'c': 'd'})
mock_get.assert_called_with(url='the-url', params={'a': 'b'},
headers={'c': 'd'})
self.assertEqual(result, '{"x": "y"}')