~facundo/magicicada-gui/listen-progress-signals

« back to all changes in this revision

Viewing changes to magicicada/tests/test_dbusiface.py

  • Committer: Tarmac
  • Author(s): facundo at com
  • Date: 2011-12-06 01:04:28 UTC
  • mfrom: (113.2.1 start-it)
  • Revision ID: tarmac-20111206010428-68dnvgpiod1inhkb
Use the new interface to know it started/stopped.

Show diffs side-by-side

added added

removed removed

Lines of Context:
53
53
 
54
54
    def __init__(self, **kwargs):
55
55
        self._callbacks = {}
56
 
        self.fake_name_owner = "foo"
57
56
 
58
57
    def add_signal_receiver(self, method, dbus_interface, signal_name):
59
58
        """Add a signal receiver."""
63
62
        """Remove the signal receiver."""
64
63
        del self._callbacks[(dbus_interface, signal_name)]
65
64
 
66
 
    def get_name_owner(self, name):
67
 
        """Fake the response of the method."""
68
 
        assert name == 'com.ubuntuone.SyncDaemon'
69
 
 
70
 
        # will return a string, or raise an exception instance, never
71
 
        # raise a string
72
 
        # pylint: disable=W0701
73
 
        if isinstance(self.fake_name_owner, str):
74
 
            return self.fake_name_owner
75
 
        else:
76
 
            raise self.fake_name_owner
77
 
 
78
65
    def send_message_with_reply(self, *a, **k):
79
66
        """Fake."""
80
67
 
188
175
        self.assertEqual(self._get_hooked('Status', 'RequestQueueRemoved'),
189
176
                         self.dbus._on_queue_removed)
190
177
 
191
 
    def test_name_owner_changed(self):
192
 
        """Test name owner changed callback."""
193
 
        self.assertEqual(self._get_hooked(None, 'NameOwnerChanged'),
194
 
                         self.dbus._on_name_owner_changed)
195
 
 
196
178
    def test_folder_created_changed(self):
197
179
        """Test folder created changed callback."""
198
180
        self.assertEqual(self._get_hooked('Folders', 'FolderCreated'),
241
223
    @defer.inlineCallbacks
242
224
    def test_is_sd_started_yes(self):
243
225
        """Test is SD started, yes."""
244
 
        self.dbus._bus.fake_name_owner = 'some owner'
 
226
        self.patch(dbusiface, 'is_already_running',
 
227
                   lambda: defer.succeed(True))
245
228
        resp = yield self.dbus.is_sd_started()
246
229
        self.assertTrue(resp)
247
230
 
248
231
    @defer.inlineCallbacks
249
232
    def test_is_sd_started_no(self):
250
233
        """Test is SD started, no."""
251
 
        self.dbus._bus.fake_name_owner = dbus.exceptions.DBusException(
252
 
                            name='org.freedesktop.DBus.Error.NameHasNoOwner')
 
234
        self.patch(dbusiface, 'is_already_running',
 
235
                   lambda: defer.succeed(False))
253
236
        resp = yield self.dbus.is_sd_started()
254
237
        self.assertFalse(resp)
255
238
 
348
331
        self.assertEqual(connection, 'connection')
349
332
 
350
333
 
351
 
class DataProcessingNameOwnerTestCase(SafeTestCase):
352
 
    """Process Name Owner data before sending it to SyncDaemon."""
353
 
 
354
 
    def test_name_owner_changed_no_syncdaemon(self):
355
 
        """Test name owner changed callback."""
356
 
        self.dbus._on_name_owner_changed("foo", "bar", "baz")
357
 
        self.get_msd_called(None)
358
 
 
359
 
    def test_name_owner_changed_yes_syncdaemon_true_false(self):
360
 
        """Test name owner changed callback."""
361
 
        self.dbus._on_name_owner_changed("com.ubuntuone.SyncDaemon", "T", "")
362
 
        rcv, = self.get_msd_called("on_sd_name_owner_changed")
363
 
        self.assertEqual(rcv, False)
364
 
 
365
 
    def test_name_owner_changed_yes_syncdaemon_false_true(self):
366
 
        """Test name owner changed callback."""
367
 
        self.dbus._on_name_owner_changed("com.ubuntuone.SyncDaemon", "", "T")
368
 
        rcv, = self.get_msd_called("on_sd_name_owner_changed")
369
 
        self.assertEqual(rcv, True)
370
 
 
371
 
 
372
334
class QueueChangedTestCase(SafeTestCase):
373
335
    """Process the signals for when the queue changes."""
374
336
 
843
805
 
844
806
    def test_is_sd_started(self):
845
807
        """Test call to is_sd_started."""
 
808
        self.patch(dbusiface, 'is_already_running',
 
809
                   lambda: defer.succeed(True))
846
810
        self.dbus.is_sd_started()
847
811
        self.assertTrue(self.handler.check_info(
848
812
                        "Checking if SD is started: True"))
890
854
        m = "Received Queue removed: 'name' [1234] {'some': 'data'}"
891
855
        self.assertTrue(self.handler.check_debug(m))
892
856
 
893
 
    def test_name_owner_changed_other(self):
894
 
        """Test name owner changed callback, no SD."""
895
 
        self.dbus._on_name_owner_changed("other", "", "T")
896
 
        msg = "Received Name Owner changed"
897
 
        self.assertFalse(self.handler.check_info(msg))
898
 
 
899
 
    def test_name_owner_changed_syncdaemon(self):
900
 
        """Test name owner changed callback, SD value ok."""
901
 
        self.dbus._on_name_owner_changed("com.ubuntuone.SyncDaemon", "", "T")
902
 
        self.assertTrue(self.handler.check_info("Received Name Owner changed"))
903
 
        self.assertTrue(self.handler.check_debug("Name Owner data: '' 'T'"))
904
 
 
905
 
    def test_name_owner_changed_yes_syncdaemon_true_false(self):
906
 
        """Test name owner changed callback, SD value bad."""
907
 
        self.dbus._on_name_owner_changed("com.ubuntuone.SyncDaemon", "F", "T")
908
 
        self.assertTrue(self.handler.check_info("Received Name Owner changed"))
909
 
        self.assertTrue(self.handler.check_debug("Name Owner data: 'F' 'T'"))
910
 
        msg = "Name Owner invalid data: Same bool in old and new!"
911
 
        self.assertTrue(self.handler.check_error(msg))
912
 
 
913
857
    def test_folder_created_changed(self):
914
858
        """Test folder created changed callback."""
915
859
        self.dbus._on_folder_created("foo")