Completed hildonization test
[gc-dialer] / tests / test_startup.py
1 from __future__ import with_statement
2
3 import os
4 import time
5
6 import test_utils
7
8 import sys
9 sys.path.append("../src")
10
11 import dc_glade
12
13
14 def startup(factory):
15         handle = factory()
16         with test_utils.expected(AssertionError("Attempting login before app is fully loaded")):
17                 handle.refresh_session()
18
19         for i in xrange(10):
20                 if handle._initDone:
21                         print "Completed init on iteration %d" % i
22                         break
23                 time.sleep(1)
24         assert handle._initDone
25
26         with test_utils.expected(RuntimeError("Login Failed")):
27                 handle.refresh_session()
28
29         handle._save_settings()
30
31         del handle
32
33
34 def test_startup_with_no_data_dir_with_dummy_hildon():
35         hildonPath = os.path.join(os.path.dirname(__file__), "dummy_hildon")
36         sys.path.insert(0, hildonPath)
37         import hildon
38         dc_glade.hildon = hildon
39         try:
40                 dc_glade.Dialcentral._data_path = os.path.join(os.path.dirname(__file__), "notexistent_data")
41                 dc_glade.Dialcentral._user_settings = "%s/settings.ini" % dc_glade.Dialcentral._data_path
42
43                 try:
44                         startup(dc_glade.Dialcentral)
45                 finally:
46                         try:
47                                 os.remove(dc_glade.Dialcentral._user_settings)
48                         except:
49                                 pass
50                         try:
51                                 os.removedirs(dc_glade.Dialcentral._data_path)
52                         except:
53                                 pass
54         finally:
55                 dc_glade.hildon = None
56                 sys.path.remove(hildonPath)
57
58
59 def test_startup_with_no_data_dir():
60         dc_glade.Dialcentral._data_path = os.path.join(os.path.dirname(__file__), "notexistent_data")
61         dc_glade.Dialcentral._user_settings = "%s/settings.ini" % dc_glade.Dialcentral._data_path
62
63         try:
64                 startup(dc_glade.Dialcentral)
65         finally:
66                 try:
67                         os.remove(dc_glade.Dialcentral._user_settings)
68                 except:
69                         pass
70                 try:
71                         os.removedirs(dc_glade.Dialcentral._data_path)
72                 except:
73                         pass
74
75
76 def test_startup_with_empty_data_dir():
77         dc_glade.Dialcentral._data_path = os.path.join(os.path.dirname(__file__), "empty_data")
78         dc_glade.Dialcentral._user_settings = "%s/settings.ini" % dc_glade.Dialcentral._data_path
79
80         try:
81                 startup(dc_glade.Dialcentral)
82         finally:
83                 try:
84                         os.remove(dc_glade.Dialcentral._user_settings)
85                 except:
86                         pass
87                 try:
88                         os.removedirs(dc_glade.Dialcentral._data_path)
89                 except:
90                         pass
91
92
93 def test_startup_with_basic_data_dir():
94         dc_glade.Dialcentral._data_path = os.path.join(os.path.dirname(__file__), "basic_data")
95         dc_glade.Dialcentral._user_settings = "%s/settings.ini" % dc_glade.Dialcentral._data_path
96
97         startup(dc_glade.Dialcentral)