Adding gc_backend tests
[gc-dialer] / tests / test_gc_backend.py
diff --git a/tests/test_gc_backend.py b/tests/test_gc_backend.py
new file mode 100644 (file)
index 0000000..e60e777
--- /dev/null
@@ -0,0 +1,53 @@
+from __future__ import with_statement
+
+import os
+import warnings
+import cookielib
+
+import test_utils
+
+import sys
+sys.path.append("../src")
+
+import gc_backend
+
+
+def generate_mock(cookiesSucceed, username, password):
+
+       class MockModule(object):
+
+               class MozillaEmulator(object):
+
+                       def __init__(self, trycount = 1):
+                               self.cookies = cookielib.LWPCookieJar()
+                               self.trycount = trycount
+
+                       def download(self, url,
+                                       postdata = None, extraheaders = None, forbid_redirect = False,
+                                       trycount = None, only_head = False,
+                               ):
+                               return ""
+
+       return MockModule
+
+
+def test_not_logged_in():
+       correctUsername, correctPassword = "", ""
+       MockBrowserModule = generate_mock(False, correctUsername, correctPassword)
+       gc_backend.browser_emu, RealBrowser = MockBrowserModule, gc_backend.browser_emu
+       try:
+               backend = gc_backend.GCDialer()
+               assert not backend.is_authed()
+               assert not backend.login("bad_name", "bad_password")
+               backend.logout()
+               with test_utils.expected(RuntimeError):
+                       backend.dial("5551234567")
+               with test_utils.expected(RuntimeError):
+                       backend.send_sms("5551234567", "Hello World")
+               assert backend.get_account_number() == "", "%s" % backend.get_account_number()
+               backend.set_sane_callback()
+               assert backend.get_callback_number() == ""
+               recent = list(backend.get_recent())
+               messages = list(backend.get_messages())
+       finally:
+               gc_backend.browser_emu = RealBrowser