Hopefully testing and fixes for forwarding numbers for GrandCentral
authorepage <eopage@byu.net>
Mon, 1 Jun 2009 23:22:03 +0000 (23:22 +0000)
committerepage <eopage@byu.net>
Mon, 1 Jun 2009 23:22:03 +0000 (23:22 +0000)
git-svn-id: file:///svnroot/gc-dialer/trunk@353 c39d3808-3fe2-4d86-a59f-b7f623ee9f21

src/gc_backend.py
tests/gc_samples/dump_cookies.py [new file with mode: 0755]
tests/gc_samples/generate_gc_samples.py
tests/gv_samples/dump_cookies.py [new file with mode: 0755]

index ec02e90..a5e550e 100644 (file)
@@ -72,6 +72,7 @@ class GCDialer(object):
                self._accessToken = None
                self._accountNum = ""
                self._lastAuthed = 0.0
+               self._callbackNumber = ""
                self._callbackNumbers = {}
 
                self.__contacts = None
@@ -220,6 +221,7 @@ class GCDialer(object):
                Set the number that grandcental calls
                @param callbacknumber should be a proper 10 digit number
                """
+               self._callbackNumber = callbacknumber
                callbackPostData = urllib.urlencode({
                        'a_t': self._accessToken,
                        'default_number': callbacknumber
@@ -240,7 +242,7 @@ class GCDialer(object):
                for c in self._browser.cookies:
                        if c.name == "pda_forwarding_number":
                                return c.value
-               return ""
+               return self._callbackNumber
 
        def get_recent(self):
                """
diff --git a/tests/gc_samples/dump_cookies.py b/tests/gc_samples/dump_cookies.py
new file mode 100755 (executable)
index 0000000..810a03b
--- /dev/null
@@ -0,0 +1,52 @@
+#!/usr/bin/env python
+
+import os
+import urllib
+import urllib2
+import traceback
+import warnings
+
+import sys
+sys.path.append("../../src")
+
+import browser_emu
+import gc_backend
+
+# Create Browser
+browser = browser_emu.MozillaEmulator(1)
+cookieFile = os.path.join(".", ".gc_cookies.txt")
+browser.cookies.filename = cookieFile
+
+# Login
+username = sys.argv[1]
+password = sys.argv[2]
+
+loginPostData = urllib.urlencode({
+       'Email' : username,
+       'Passwd' : password,
+       'service': "grandcentral",
+       "ltmpl": "mobile",
+       "btmpl": "mobile",
+       "PersistentCookie": "yes",
+})
+
+try:
+       loginSuccessOrFailurePage = browser.download(gc_backend.GCDialer._loginURL, loginPostData)
+except urllib2.URLError, e:
+       warnings.warn(traceback.format_exc())
+       raise RuntimeError("%s is not accesible" % gc_backend.GCDialer._loginURL)
+
+forwardPage = browser.download(gc_backend.GCDialer._forwardselectURL)
+
+tokenGroup = gc_backend.GCDialer._accessTokenRe.search(forwardPage)
+if tokenGroup is None:
+       print forwardPage
+       raise RuntimeError("Could not extract authentication token from GrandCentral")
+token = tokenGroup.group(1)
+
+
+with open("cookies.txt", "w") as f:
+       f.writelines(
+               "%s: %s\n" % (c.name, c.value)
+               for c in browser.cookies
+       )
index 9aacd62..a39f584 100755 (executable)
@@ -25,7 +25,7 @@ webpages = [
 
 # Create Browser
 browser = browser_emu.MozillaEmulator(1)
-cookieFile = os.path.join(".", ".gv_cookies.txt")
+cookieFile = os.path.join(".", ".gc_cookies.txt")
 browser.cookies.filename = cookieFile
 
 # Get Pages
diff --git a/tests/gv_samples/dump_cookies.py b/tests/gv_samples/dump_cookies.py
new file mode 100755 (executable)
index 0000000..748826b
--- /dev/null
@@ -0,0 +1,52 @@
+#!/usr/bin/env python
+
+import os
+import urllib
+import urllib2
+import traceback
+import warnings
+
+import sys
+sys.path.append("../../src")
+
+import browser_emu
+import gv_backend
+
+# Create Browser
+browser = browser_emu.MozillaEmulator(1)
+cookieFile = os.path.join(".", ".gv_cookies.txt")
+browser.cookies.filename = cookieFile
+
+# Login
+username = sys.argv[1]
+password = sys.argv[2]
+
+loginPostData = urllib.urlencode({
+       'Email' : username,
+       'Passwd' : password,
+       'service': "grandcentral",
+       "ltmpl": "mobile",
+       "btmpl": "mobile",
+       "PersistentCookie": "yes",
+})
+
+try:
+       loginSuccessOrFailurePage = browser.download(gv_backend.GVDialer._loginURL, loginPostData)
+except urllib2.URLError, e:
+       warnings.warn(traceback.format_exc())
+       raise RuntimeError("%s is not accesible" % gv_backend.GVDialer._loginURL)
+
+forwardPage = browser.download(gv_backend.GVDialer._forwardURL)
+
+tokenGroup = gv_backend.GVDialer._tokenRe.search(forwardPage)
+if tokenGroup is None:
+       print forwardPage
+       raise RuntimeError("Could not extract authentication token from GoogleVoice")
+token = tokenGroup.group(1)
+
+
+with open("cookies.txt", "w") as f:
+       f.writelines(
+               "%s: %s\n" % (c.name, c.value)
+               for c in browser.cookies
+       )