Merge lp:~alecu/ubuntuone-client/fix-credentials-defer into lp:ubuntuone-client

Proposed by Alejandro J. Cura
Status: Merged
Approved by: Manuel de la Peña
Approved revision: 1007
Merged at revision: 1008
Proposed branch: lp:~alecu/ubuntuone-client/fix-credentials-defer
Merge into: lp:ubuntuone-client
Diff against target: 111 lines (+25/-8)
2 files modified
tests/test_credentials.py (+15/-2)
ubuntuone/credentials.py (+10/-6)
To merge this branch: bzr merge lp:~alecu/ubuntuone-client/fix-credentials-defer
Reviewer Review Type Date Requested Status
Manuel de la Peña (community) Approve
Natalia Bidart (community) Approve
Review via email: mp+65267@code.launchpad.net

Commit message

The returned credentials proxy may be a deferred (LP: #799827)

Description of the change

The returned credentials proxy may be a deferred (LP: #799827)

To post a comment you must log in.
Revision history for this message
Natalia Bidart (nataliabidart) wrote :

Very good!

review: Approve
Revision history for this message
Manuel de la Peña (mandel) wrote :

Superb!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'tests/test_credentials.py'
--- tests/test_credentials.py 2011-04-05 15:30:40 +0000
+++ tests/test_credentials.py 2011-06-20 20:24:49 +0000
@@ -1,6 +1,7 @@
1# -*- coding: utf-8 -*-1# -*- coding: utf-8 -*-
2#2#
3# Author: Manuel de la Pena<manuel@canonical.com>3# Authors: Manuel de la Pena <manuel@canonical.com>
4# Alejandro J. Cura <alecu@canonical.com>
4#5#
5# Copyright 2011 Canonical Ltd.6# Copyright 2011 Canonical Ltd.
6#7#
@@ -18,12 +19,13 @@
18"""Platform independent tests for the credentials management."""19"""Platform independent tests for the credentials management."""
1920
20from mocker import MockerTestCase, MATCH21from mocker import MockerTestCase, MATCH
22from twisted.internet import defer
2123
22from ubuntuone.platform.credentials import CredentialsManagementTool24from ubuntuone.platform.credentials import CredentialsManagementTool
2325
2426
25class TestCredentialsManagementTool(MockerTestCase):27class TestCredentialsManagementTool(MockerTestCase):
26 """Test the crendentials management tool mocking the proxy."""28 """Test the credentials management tool mocking the proxy."""
2729
28 def setUp(self):30 def setUp(self):
29 """Set the diff tests."""31 """Set the diff tests."""
@@ -96,3 +98,14 @@
96 self.mocker.replay()98 self.mocker.replay()
97 return self.management_tool.register(window_id=window_id)99 return self.management_tool.register(window_id=window_id)
98100
101
102class TestDeferredCredentialsManagementTool(TestCredentialsManagementTool):
103 """Test the credentials management tool mocking the proxy in a deferred."""
104
105 def setUp(self):
106 """Set the diff tests."""
107 super(TestDeferredCredentialsManagementTool, self).setUp()
108 real_get_cred_proxy = self.mocker.mock()
109 self.get_cred_proxy = lambda: defer.succeed(real_get_cred_proxy())
110 self.management_tool = CredentialsManagementTool()
111 self.management_tool.get_creds_proxy = self.get_cred_proxy
99112
=== modified file 'ubuntuone/credentials.py'
--- ubuntuone/credentials.py 2011-04-05 15:30:40 +0000
+++ ubuntuone/credentials.py 2011-06-20 20:24:49 +0000
@@ -60,7 +60,7 @@
6060
61 def __init__(self, get_proxy_fn):61 def __init__(self, get_proxy_fn):
62 self._cleanup_signals = []62 self._cleanup_signals = []
63 self.get_creds_proxy = get_proxy_fn63 self.get_proxy_fn = get_proxy_fn
6464
65 def cleanup(self, _):65 def cleanup(self, _):
66 """Disconnect all the DBus signals."""66 """Disconnect all the DBus signals."""
@@ -70,6 +70,10 @@
7070
71 return _71 return _
7272
73 def get_creds_proxy(self):
74 """Call the get_proxy_fn, and perhaps wrap the result in a defer."""
75 return defer.maybeDeferred(self.get_proxy_fn)
76
73 @defer.inlineCallbacks77 @defer.inlineCallbacks
74 def find_credentials(self):78 def find_credentials(self):
75 """Find credentials for Ubuntu One.79 """Find credentials for Ubuntu One.
@@ -91,7 +95,7 @@
91 d = defer.Deferred()95 d = defer.Deferred()
92 d.addBoth(self.cleanup)96 d.addBoth(self.cleanup)
9397
94 proxy = self.get_creds_proxy()98 proxy = yield self.get_creds_proxy()
9599
96 sig = proxy.register_to_credentials_found(d.callback)100 sig = proxy.register_to_credentials_found(d.callback)
97 self._cleanup_signals.append(sig)101 self._cleanup_signals.append(sig)
@@ -124,7 +128,7 @@
124 d = defer.Deferred()128 d = defer.Deferred()
125 d.addBoth(self.cleanup)129 d.addBoth(self.cleanup)
126130
127 proxy = self.get_creds_proxy()131 proxy = yield self.get_creds_proxy()
128 sig = proxy.register_to_credentials_cleared(lambda: d.callback(None))132 sig = proxy.register_to_credentials_cleared(lambda: d.callback(None))
129 self._cleanup_signals.append(sig)133 self._cleanup_signals.append(sig)
130134
@@ -155,7 +159,7 @@
155 d = defer.Deferred()159 d = defer.Deferred()
156 d.addBoth(self.cleanup)160 d.addBoth(self.cleanup)
157161
158 proxy = self.get_creds_proxy()162 proxy = yield self.get_creds_proxy()
159 sig = proxy.register_to_credentials_stored(lambda: d.callback(None))163 sig = proxy.register_to_credentials_stored(lambda: d.callback(None))
160 self._cleanup_signals.append(sig)164 self._cleanup_signals.append(sig)
161165
@@ -195,7 +199,7 @@
195 d = defer.Deferred()199 d = defer.Deferred()
196 d.addBoth(self.cleanup)200 d.addBoth(self.cleanup)
197201
198 proxy = self.get_creds_proxy()202 proxy = yield self.get_creds_proxy()
199203
200 sig = proxy.register_to_credentials_found(d.callback)204 sig = proxy.register_to_credentials_found(d.callback)
201 self._cleanup_signals.append(sig)205 self._cleanup_signals.append(sig)
@@ -241,7 +245,7 @@
241 d = defer.Deferred()245 d = defer.Deferred()
242 d.addBoth(self.cleanup)246 d.addBoth(self.cleanup)
243247
244 proxy = self.get_creds_proxy()248 proxy = yield self.get_creds_proxy()
245249
246 sig = proxy.register_to_credentials_found(d.callback)250 sig = proxy.register_to_credentials_found(d.callback)
247 self._cleanup_signals.append(sig)251 self._cleanup_signals.append(sig)

Subscribers

People subscribed via source and target branches