Beispiel #1
0
    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
Beispiel #2
0
    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, {})