forked from ucloud/ucloud-sdk-python2
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmock.py
More file actions
26 lines (20 loc) · 769 Bytes
/
mock.py
File metadata and controls
26 lines (20 loc) · 769 Bytes
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
# -*- coding: utf-8 -*-
import json
from ucloud.core.transport import Transport, Request, Response
class MockedTransport(Transport):
def __init__(self):
super(MockedTransport, self).__init__()
self.transport_handlers = []
self.client_handler = []
def send(self, req, **options):
resp = Response(req.url, req.method)
for handler in self.transport_handlers:
resp = handler(req)
for handler in self.client_handler:
payload = handler(req.payload())
resp.content = json.dumps(payload).encode("utf-8")
return resp
def mock(self, handler):
self.transport_handlers.append(handler)
def mock_data(self, handler):
self.client_handler.append(handler)