~nataliabidart/ubuntuone-control-panel/raise-and-handle-unauthorized

« back to all changes in this revision

Viewing changes to ubuntuone/controlpanel/integrationtests/test_dbus_service.py

  • Committer: Tarmac
  • Author(s): Natalia B. Bidart
  • Date: 2011-03-28 18:46:27 UTC
  • mfrom: (113.2.4 stop-backend)
  • Revision ID: tarmac-20110328184627-r2uc8axjc69ivyj3
- Stop the control panel backend once the UI is done (LP: #704434).

Show diffs side-by-side

added added

removed removed

Lines of Context:
84
84
        rs = self.mocker.replace(rs_name)
85
85
        rs()
86
86
        self.mocker.result(True)
 
87
 
 
88
        mainloop = "ubuntuone.controlpanel.dbus_service.gobject.MainLoop"
 
89
        mainloop = self.mocker.replace(mainloop)
 
90
        mainloop()
 
91
        loop = self.mocker.mock()
 
92
        self.mocker.result(loop)
 
93
 
 
94
        shutdown_func = self.mocker.mock()
 
95
        loop.quit  # pylint: disable=W0104
 
96
        self.mocker.result(shutdown_func)
 
97
 
87
98
        rml_name = "ubuntuone.controlpanel.dbus_service.run_mainloop"
88
99
        rml = self.mocker.replace(rml_name)
89
 
        rml()
 
100
        rml(loop=loop)
90
101
        pb_name = "ubuntuone.controlpanel.dbus_service.publish_backend"
91
102
        pb = self.mocker.replace(pb_name)
92
 
        pb()
 
103
        pb(shutdown_func=shutdown_func)
93
104
        self.mocker.replay()
94
105
        dbus_service.main()
95
106
 
112
123
        dbus_service.STATUS_KEY: dbus_service.FILE_SYNC_IDLE,
113
124
    }
114
125
    status_changed_handler = None
 
126
    shutdown_func = None
 
127
 
 
128
    def __init__(self, shutdown_func=None):
 
129
        MockBackend.shutdown_func = shutdown_func
115
130
 
116
131
    def _process(self, result):
117
132
        """Process the request with the given result."""
197
212
        """Install the extension to sync bookmarks."""
198
213
        return self._process(None)
199
214
 
 
215
    def shutdown(self):
 
216
        """Stop this service."""
 
217
        self.shutdown_func()
 
218
 
200
219
 
201
220
class DBusServiceTestCase(TestCase):
202
221
    """Test for the DBus service."""
289
308
    def setUp(self):
290
309
        super(BaseTestCase, self).setUp()
291
310
        dbus_service.init_mainloop()
292
 
        be = dbus_service.publish_backend(MockBackend())
 
311
        self.patch(dbus_service, 'ControlBackend', MockBackend)
 
312
        be = dbus_service.publish_backend()
293
313
        self.addCleanup(be.remove_from_connection)
294
314
        bus = dbus.SessionBus()
295
315
        obj = bus.get_object(bus_name=DBUS_BUS_NAME,
691
711
        cpbe = dbus_service.ControlPanelBackend(backend=be)
692
712
 
693
713
        self.assertEqual(be.status_changed_handler, cpbe.process_status)
 
714
 
 
715
 
 
716
class ShutdownTestCase(BaseTestCase):
 
717
    """Test for the DBus service shurdown."""
 
718
 
 
719
    @defer.inlineCallbacks
 
720
    def test_shutdown(self):
 
721
        """The service can be shutdown."""
 
722
        called = []
 
723
        MockBackend.shutdown_func = lambda *a: called.append('shutdown')
 
724
        self.backend.shutdown(reply_handler=lambda: self.deferred.callback(1),
 
725
                              error_handler=self.got_error)
 
726
        yield self.deferred
 
727
 
 
728
        self.assertEqual(called, ['shutdown'])