def on_cookie_added(self, cookie: QtNetwork.QNetworkCookie): """Handle set cookie""" try: self._cookies[_qbytearray_to_str( cookie.name())] = _qbytearray_to_str(cookie.value()) except: logger.exception( f'Failed to set cookie: {cookie.name()}={cookie.value()}')
def cookie_added(self, cookie: QNetworkCookie): if self.check_cookie_domain(cookie): name = cookie.name().data().decode() value = cookie.value().data().decode() self.saved_cookies[name] = value for _name in self.required_cookies: if _name not in self.saved_cookies: break else: print(self.required_cookies, self.saved_cookies) self.succeed.emit(self.saved_cookies)
def test_set_cookies_accept(config_stub, qtbot, monkeypatch): """Test setCookiesFromUrl with cookies enabled.""" config_stub.data = CONFIG_ALL_COOKIES ram_jar = cookies.RAMCookieJar() cookie = QNetworkCookie(b'foo', b'bar') url = QUrl('http://example.com/') with qtbot.waitSignal(ram_jar.changed): assert ram_jar.setCookiesFromUrl([cookie], url) # assert the cookies are added correctly all_cookies = ram_jar.cookiesForUrl(url) assert len(all_cookies) == 1 saved_cookie = all_cookies[0] expected = cookie.name(), cookie.value() assert saved_cookie.name(), saved_cookie.value() == expected
def __cookie_to_json(self): cookies_list_info = [] for c in self.__cookies: c = QNetworkCookie(c) data = { "name": bytearray(c.name()).decode(), "domain": c.domain(), "value": bytearray(c.value()).decode(), "path": c.path(), "expirationDate": c.expirationDate().toString(Qt.ISODate), "secure": c.isSecure(), "httponly": c.isHttpOnly() } cookies_list_info.append(data) return cookies_list_info
def test_set_cookies_accept(config_stub, qtbot, monkeypatch): """Test setCookiesFromUrl with cookies enabled.""" monkeypatch.setattr(objects, 'backend', usertypes.Backend.QtWebKit) config_stub.val.content.cookies.accept = 'all' ram_jar = cookies.RAMCookieJar() cookie = QNetworkCookie(b'foo', b'bar') url = QUrl('http://example.com/') with qtbot.waitSignal(ram_jar.changed): assert ram_jar.setCookiesFromUrl([cookie], url) # assert the cookies are added correctly all_cookies = ram_jar.cookiesForUrl(url) assert len(all_cookies) == 1 saved_cookie = all_cookies[0] expected = cookie.name(), cookie.value() assert saved_cookie.name(), saved_cookie.value() == expected
def toPyCookie(qt_cookie: QNetworkCookie) -> Cookie: port = None port_specified = False secure = qt_cookie.isSecure() name = qt_cookie.name().data().decode() value = qt_cookie.value().data().decode() v = qt_cookie.path() path_specified = bool(v != "") path = v if path_specified else None v = qt_cookie.domain() domain_specified = bool(v != "") domain = v if domain_specified: domain_initial_dot = v.startswith(".") else: domain_initial_dot = None v = int(qt_cookie.expirationDate().toTime_t()) expires = 2147483647 if v > 2147483647 else v rest = {"HttpOnly": qt_cookie.isHttpOnly()} discard = False return Cookie( 0, name, value, port, port_specified, domain, domain_specified, domain_initial_dot, path, path_specified, secure, expires, discard, None, None, rest, )