Merge lp:~mandel/ubuntu-sso-client/remove-duplication into lp:ubuntu-sso-client

Proposed by Manuel de la Peña
Status: Merged
Approved by: Manuel de la Peña
Approved revision: 944
Merged at revision: 944
Proposed branch: lp:~mandel/ubuntu-sso-client/remove-duplication
Merge into: lp:ubuntu-sso-client
Diff against target: 129 lines (+34/-39)
5 files modified
ubuntu_sso/utils/webclient/common.py (+17/-4)
ubuntu_sso/utils/webclient/libsoup.py (+2/-11)
ubuntu_sso/utils/webclient/qtnetwork.py (+2/-11)
ubuntu_sso/utils/webclient/tests/test_webclient.py (+11/-2)
ubuntu_sso/utils/webclient/txweb.py (+2/-11)
To merge this branch: bzr merge lp:~mandel/ubuntu-sso-client/remove-duplication
Reviewer Review Type Date Requested Status
Eric Casteleijn (community) Approve
Zachery Bir (community) Approve
Review via email: mp+101724@code.launchpad.net

Commit message

- Removed duplicated code from the different webclient implementations (LP: #904842).

Description of the change

- Removed duplicated code from the different webclient implementations (LP: #904842).

To post a comment you must log in.
Revision history for this message
Zachery Bir (urbanape) wrote :

I like it.

review: Approve
Revision history for this message
Eric Casteleijn (thisfred) wrote :

Looks good!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'ubuntu_sso/utils/webclient/common.py'
2--- ubuntu_sso/utils/webclient/common.py 2012-04-09 17:38:24 +0000
3+++ ubuntu_sso/utils/webclient/common.py 2012-04-12 12:11:33 +0000
4@@ -166,10 +166,23 @@
5 request.sign_request(sig_method, consumer, token)
6 return request
7
8- def build_oauth_headers(self, method, uri, credentials, timestamp):
9- """Build oauth request headers given some credentials."""
10- request = self.build_oauth_request(method, uri, credentials, timestamp)
11- return request.to_header()
12+ @defer.inlineCallbacks
13+ def build_request_headers(self, uri, method="GET", extra_headers=None,
14+ oauth_credentials=None):
15+ """Build the headers for a request."""
16+ if extra_headers:
17+ headers = dict(extra_headers)
18+ else:
19+ headers = {}
20+
21+ if oauth_credentials:
22+ timestamp = yield self.get_timestamp()
23+ oauth_request = self.build_oauth_request(method, uri,
24+ oauth_credentials, timestamp)
25+ oauth_headers = oauth_request.to_header()
26+ headers.update(oauth_headers)
27+
28+ defer.returnValue(headers)
29
30 @defer.inlineCallbacks
31 def build_signed_iri(self, iri, credentials, parameters=None):
32
33=== modified file 'ubuntu_sso/utils/webclient/libsoup.py'
34--- ubuntu_sso/utils/webclient/libsoup.py 2012-04-09 17:38:24 +0000
35+++ ubuntu_sso/utils/webclient/libsoup.py 2012-04-12 12:11:33 +0000
36@@ -126,17 +126,8 @@
37 oauth_credentials=None, post_content=None):
38 """Return a deferred that will be fired with a Response object."""
39 uri = self.iri_to_uri(iri)
40- if extra_headers:
41- headers = dict(extra_headers)
42- else:
43- headers = {}
44-
45- if oauth_credentials:
46- timestamp = yield self.get_timestamp()
47- oauth_headers = self.build_oauth_headers(method, uri,
48- oauth_credentials, timestamp)
49- headers.update(oauth_headers)
50-
51+ headers = yield self.build_request_headers(uri, method, extra_headers,
52+ oauth_credentials)
53 d = defer.Deferred()
54 message = self.soup.Message.new(method, uri)
55
56
57=== modified file 'ubuntu_sso/utils/webclient/qtnetwork.py'
58--- ubuntu_sso/utils/webclient/qtnetwork.py 2012-04-09 17:38:24 +0000
59+++ ubuntu_sso/utils/webclient/qtnetwork.py 2012-04-12 12:11:33 +0000
60@@ -155,17 +155,8 @@
61 """Return a deferred that will be fired with a Response object."""
62 uri = self.iri_to_uri(iri)
63 request = QNetworkRequest(QUrl(uri))
64-
65- if extra_headers:
66- headers = dict(extra_headers)
67- else:
68- headers = {}
69-
70- if oauth_credentials:
71- timestamp = yield self.get_timestamp()
72- oauth_headers = self.build_oauth_headers(method, uri,
73- oauth_credentials, timestamp)
74- headers.update(oauth_headers)
75+ headers = yield self.build_request_headers(uri, method, extra_headers,
76+ oauth_credentials)
77
78 for key, value in headers.iteritems():
79 request.setRawHeader(key, value)
80
81=== modified file 'ubuntu_sso/utils/webclient/tests/test_webclient.py'
82--- ubuntu_sso/utils/webclient/tests/test_webclient.py 2012-04-09 17:38:24 +0000
83+++ ubuntu_sso/utils/webclient/tests/test_webclient.py 2012-04-12 12:11:33 +0000
84@@ -689,10 +689,19 @@
85 if expected_value is not ANY_VALUE:
86 self.assertEqual(params[k], expected_value)
87
88+ @defer.inlineCallbacks
89 def test_build_oauth_headers(self):
90 """Check that the oauth headers are properly built."""
91- headers = self.wc.build_oauth_headers(self.sample_method,
92- self.sample_url, SAMPLE_CREDENTIALS, self.timestamp)
93+
94+ def get_timestamp():
95+ """Return the timestamp."""
96+ return defer.succeed(self.timestamp)
97+
98+ self.patch(self.wc, 'get_timestamp', get_timestamp)
99+
100+ headers = yield self.wc.build_request_headers(self.sample_url,
101+ method=self.sample_method,
102+ oauth_credentials=SAMPLE_CREDENTIALS)
103 self.assert_headers_correct(headers)
104
105 def test_build_oauth_request(self, params=None):
106
107=== modified file 'ubuntu_sso/utils/webclient/txweb.py'
108--- ubuntu_sso/utils/webclient/txweb.py 2012-04-09 17:38:24 +0000
109+++ ubuntu_sso/utils/webclient/txweb.py 2012-04-12 12:11:33 +0000
110@@ -117,17 +117,8 @@
111 from twisted.web import http
112
113 uri = self.iri_to_uri(iri)
114-
115- if extra_headers:
116- headers = dict(extra_headers)
117- else:
118- headers = {}
119-
120- if oauth_credentials:
121- timestamp = yield self.get_timestamp()
122- oauth_headers = self.build_oauth_headers(method, uri,
123- oauth_credentials, timestamp)
124- headers.update(oauth_headers)
125+ headers = yield self.build_request_headers(uri, method, extra_headers,
126+ oauth_credentials)
127
128 if self.username and self.password:
129 auth = base64.b64encode(self.username + ":" + self.password)

Subscribers

People subscribed via source and target branches