def __init__( self, password="", proxies=None, username="", email="", cred_root="data", user_agent=None, ): self.email = email self.username = username self.password = password self.req_builder = RequestBuilder() self.bookmark_manager = BookmarkManager() self.http = requests.session() self.proxies = proxies self.user_agent = user_agent self.registry = Registry(cred_root, email) cookies = self.registry.get_all() for key in cookies.keys(): self.http.cookies.set(key, cookies[key]) if self.user_agent is None: self.user_agent = AGENT_STRING
def mock_get(*args, **kwargs): class MockResponse: def __init__(self, json, status_code, cookies): self.json_data = json self.status_code = status_code self.cookies = cookies def json(self): return self.json_data class elapsed: def total_seconds(): return 2 timeout = kwargs.get('timeout', None) # 35% chance to throw a timeout error if timeout: if timeout < 16: if random.randint(0, 100) < 35: raise requests.exceptions.ReadTimeout url = urlparse(args[1]) if "https://www.saltybet.com/" == (url.scheme + "://" + url.netloc + '/'): headers = kwargs.get('headers') or args[0].headers if headers is None: return MockResponse('', 403, {}) for k, v in headers.items(): if k not in site_headers.keys(): return MockResponse('', 403, {}) elif site_headers[k] != v: return MockResponse('', 403, {}) if url.path in ['/', '']: if hasattr(args[0], 'cookies'): args[0].cookies = site_cookies return MockResponse('', 200, site_cookies) else: cookies = kwargs.get('cookies') or args[0].cookies if cookies is None: return MockResponse('', 403, {}) for k, v in site_cookies.items(): if k not in cookies.keys(): return MockResponse('', 403, {}) elif cookies[k] != site_cookies[k]: return MockResponse('', 403, {}) if 't' not in kwargs.get('params').keys(): return MockResponse(None, 404, {}) match_cycle_time = int(time.time() - global_start) % 20 if url.path.lstrip('/') == 'state.json': # Match should last about 15 seconds # Not reality but I don't want super long tests if 8 > match_cycle_time: return MockResponse(state_resp_open, 200, {}) elif 12 > match_cycle_time > 8: return MockResponse(state_resp_locked, 200, {}) else: return MockResponse(state_resp_won, 200, {}) elif url.path.lstrip('/') == 'zdata.json': if 8 > match_cycle_time: return MockResponse(zdata_resp, 200, {}) else: return MockResponse(zdata_expired, 200, {}) return MockResponse(None, 404, {})