utils.py - toot - Unnamed repository; edit this file 'description' to name the repository.
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) LICENSE
---
utils.py (1276B)
---
1 import requests
2
3
4 class Expectations():
5 """Helper for mocking http requests"""
6 def __init__(self, requests=[], responses=[]):
7 self.requests = requests
8 self.responses = responses
9
10 def mock_prepare(self, request):
11 expected = self.requests.pop(0)
12 assert request.method == expected.method
13 assert request.url == expected.url
14 assert request.data == expected.data
15 assert request.headers == expected.headers
16 assert request.params == expected.params
17
18 def mock_send(self, *args, **kwargs):
19 return self.responses.pop(0)
20
21 def add(self, req, res):
22 self.requests.append(req)
23 self.responses.append(res)
24
25 def patch(self, monkeypatch):
26 monkeypatch.setattr(requests.Session, 'prepare_request', self.mock_prepare)
27 monkeypatch.setattr(requests.Session, 'send', self.mock_send)
28
29
30 class MockResponse:
31 def __init__(self, response_data={}, ok=True, is_redirect=False):
32 self.response_data = response_data
33 self.content = response_data
34 self.ok = ok
35 self.is_redirect = is_redirect
36
37 def raise_for_status(self):
38 pass
39
40 def json(self):
41 return self.response_data
42
43
44 def retval(val):
45 return lambda *args, **kwargs: val