Hardening against different timings in Google rolling thigns out
authorepage <eopage@byu.net>
Fri, 2 Oct 2009 22:57:38 +0000 (22:57 +0000)
committerepage <eopage@byu.net>
Fri, 2 Oct 2009 22:57:38 +0000 (22:57 +0000)
git-svn-id: file:///svnroot/gc-dialer/trunk@499 c39d3808-3fe2-4d86-a59f-b7f623ee9f21

src/gv_backend.py
src/gv_views.py

index 4b6007b..84a26a6 100644 (file)
@@ -158,7 +158,11 @@ class GVDialer(object):
                        _moduleLogger.exception("Translating error: %s" % str(e))
                        raise NetworkError("%s is not accesible" % self._loginURL)
                galxTokens = self._galxRe.search(tokenPage)
-               galxToken = galxTokens.group(1)
+               if galxTokens is not None:
+                       galxToken = galxTokens.group(1)
+               else:
+                       galxToken = ""
+                       _moduleLogger.debug("Could not grab GALX token")
 
                loginPostData = urllib.urlencode({
                        'Email' : username,
index c59f0bf..7d1e8ef 100644 (file)
@@ -769,7 +769,7 @@ class AccountInfo(object):
                return True
 
        def clear(self):
-               self._callbackSelectButton.set_label("")
+               self._callbackSelectButton.set_label("No Callback Number")
                self.set_account_number("")
                self._isPopulated = False
 
@@ -806,17 +806,19 @@ class AccountInfo(object):
                        self._isPopulated = False
                        return
 
+               if len(callbackNumbers) == 0:
+                       callbackNumbers = {"": "No callback numbers available"}
+
                for number, description in callbackNumbers.iteritems():
                        self._callbackList.append((make_pretty(number), description))
 
-               if not self.get_selected_callback_number():
-                       self._set_callback_number(self._defaultCallback)
+               self._set_callback_number(self._defaultCallback)
 
        def _set_callback_number(self, number):
                try:
                        if not self._backend.is_valid_syntax(number) and 0 < len(number):
                                self._errorDisplay.push_message("%s is not a valid callback number" % number)
-                       elif number == self._backend.get_callback_number():
+                       elif number == self._backend.get_callback_number() and 0 < len(number):
                                _moduleLogger.warning(
                                        "Callback number already is %s" % (
                                                self._backend.get_callback_number(),
@@ -827,7 +829,10 @@ class AccountInfo(object):
                                assert make_ugly(number) == make_ugly(self._backend.get_callback_number()), "Callback number should be %s but instead is %s" % (
                                        make_pretty(number), make_pretty(self._backend.get_callback_number())
                                )
-                               self._callbackSelectButton.set_label(make_pretty(number))
+                               prettyNumber = make_pretty(number)
+                               if len(prettyNumber) == 0:
+                                       prettyNumber = "No Callback Number"
+                               self._callbackSelectButton.set_label(prettyNumber)
                                _moduleLogger.info(
                                        "Callback number set to %s" % (
                                                self._backend.get_callback_number(),