def testAddQueryItem(self): #QUrl.addQueryItem url = QUrl() valid_data = [('hl', 'en'), ('user', 'konqui')] url.addQueryItem(*valid_data[0]) self.assertEqual(url.queryItems()[0], valid_data[0]) url.addQueryItem(*valid_data[1]) self.assertEqual(sorted(url.queryItems()), sorted(valid_data))
def testSetQueryItems(self): #QUrl.setQueryItems urla = QUrl('http://www.google.com/search?q=python&hl=en') urlb = QUrl('http://www.google.com/search') urlb.setQueryItems(urla.queryItems()) self.assertEqual(urla, urlb)
def _slot_httpResponseFinished(self, reply): """ Slot for QWebView's QNetworkAccessManager finished signal. @param reply (QNetworkReply) """ #print "REPLY::ERROR>> ", reply.error() #print "REPLY::FINISHED>> ", self.url() url = self.url() # # ------------------------------------------------------------------------- # # def _slot_urlChanged(self, url): # """ # Slot for QWebView urlChanged signal. # # @param url (QUrl) # """ # --------------------------------------------------------------------- # PARSE URL DATA # --------------------------------------------------------------------- fragment = url.fragment() path = url.path() query_items = dict(url.queryItems()) fragment_items = [] if fragment: qu = QUrl() qu.setEncodedQuery(str(fragment)) fragment_items = qu.queryItems() # push fragment values into query items dict for i in fragment_items: query_items[i[0]] = i[1] state = "" if "state" in query_items: state = query_items["state"] # --------------------------------------------------------------------- # FIRE DESTINATION SIGNALS # --------------------------------------------------------------------- if "error" in query_items: error_reason = "" if "error_reason" in query_items: reason = query_items["error_reason"] error_description = "" if "error_description" in query_items: description = query_items["error_description"].replace("+"," ") # user canceled before granting permissions self.signal_permsNotAuthorized.emit(query_items["error"], reason, description, state) return if path == "/login.php": if "skip_api_login" in query_items: # initial load of the login form self.signal_authFormReady.emit(state) return elif "login_attempt" in query_items: # user login credentials invalid self.signal_authFail.emit(state) return elif path == "/dialog/permissions.request": if "from_login" in query_items: # user authenticated successfully self.signal_authSuccess.emit(state) return elif path == "/connect/login_success.html": if "access_token" in query_items: access_token = query_items["access_token"] expires_in = 0 if "expires_in" in query_items: expires_in = int(query_items["expires_in"]) # permissions authorized and access token received self.signal_permsAuthorizedAccessToken.emit(access_token, expires_in, state) return elif "code" in query_items: oauth_code = query_items["code"] expires_in = 0 if "expires_in" in query_items: expires_in = int(query_items["expires_in"]) # permissions authorized and OAuth code received self.signal_permsAuthorizedOAuthCode.emit(oauth_code, state) return # print url details if no destination matched print "URL Str: ", str(url) print "URL Path: ", path print "Query Items: ", query_items print "fragment: ", fragment print "fragment_items: ", fragment_items
def testQueryItems(self): #QUrl.queryItems url = QUrl('http://www.google.com/search?q=python&hl=en') valid_data = [(('q'), ('python')), (('hl'), ('en'))] self.assertEqual(sorted(url.queryItems()), sorted(valid_data))