~dobey/ubuntuone-client/updown-visibility

« back to all changes in this revision

Viewing changes to tests/syncdaemon/test_main.py

  • Committer: Tarmac
  • Author(s): john.lenton at canonical
  • Date: 2009-08-15 00:47:28 UTC
  • mfrom: (146.3.2 fix-test_main)
  • Revision ID: dobey@gnome.org-20090815004728-erzlrgb28lgznpl4
fixes for the tests in test_main

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
# with this program.  If not, see <http://www.gnu.org/licenses/>.
18
18
""" Tests for main.Main class """
19
19
import dbus
 
20
from dbus.mainloop.glib import DBusGMainLoop
20
21
import shutil
21
22
 
22
23
from twisted.internet import defer, reactor
23
24
 
24
25
from ubuntuone.syncdaemon.main import Main
 
26
from ubuntuone.syncdaemon.dbus_interface import DBusInterface
25
27
from ubuntuone.syncdaemon.action_queue import passit
26
28
from contrib.testing.testcase import (
27
29
    BaseTwistedTestCase,
28
30
)
29
31
 
 
32
DBusInterface.test =True
 
33
 
30
34
 
31
35
class MainTests(BaseTwistedTestCase):
32
36
    """ Basic tests to check main.Main """
41
45
        # we take care of releasing the name in shutdown
42
46
        dbus.service.BusName.__del__ = lambda _: None
43
47
 
 
48
    def build_main(self, **kwargs):
 
49
        '''
 
50
        Build and return a Main object, using reasonable defaults for
 
51
        the tests, plus whatever extra kwargs are passed in.
 
52
        '''
 
53
        params = dict(root_dir=self.root,
 
54
                      shares_dir=self.shares,
 
55
                      data_dir=self.data,
 
56
                      host='localhost', port=0,
 
57
                      dns_srv=False, ssl=False,
 
58
                      disable_ssl_verify=True,
 
59
                      realm='fake.realm',
 
60
                      mark_interval=60,
 
61
                      handshake_timeout=2,
 
62
                      glib_loop=DBusGMainLoop(set_as_default=True))
 
63
        params.update(kwargs)
 
64
        return Main(**params)
 
65
 
44
66
    def tearDown(self):
45
67
        '''Clean up the tests.'''
46
68
        shutil.rmtree(self.root)
50
72
 
51
73
    def test_main_initialization(self):
52
74
        """test that creating a Main instance works as expected."""
53
 
        main = Main(self.root, self.shares, self.data,
54
 
                host='fake_host', port=0, dns_srv=False, ssl=False,
55
 
                disable_ssl_verify=True, realm='fake.realm', mark_interval=60)
 
75
        main = self.build_main()
56
76
        main.shutdown()
57
77
 
58
78
    def test_main_start(self):
59
79
        """test that Main.start works"""
60
 
        main = Main(self.root, self.shares, self.data,
61
 
                host='fake_host', port=0, dns_srv=False, ssl=False,
62
 
                disable_ssl_verify=True, realm='fake.realm', mark_interval=60)
 
80
        main = self.build_main()
63
81
        d = main.start()
64
82
        d.addCallbacks(lambda r: main.shutdown(),
65
83
                       lambda r: self.fail('Test failed: %r' % r))
68
86
    def test_main_restarts_on_critical_error(self):
69
87
        """test that Main restarts when syncdaemon gets into UNKNOWN_ERROR"""
70
88
        self.restarted = False
71
 
        main = Main(self.root, self.shares, self.data,
72
 
                host='fake_host', port=0, dns_srv=False, ssl=False,
73
 
                disable_ssl_verify=True, realm='fake.realm', mark_interval=60)
 
89
        main = self.build_main()
74
90
        main.restart = lambda: setattr(self, 'restarted', True)
75
91
        d = main.start()
76
92
        d.addCallbacks(lambda _: main.event_q.push('SYS_UNKNOWN_ERROR'),
99
115
                """
100
116
                reactor.callLater(0, d0.callback, None)
101
117
 
102
 
        main = Main(self.root, self.shares, self.data,
103
 
                host='fake_host', port=0, dns_srv=False, ssl=False,
104
 
                disable_ssl_verify=True, realm='fake.realm', mark_interval=60,
105
 
                    handshake_timeout=.5)
 
118
        main = self.build_main(handshake_timeout=.1)
106
119
        main.event_q.subscribe(handler)
107
120
        d = main.start()
108
121
        d.addCallback(lambda _: main.event_q.push('SYS_NET_CONNECTED'))
143
156
                else:
144
157
                    d0.callback('OK!')
145
158
 
146
 
        main = Main(self.root, self.shares, self.data,
147
 
                    host='fake_host', port=0, dns_srv=False, ssl=False,
148
 
                    disable_ssl_verify=True, realm='fake.realm',
149
 
                    mark_interval=60, handshake_timeout=.1,
150
 
                    max_handshake_timeouts=max_timeouts)
 
159
        main = self.build_main(handshake_timeout=.1)
151
160
        main.event_q.subscribe(handler)
152
161
        d = main.start()
153
162
        d.addCallback(lambda _: main.event_q.push('SYS_NET_CONNECTED'))