~nataliabidart/ubuntuone-client/quota-exceeded-and-none-stable

« back to all changes in this revision

Viewing changes to tests/syncdaemon/test_dbus.py

  • Committer: Tarmac
  • Author(s): guillermo.gonzalez at canonical
  • Date: 2010-09-24 20:22:51 UTC
  • mfrom: (716.3.2 fix-645519-stable-1-4)
  • Revision ID: tarmac-20100924202251-sf2zsqw1389pn7xm
Fix delete_share DBus method to actually delete shares

Show diffs side-by-side

added added

removed removed

Lines of Context:
2885
2885
                           error_handler=self.error_handler)
2886
2886
        return d
2887
2887
 
 
2888
    def test_delete_share_from_me(self):
 
2889
        """Test for Shares.delete_share with share from_me."""
 
2890
        share_path = os.path.join(self.main.shares_dir, 'share')
 
2891
        share = Shared(path=share_path, volume_id='share_id',
 
2892
                      node_id='node_id', accepted=True)
 
2893
        self.main.vm.add_shared(share)
 
2894
        d = defer.Deferred()
 
2895
        def delete_share(volume_id):
 
2896
            """Fake delete_volume."""
 
2897
            self.main.event_q.push("AQ_DELETE_SHARE_OK", share_id=volume_id)
 
2898
        self.patch(self.main.action_q, 'delete_share', delete_share)
 
2899
        def deleted_handler(info):
 
2900
            """ShareDeleted handler."""
 
2901
            self.assertRaises(KeyError,
 
2902
                              self.main.vm.shared.__getitem__, info['volume_id'])
 
2903
            d.callback(True)
 
2904
        match = self.bus.add_signal_receiver(deleted_handler,
 
2905
                                             signal_name='ShareDeleted')
 
2906
        self.signal_receivers.add(match)
 
2907
        client = DBusClient(self.bus, '/shares', DBUS_IFACE_SHARES_NAME)
 
2908
        client.call_method('delete_share', share.volume_id,
 
2909
                           reply_handler=lambda _: None,
 
2910
                           error_handler=self.error_handler)
 
2911
        return d
 
2912
 
2888
2913
    def test_delete_share_error_signal(self):
2889
2914
        """Test for Shares.delete_share with an error."""
2890
2915
        share_path = os.path.join(self.main.shares_dir, 'share')
2912
2937
                           error_handler=self.error_handler)
2913
2938
        return d
2914
2939
 
 
2940
    def test_delete_share_from_me_error(self):
 
2941
        """Test failure of Shares.delete_share with a share from_me."""
 
2942
        share_path = os.path.join(self.main.shares_dir, 'share')
 
2943
        share = Shared(path=share_path, volume_id='share_id',
 
2944
                      node_id='node_id', accepted=True)
 
2945
        self.main.vm.add_shared(share)
 
2946
        d = defer.Deferred()
 
2947
        # patch delete_share to fail
 
2948
        def delete_share(share_id):
 
2949
            """Fake delete_share."""
 
2950
            self.main.event_q.push("AQ_DELETE_SHARE_ERROR",
 
2951
                                   share_id=share_id, error="I'm broken")
 
2952
        self.patch(self.main.action_q, 'delete_share', delete_share)
 
2953
        def deleted_error_handler(info, error):
 
2954
            """FolderDeleteError handler."""
 
2955
            self.assertEquals(info['volume_id'], share.volume_id)
 
2956
            self.assertEquals(error, "I'm broken")
 
2957
            d.callback(True)
 
2958
        match = self.bus.add_signal_receiver(deleted_error_handler,
 
2959
                                             signal_name='ShareDeleteError')
 
2960
        self.signal_receivers.add(match)
 
2961
        client = DBusClient(self.bus, '/shares', DBUS_IFACE_SHARES_NAME)
 
2962
        client.call_method('delete_share', share.volume_id,
 
2963
                           reply_handler=lambda *args: None,
 
2964
                           error_handler=self.error_handler)
 
2965
        return d
 
2966
 
 
2967
    def test_delete_share_from_me_doesnotexist(self):
 
2968
        """Test failure of Shares.delete_share with a share from_me."""
 
2969
        d = defer.Deferred()
 
2970
        # patch delete_share to fail
 
2971
        def deleted_error_handler(info, error):
 
2972
            """FolderDeleteError handler."""
 
2973
            self.assertEquals(info['volume_id'], 'missing_share_id')
 
2974
            self.assertEquals(error, "DOES_NOT_EXIST")
 
2975
            d.callback(True)
 
2976
        match = self.bus.add_signal_receiver(deleted_error_handler,
 
2977
                                             signal_name='ShareDeleteError')
 
2978
        self.signal_receivers.add(match)
 
2979
        client = DBusClient(self.bus, '/shares', DBUS_IFACE_SHARES_NAME)
 
2980
        client.call_method('delete_share', 'missing_share_id',
 
2981
                           reply_handler=lambda *args: None,
 
2982
                           error_handler=self.error_handler)
 
2983
        return d
2915
2984
 
2916
2985
def test_suite():
2917
2986
    # pylint: disable-msg=C0111