More work to get the backend tests to work
[gc-dialer] / tests / gv_samples / generate_gv_samples.py
1 #!/usr/bin/env python
2
3 import os
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         ("contacts", gv_backend.GVDialer._contactsURL),
17         ("voicemail", gv_backend.GVDialer._voicemailURL),
18         ("sms", gv_backend.GVDialer._smsURL),
19         ("forward", gv_backend.GVDialer._forwardURL),
20         ("recent", gv_backend.GVDialer._recentCallsURL),
21         ("placed", gv_backend.GVDialer._placedCallsURL),
22         ("recieved", gv_backend.GVDialer._receivedCallsURL),
23         ("missed", gv_backend.GVDialer._missedCallsURL),
24 ]
25
26
27 # Create Browser
28 browser = browser_emu.MozillaEmulator(1)
29 cookieFile = os.path.join(".", ".gv_cookies.txt")
30 browser.cookies.filename = cookieFile
31
32 # Get Pages
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 # Login
43 username = sys.argv[1]
44 password = sys.argv[2]
45
46 loginPostData = urllib.urlencode({
47         'Email' : username,
48         'Passwd' : password,
49         'service': "grandcentral",
50         "ltmpl": "mobile",
51         "btmpl": "mobile",
52         "PersistentCookie": "yes",
53 })
54
55 try:
56         loginSuccessOrFailurePage = browser.download(gv_backend.GVDialer._loginURL, loginPostData)
57 except urllib2.URLError, e:
58         warnings.warn(traceback.format_exc())
59         raise RuntimeError("%s is not accesible" % gv_backend.GVDialer._loginURL)
60
61 forwardPage = browser.download(gv_backend.GVDialer._forwardURL)
62
63 tokenGroup = gv_backend.GVDialer._tokenRe.search(forwardPage)
64 if tokenGroup is None:
65         print forwardPage
66         raise RuntimeError("Could not extract authentication token from GoogleVoice")
67 token = tokenGroup.group(1)
68
69 # Get Pages
70 for name, url in webpages:
71         try:
72                 page = browser.download(url)
73         except StandardError, e:
74                 warnings.warn(traceback.format_exc())
75                 continue
76         print "Writing to file"
77         with open("loggedin_%s.txt" % name, "w") as f:
78                 f.write(page)