3b5c1a71454e5a2a3855d1dd5cb88976803d6c51
[theonering] / tests / test_gv_backend.py
1 from __future__ import with_statement
2
3 import cookielib
4 import logging
5
6 import test_utils
7
8 import sys
9 sys.path.append("../src")
10
11 import gvoice
12
13
14 logging.basicConfig(level=logging.DEBUG)
15
16
17 def generate_mock(cookiesSucceed, username, password):
18
19         class MockModule(object):
20
21                 class MozillaEmulator(object):
22
23                         def __init__(self, trycount = 1):
24                                 self.cookies = cookielib.LWPCookieJar()
25                                 self.trycount = trycount
26
27                         def download(self, url,
28                                         postdata = None, extraheaders = None, forbid_redirect = False,
29                                         trycount = None, only_head = False,
30                                 ):
31                                 return ""
32
33                         def load_cookies(self, *args):
34                                 pass
35
36                         def save_cookies(self, *args):
37                                 pass
38
39                         def clear_cookies(self, *args):
40                                 pass
41
42         return MockModule
43
44
45 def test_not_logged_in():
46         correctUsername, correctPassword = "", ""
47         MockBrowserModule = generate_mock(False, correctUsername, correctPassword)
48         gvoice.backend.browser_emu, RealBrowser = MockBrowserModule, gvoice.backend.browser_emu
49         try:
50                 backend = gvoice.backend.GVoiceBackend()
51                 assert not backend.is_authed()
52                 assert not backend.login("bad_name", "bad_password")
53                 backend.logout()
54                 with test_utils.expected(RuntimeError):
55                         backend.call("5551234567")
56                 with test_utils.expected(RuntimeError):
57                         backend.send_sms("5551234567", "Hello World")
58                 assert backend.get_account_number() == "", "%s" % backend.get_account_number()
59                 gvoice.backend.set_sane_callback(backend)
60                 assert backend.get_callback_number() == ""
61                 with test_utils.expected(Exception):
62                         recent = list(backend.get_recent())
63                 with test_utils.expected(Exception):
64                         messages = list(backend.get_messages())
65         finally:
66                 gvoice.backend.browser_emu = RealBrowser