/
mock_network.py
32 lines (25 loc) · 1.01 KB
/
mock_network.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
# coding: utf-8
from unittest.mock import Mock
import requests
from boxsdk.network.default_network import DefaultNetworkResponse
from boxsdk.network.network_interface import Network
class MockNetwork(Network):
"""Mock implementation of the network interface for testing purposes."""
def __init__(self):
super().__init__()
self._session = Mock(requests.Session)
self._retries = []
def request(self, method, url, access_token, **kwargs):
"""Base class override.
Make a mock network request using a mock requests.Session.
"""
return DefaultNetworkResponse(self._session.request(method, url, **kwargs), access_token)
def retry_after(self, delay, request_method, *args, **kwargs):
"""Base class override.
Retry immediately, recording the retry request.
"""
self._retries.append((delay, request_method, args, kwargs))
return request_method(*args, **kwargs)
@property
def session(self):
return self._session