Starting on gv_backend tests
[gc-dialer] / tests / gv_samples / generate_gv_samples.py
1 #!/usr/bin/env python
2
3 import sys
4 import urllib
5 import urllib2
6 import traceback
7 import warnings
8
9 import sys
10 sys.path.append("../../src")
11
12 import browser_emu
13 import gv_backend
14
15 webpages = [
16         ("login", gv_backend.GVDialer._loginURL),
17         ("clicktocall", gv_backend.GVDialer._clicktocallURL),
18         ("sendsms", gv_backend.GVDialer._sendSmsURL),
19         ("setforward", gv_backend.GVDialer._setforwardURL),
20         ("contacts", gv_backend.GVDialer._contactsURL),
21         ("contactdetails", gv_backend.GVDialer._contactDetailURL),
22         ("voicemail", gv_backend.GVDialer._voicemailURL),
23         ("sms", gv_backend.GVDialer._smsURL),
24         ("forward", gv_backend.GVDialer._forwardURL),
25         ("recent", gv_backend.GVDialer._recentCallsURL),
26         ("placed", gv_backend.GVDialer._placedCallsURL),
27         ("recieved", gv_backend.GVDialer._receivedCallsURL),
28         ("missed", gv_backend.GVDialer._missedCallsURL),
29 ]
30
31
32 browser = browser_emu.MozillaEmulator(1)
33 for name, url in webpages:
34         try:
35                 page = browser.download(url)
36         except StandardError, e:
37                 print e.message
38                 continue
39         with open("not_loggedin_%s.txt" % name, "w") as f:
40                 f.write(page)
41
42 username = sys.argv[1]
43 password = sys.argv[2]
44
45 loginPostData = urllib.urlencode({
46         'Email' : username,
47         'Passwd' : password,
48         'service': "grandcentral",
49         "ltmpl": "mobile",
50         "btmpl": "mobile",
51         "PersistentCookie": "yes",
52 })
53
54 try:
55         loginSuccessOrFailurePage = browser.download(gv_backend.GVDialer._loginURL, loginPostData)
56 except urllib2.URLError, e:
57         warnings.warn(traceback.format_exc())
58         raise RuntimeError("%s is not accesible" % gv_backend.GVDialer._loginURL)
59
60 forwardPage = browser.download(gv_backend.GVDialer._forwardURL)
61
62 tokenGroup = gv_backend.GVDialer._tokenRe.search(forwardPage)
63 if tokenGroup is None:
64         print forwardPage
65         raise RuntimeError("Could not extract authentication token from GoogleVoice")
66 token = tokenGroup.group(1)
67
68 browser = browser_emu.MozillaEmulator(1)
69 for name, url in webpages:
70         try:
71                 #data = urllib.urlencode({
72                 #       "_rnr_se": token,
73                 #})
74                 #page = browser.download(url, data)
75                 page = browser.download(url)
76         except StandardError, e:
77                 warnings.warn(traceback.format_exc())
78                 continue
79         print "Writing to file"
80         with open("loggedin_%s.txt" % name, "w") as f:
81                 f.write(page)