-
Notifications
You must be signed in to change notification settings - Fork 50
/
Copy pathdemo3.py
52 lines (42 loc) · 1.22 KB
/
demo3.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
import requests
import unittest
from unittest.mock import Mock
requests = Mock()
def get_users():
r = requests.get('http://demo/api/users')
print(r.status_code)
if r.status_code == 200:
return r.json()
return None
class TestUsers(unittest.TestCase):
def method_1(self):
response_mock = Mock()
response_mock.status_code = 200
response_mock.json.return_value = {
'id': 1,
'user': 'twtrubiks',
}
return response_mock
def method_2(self):
data = {
'status_code': 200,
'json.return_value': {
'id': 1,
'user': 'twtrubiks'
}
}
# unpacking a dictionary
return Mock(**data)
def mock_request(self, url):
print('my requests {}'.format(url))
response_mock = self.method_1()
# response_mock = self.method_2()
return response_mock
def test_get_users(self):
# Mock will invoke when you call your mocked method
requests.get.side_effect = self.mock_request
user = get_users()
assert user['id'] == 1
assert user['user'] == 'twtrubiks'
if __name__ == '__main__':
unittest.main()