Prep work for a gv backend test
authorepage <eopage@byu.net>
Fri, 29 May 2009 02:34:15 +0000 (02:34 +0000)
committerepage <eopage@byu.net>
Fri, 29 May 2009 02:34:15 +0000 (02:34 +0000)
git-svn-id: file:///svnroot/gc-dialer/trunk@344 c39d3808-3fe2-4d86-a59f-b7f623ee9f21

tests/gv_samples/generate_gv_samples.py [new file with mode: 0755]

diff --git a/tests/gv_samples/generate_gv_samples.py b/tests/gv_samples/generate_gv_samples.py
new file mode 100755 (executable)
index 0000000..6ba1c30
--- /dev/null
@@ -0,0 +1,81 @@
+#!/usr/bin/env python
+
+import sys
+import urllib
+import urllib2
+import traceback
+import warnings
+
+import sys
+sys.path.append("../../src")
+
+import browser_emu
+import gv_backend
+
+webpages = [
+       ("login", gv_backend.GVDialer._loginURL),
+       ("clicktocall", gv_backend.GVDialer._clicktocallURL),
+       ("sendsms", gv_backend.GVDialer._sendSmsURL),
+       ("setforward", gv_backend.GVDialer._setforwardURL),
+       ("contacts", gv_backend.GVDialer._contactsURL),
+       ("contactdetails", gv_backend.GVDialer._contactDetailURL),
+       ("voicemail", gv_backend.GVDialer._voicemailURL),
+       ("sms", gv_backend.GVDialer._smsURL),
+       ("forward", gv_backend.GVDialer._forwardURL),
+       ("recent", gv_backend.GVDialer._recentCallsURL),
+       ("placed", gv_backend.GVDialer._placedCallsURL),
+       ("recieved", gv_backend.GVDialer._receivedCallsURL),
+       ("missed", gv_backend.GVDialer._missedCallsURL),
+]
+
+
+browser = browser_emu.MozillaEmulator(1)
+for name, url in webpages:
+       try:
+               page = browser.download(url)
+       except StandardError, e:
+               print e.message
+               continue
+       with open("not_loggedin_%s.txt" % name, "w") as f:
+               f.write(page)
+
+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)
+
+browser = browser_emu.MozillaEmulator(1)
+for name, url in webpages:
+       try:
+               #data = urllib.urlencode({
+               #       "_rnr_se": token,
+               #})
+               #page = browser.download(url, data)
+               page = browser.download(url)
+       except StandardError, e:
+               warnings.warn(traceback.format_exc())
+               continue
+       print "Writing to file"
+       with open("loggedin_%s.txt" % name, "w") as f:
+               f.write(page)