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
1=== modified file 'tests/test_credentials.py'
2--- tests/test_credentials.py 2011-04-05 15:30:40 +0000
3+++ tests/test_credentials.py 2011-06-20 20:24:49 +0000
4@@ -1,6 +1,7 @@
5 # -*- coding: utf-8 -*-
6 #
7-# Author: Manuel de la Pena<manuel@canonical.com>
8+# Authors: Manuel de la Pena <manuel@canonical.com>
9+# Alejandro J. Cura <alecu@canonical.com>
10 #
11 # Copyright 2011 Canonical Ltd.
12 #
13@@ -18,12 +19,13 @@
14 """Platform independent tests for the credentials management."""
15
16 from mocker import MockerTestCase, MATCH
17+from twisted.internet import defer
18
19 from ubuntuone.platform.credentials import CredentialsManagementTool
20
21
22 class TestCredentialsManagementTool(MockerTestCase):
23- """Test the crendentials management tool mocking the proxy."""
24+ """Test the credentials management tool mocking the proxy."""
25
26 def setUp(self):
27 """Set the diff tests."""
28@@ -96,3 +98,14 @@
29 self.mocker.replay()
30 return self.management_tool.register(window_id=window_id)
31
32+
33+class TestDeferredCredentialsManagementTool(TestCredentialsManagementTool):
34+ """Test the credentials management tool mocking the proxy in a deferred."""
35+
36+ def setUp(self):
37+ """Set the diff tests."""
38+ super(TestDeferredCredentialsManagementTool, self).setUp()
39+ real_get_cred_proxy = self.mocker.mock()
40+ self.get_cred_proxy = lambda: defer.succeed(real_get_cred_proxy())
41+ self.management_tool = CredentialsManagementTool()
42+ self.management_tool.get_creds_proxy = self.get_cred_proxy
43
44=== modified file 'ubuntuone/credentials.py'
45--- ubuntuone/credentials.py 2011-04-05 15:30:40 +0000
46+++ ubuntuone/credentials.py 2011-06-20 20:24:49 +0000
47@@ -60,7 +60,7 @@
48
49 def __init__(self, get_proxy_fn):
50 self._cleanup_signals = []
51- self.get_creds_proxy = get_proxy_fn
52+ self.get_proxy_fn = get_proxy_fn
53
54 def cleanup(self, _):
55 """Disconnect all the DBus signals."""
56@@ -70,6 +70,10 @@
57
58 return _
59
60+ def get_creds_proxy(self):
61+ """Call the get_proxy_fn, and perhaps wrap the result in a defer."""
62+ return defer.maybeDeferred(self.get_proxy_fn)
63+
64 @defer.inlineCallbacks
65 def find_credentials(self):
66 """Find credentials for Ubuntu One.
67@@ -91,7 +95,7 @@
68 d = defer.Deferred()
69 d.addBoth(self.cleanup)
70
71- proxy = self.get_creds_proxy()
72+ proxy = yield self.get_creds_proxy()
73
74 sig = proxy.register_to_credentials_found(d.callback)
75 self._cleanup_signals.append(sig)
76@@ -124,7 +128,7 @@
77 d = defer.Deferred()
78 d.addBoth(self.cleanup)
79
80- proxy = self.get_creds_proxy()
81+ proxy = yield self.get_creds_proxy()
82 sig = proxy.register_to_credentials_cleared(lambda: d.callback(None))
83 self._cleanup_signals.append(sig)
84
85@@ -155,7 +159,7 @@
86 d = defer.Deferred()
87 d.addBoth(self.cleanup)
88
89- proxy = self.get_creds_proxy()
90+ proxy = yield self.get_creds_proxy()
91 sig = proxy.register_to_credentials_stored(lambda: d.callback(None))
92 self._cleanup_signals.append(sig)
93
94@@ -195,7 +199,7 @@
95 d = defer.Deferred()
96 d.addBoth(self.cleanup)
97
98- proxy = self.get_creds_proxy()
99+ proxy = yield self.get_creds_proxy()
100
101 sig = proxy.register_to_credentials_found(d.callback)
102 self._cleanup_signals.append(sig)
103@@ -241,7 +245,7 @@
104 d = defer.Deferred()
105 d.addBoth(self.cleanup)
106
107- proxy = self.get_creds_proxy()
108+ proxy = yield self.get_creds_proxy()
109
110 sig = proxy.register_to_credentials_found(d.callback)
111 self._cleanup_signals.append(sig)

Subscribers

People subscribed via source and target branches