Merge ~cjwatson/launchpad:lazr.restful-0.23.0 into launchpad:master
- Git
- lp:~cjwatson/launchpad
- lazr.restful-0.23.0
- Merge into master
Proposed by
Colin Watson
Status: | Merged |
---|---|
Approved by: | Colin Watson |
Approved revision: | 51351dd06e4aaca0e6332311de783deed686f420 |
Merge reported by: | Otto Co-Pilot |
Merged at revision: | not available |
Proposed branch: | ~cjwatson/launchpad:lazr.restful-0.23.0 |
Merge into: | launchpad:master |
Diff against target: |
3415 lines (+1030/-1030) 26 files modified
constraints.txt (+1/-1) lib/lp/answers/stories/webservice.txt (+24/-24) lib/lp/bugs/stories/webservice/xx-bug-tracker.txt (+24/-24) lib/lp/bugs/stories/webservice/xx-bug.txt (+260/-260) lib/lp/code/stories/webservice/xx-branch-links.txt (+5/-5) lib/lp/code/stories/webservice/xx-branch.txt (+24/-24) lib/lp/code/stories/webservice/xx-branchmergeproposal.txt (+81/-81) lib/lp/code/stories/webservice/xx-branchsubscription.txt (+18/-18) lib/lp/registry/stories/webservice/xx-distribution-mirror.txt (+49/-49) lib/lp/registry/stories/webservice/xx-distribution.txt (+40/-40) lib/lp/registry/stories/webservice/xx-distroseries.txt (+22/-22) lib/lp/registry/stories/webservice/xx-person.txt (+107/-107) lib/lp/registry/stories/webservice/xx-project-registry.txt (+88/-88) lib/lp/registry/stories/webservice/xx-source-package.txt (+6/-6) lib/lp/registry/stories/webservice/xx-structuralsubscription.txt (+24/-24) lib/lp/services/worlddata/stories/webservice/xx-country.txt (+6/-6) lib/lp/soyuz/stories/webservice/xx-archive-commercial.txt (+14/-14) lib/lp/soyuz/stories/webservice/xx-archive.txt (+91/-91) lib/lp/soyuz/stories/webservice/xx-binary-package-publishing.txt (+28/-28) lib/lp/soyuz/stories/webservice/xx-builds.txt (+50/-50) lib/lp/soyuz/stories/webservice/xx-distroarchseries.txt (+22/-22) lib/lp/soyuz/stories/webservice/xx-hasbuildrecords.txt (+2/-2) lib/lp/soyuz/stories/webservice/xx-packageset.txt (+10/-10) lib/lp/soyuz/stories/webservice/xx-packageupload.txt (+9/-9) lib/lp/soyuz/stories/webservice/xx-source-package-publishing.txt (+15/-15) lib/lp/translations/stories/webservice/xx-potemplate.txt (+10/-10) |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Ioana Lasc (community) | Approve | ||
Review via email: mp+391449@code.launchpad.net |
Commit message
Upgrade to lazr.restful 0.23.0
Description of the change
A number of pagetests need to change to account for the pretty-printing changes in https:/
Dependencies MP: https:/
To post a comment you must log in.
Revision history for this message
Ioana Lasc (ilasc) : | # |
review:
Approve
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | diff --git a/constraints.txt b/constraints.txt |
2 | index 0bebad0..e567e25 100644 |
3 | --- a/constraints.txt |
4 | +++ b/constraints.txt |
5 | @@ -228,7 +228,7 @@ lazr.delegates==2.0.4 |
6 | lazr.enum==1.2 |
7 | lazr.jobrunner==0.16 |
8 | lazr.lifecycle==1.2 |
9 | -lazr.restful==0.22.2 |
10 | +lazr.restful==0.23.0 |
11 | lazr.restfulclient==0.14.3 |
12 | lazr.sshserver==0.1.10 |
13 | lazr.uri==1.0.5 |
14 | diff --git a/lib/lp/answers/stories/webservice.txt b/lib/lp/answers/stories/webservice.txt |
15 | index 84fb53a..852e915 100644 |
16 | --- a/lib/lp/answers/stories/webservice.txt |
17 | +++ b/lib/lp/answers/stories/webservice.txt |
18 | @@ -201,23 +201,23 @@ a link to retrieve the question's messages. |
19 | answer_link: None |
20 | answerer_link: None |
21 | assignee_link: None |
22 | - date_created: u'20...+00:00' |
23 | + date_created: '20...+00:00' |
24 | date_due: None |
25 | - date_last_query: u'20...+00:00' |
26 | - date_last_response: u'20...+00:00' |
27 | + date_last_query: '20...+00:00' |
28 | + date_last_response: '20...+00:00' |
29 | date_solved: None |
30 | - description: u'description...' |
31 | + description: 'description...' |
32 | id: ... |
33 | - language_link: u'http://api.launchpad.test/devel/+languages/en' |
34 | + language_link: 'http://api.launchpad.test/devel/+languages/en' |
35 | messages_collection_link: |
36 | - u'http://api.launchpad.test/devel/my-project/+question/.../messages' |
37 | - owner_link: u'http://api.launchpad.test/devel/~asker' |
38 | - resource_type_link: u'http://api.launchpad.test/devel/#question' |
39 | - self_link: u'http://api.launchpad.test/devel/my-project/+question/...' |
40 | - status: u'Answered' |
41 | - target_link: u'http://api.launchpad.test/devel/my-project' |
42 | - title: u'Q 1 great' |
43 | - web_link: u'http://answers.launchpad.test/my-project/+question/...' |
44 | + 'http://api.launchpad.test/devel/my-project/+question/.../messages' |
45 | + owner_link: 'http://api.launchpad.test/devel/~asker' |
46 | + resource_type_link: 'http://api.launchpad.test/devel/#question' |
47 | + self_link: 'http://api.launchpad.test/devel/my-project/+question/...' |
48 | + status: 'Answered' |
49 | + target_link: 'http://api.launchpad.test/devel/my-project' |
50 | + title: 'Q 1 great' |
51 | + web_link: 'http://answers.launchpad.test/my-project/+question/...' |
52 | |
53 | |
54 | Question messages |
55 | @@ -230,19 +230,19 @@ that indicate how the message changed the question. |
56 | ... question_1['messages_collection_link'], |
57 | ... api_version='devel').jsonBody() |
58 | >>> pprint_entry(messages['entries'][0]) |
59 | - action: u'Answer' |
60 | - bug_attachments_collection_link: u'...' |
61 | - content: u'This is the answer' |
62 | - date_created: u'20...+00:00' |
63 | + action: 'Answer' |
64 | + bug_attachments_collection_link: '...' |
65 | + content: 'This is the answer' |
66 | + date_created: '20...+00:00' |
67 | index: 1 |
68 | - new_status: u'Answered' |
69 | - owner_link: u'http://api.launchpad.test/devel/~contact' |
70 | + new_status: 'Answered' |
71 | + owner_link: 'http://api.launchpad.test/devel/~contact' |
72 | parent_link: None |
73 | - question_link: u'http://api.launchpad.test/devel/my-project/+question/...' |
74 | - resource_type_link: u'http://api.launchpad.test/devel/#question_message' |
75 | + question_link: 'http://api.launchpad.test/devel/my-project/+question/...' |
76 | + resource_type_link: 'http://api.launchpad.test/devel/#question_message' |
77 | self_link: |
78 | - u'http://api.launchpad.test/devel/my-project/+question/.../messages/1' |
79 | - subject: u'Re: Q 1 great' |
80 | + 'http://api.launchpad.test/devel/my-project/+question/.../messages/1' |
81 | + subject: 'Re: Q 1 great' |
82 | visible: True |
83 | web_link: |
84 | - u'http://answers.launchpad.test/my-project/+question/.../messages/1' |
85 | + 'http://answers.launchpad.test/my-project/+question/.../messages/1' |
86 | diff --git a/lib/lp/bugs/stories/webservice/xx-bug-tracker.txt b/lib/lp/bugs/stories/webservice/xx-bug-tracker.txt |
87 | index 0983392..5914d8b 100644 |
88 | --- a/lib/lp/bugs/stories/webservice/xx-bug-tracker.txt |
89 | +++ b/lib/lp/bugs/stories/webservice/xx-bug-tracker.txt |
90 | @@ -10,25 +10,25 @@ any user can access. |
91 | >>> bug_tracker_collection = anon_webservice.get( |
92 | ... '/bugs/bugtrackers').jsonBody() |
93 | >>> pprint_collection(bug_tracker_collection) |
94 | - next_collection_link: u'http://.../bugs/bugtrackers?ws.size=5&memo=5&ws.start=5' |
95 | - resource_type_link: u'http://.../#bug_trackers' |
96 | + next_collection_link: 'http://.../bugs/bugtrackers?ws.size=5&memo=5&ws.start=5' |
97 | + resource_type_link: 'http://.../#bug_trackers' |
98 | start: 0 |
99 | total_size: 8 |
100 | --- |
101 | active: True |
102 | - base_url: u'https://bugzilla.mozilla.org/' |
103 | + base_url: 'https://bugzilla.mozilla.org/' |
104 | base_url_aliases: [] |
105 | - bug_tracker_type: u'Bugzilla' |
106 | - contact_details: u'Carrier pigeon only' |
107 | + bug_tracker_type: 'Bugzilla' |
108 | + contact_details: 'Carrier pigeon only' |
109 | has_lp_plugin: None |
110 | - name: u'mozilla.org' |
111 | - registrant_link: u'http://.../~name12' |
112 | - resource_type_link: u'http://.../#bug_tracker' |
113 | - self_link: u'http://.../bugs/bugtrackers/mozilla.org' |
114 | - summary: u'The Mozilla.org bug tracker is the grand-daddy of ...' |
115 | - title: u'The Mozilla.org Bug Tracker' |
116 | - watches_collection_link: u'http:.../bugs/bugtrackers/mozilla.org/watches' |
117 | - web_link: u'http://bugs.launchpad.test/bugs/bugtrackers/mozilla.org' |
118 | + name: 'mozilla.org' |
119 | + registrant_link: 'http://.../~name12' |
120 | + resource_type_link: 'http://.../#bug_tracker' |
121 | + self_link: 'http://.../bugs/bugtrackers/mozilla.org' |
122 | + summary: 'The Mozilla.org bug tracker is the grand-daddy of ...' |
123 | + title: 'The Mozilla.org Bug Tracker' |
124 | + watches_collection_link: 'http:.../bugs/bugtrackers/mozilla.org/watches' |
125 | + web_link: 'http://bugs.launchpad.test/bugs/bugtrackers/mozilla.org' |
126 | --- ... |
127 | |
128 | A bug tracker can be retrieved using the bug tracker collection's |
129 | @@ -64,16 +64,16 @@ logged in user can call to create a bug tracker. |
130 | >>> bug_tracker = webservice.get('/bugs/bugtrackers/wombat').jsonBody() |
131 | >>> pprint_entry(bug_tracker) |
132 | active: True |
133 | - base_url: u'http://wombat.zz/' |
134 | + base_url: 'http://wombat.zz/' |
135 | base_url_aliases: [] |
136 | - bug_tracker_type: u'Bugzilla' |
137 | - contact_details: u'big-nose@wombat.zz' |
138 | + bug_tracker_type: 'Bugzilla' |
139 | + contact_details: 'big-nose@wombat.zz' |
140 | has_lp_plugin: False |
141 | - name: u'wombat' |
142 | - registrant_link: u'http://.../~salgado' |
143 | - resource_type_link: u'http://.../#bug_tracker' |
144 | - self_link: u'http://.../bugs/bugtrackers/wombat' |
145 | - summary: u'Wombat summary' |
146 | - title: u'Wombat title' |
147 | - watches_collection_link: u'http://.../bugs/bugtrackers/wombat/watches' |
148 | - web_link: u'http://bugs.launchpad.test/bugs/bugtrackers/wombat' |
149 | + name: 'wombat' |
150 | + registrant_link: 'http://.../~salgado' |
151 | + resource_type_link: 'http://.../#bug_tracker' |
152 | + self_link: 'http://.../bugs/bugtrackers/wombat' |
153 | + summary: 'Wombat summary' |
154 | + title: 'Wombat title' |
155 | + watches_collection_link: 'http://.../bugs/bugtrackers/wombat/watches' |
156 | + web_link: 'http://bugs.launchpad.test/bugs/bugtrackers/wombat' |
157 | diff --git a/lib/lp/bugs/stories/webservice/xx-bug.txt b/lib/lp/bugs/stories/webservice/xx-bug.txt |
158 | index a8f5d44..66250c7 100644 |
159 | --- a/lib/lp/bugs/stories/webservice/xx-bug.txt |
160 | +++ b/lib/lp/bugs/stories/webservice/xx-bug.txt |
161 | @@ -14,44 +14,44 @@ Bugs are indexed by number beneath the top-level collection. |
162 | ... pprint_collection, pprint_entry) |
163 | >>> bug_one = webservice.get("/bugs/1").jsonBody() |
164 | >>> pprint_entry(bug_one) |
165 | - activity_collection_link: u'http://.../bugs/1/activity' |
166 | - attachments_collection_link: u'http://.../bugs/1/attachments' |
167 | - bug_tasks_collection_link: u'http://.../bugs/1/bug_tasks' |
168 | - bug_watches_collection_link: u'http://.../bugs/1/bug_watches' |
169 | + activity_collection_link: 'http://.../bugs/1/activity' |
170 | + attachments_collection_link: 'http://.../bugs/1/attachments' |
171 | + bug_tasks_collection_link: 'http://.../bugs/1/bug_tasks' |
172 | + bug_watches_collection_link: 'http://.../bugs/1/bug_watches' |
173 | can_expire: False |
174 | - cves_collection_link: u'http://.../bugs/1/cves' |
175 | - date_created: u'2004-01-01T20:58:04.553583+00:00' |
176 | + cves_collection_link: 'http://.../bugs/1/cves' |
177 | + date_created: '2004-01-01T20:58:04.553583+00:00' |
178 | date_last_message: None |
179 | - date_last_updated: u'2006-05-19T06:37:40.344941+00:00' |
180 | + date_last_updated: '2006-05-19T06:37:40.344941+00:00' |
181 | date_made_private: None |
182 | - description: u'Firefox needs to support embedded SVG...' |
183 | + description: 'Firefox needs to support embedded SVG...' |
184 | duplicate_of_link: None |
185 | - duplicates_collection_link: u'http://.../bugs/1/duplicates' |
186 | + duplicates_collection_link: 'http://.../bugs/1/duplicates' |
187 | heat: 0 |
188 | id: 1 |
189 | - information_type: u'Public' |
190 | + information_type: 'Public' |
191 | latest_patch_uploaded: None |
192 | - linked_branches_collection_link: u'http://.../bugs/1/linked_branches' |
193 | + linked_branches_collection_link: 'http://.../bugs/1/linked_branches' |
194 | message_count: 2 |
195 | - messages_collection_link: u'http://.../bugs/1/messages' |
196 | + messages_collection_link: 'http://.../bugs/1/messages' |
197 | name: None |
198 | number_of_duplicates: 0 |
199 | other_users_affected_count_with_dupes: 0 |
200 | - owner_link: u'http://.../~name12' |
201 | + owner_link: 'http://.../~name12' |
202 | private: False |
203 | - resource_type_link: u'http://.../#bug' |
204 | + resource_type_link: 'http://.../#bug' |
205 | security_related: False |
206 | - self_link: u'http://.../bugs/1' |
207 | - subscriptions_collection_link: u'http://.../bugs/1/subscriptions' |
208 | + self_link: 'http://.../bugs/1' |
209 | + subscriptions_collection_link: 'http://.../bugs/1/subscriptions' |
210 | tags: [] |
211 | - title: u'Firefox does not support SVG' |
212 | - users_affected_collection_link: u'http://.../bugs/1/users_affected' |
213 | + title: 'Firefox does not support SVG' |
214 | + users_affected_collection_link: 'http://.../bugs/1/users_affected' |
215 | users_affected_count: 0 |
216 | users_affected_count_with_dupes: 0 |
217 | - users_affected_with_dupes_collection_link: u'http://.../bugs/1/users_affected_with_dupes' |
218 | - users_unaffected_collection_link: u'http://.../bugs/1/users_unaffected' |
219 | + users_affected_with_dupes_collection_link: 'http://.../bugs/1/users_affected_with_dupes' |
220 | + users_unaffected_collection_link: 'http://.../bugs/1/users_unaffected' |
221 | users_unaffected_count: 0 |
222 | - web_link: u'http://bugs.../bugs/1' |
223 | + web_link: 'http://bugs.../bugs/1' |
224 | who_made_private_link: None |
225 | |
226 | Bugs have relationships to other bugs, like "duplicate_of". |
227 | @@ -231,15 +231,15 @@ Each bug has a collection of messages. |
228 | >>> messages = webservice.get("/bugs/5/messages").jsonBody()['entries'] |
229 | >>> pprint_entry(messages[0]) |
230 | bug_attachments_collection_link: |
231 | - u'http://.../firefox/+bug/5/comments/0/bug_attachments' |
232 | - content: u'All ways of downloading firefox should provide...' |
233 | - date_created: u'2005-01-14T17:27:03.702622+00:00' |
234 | - owner_link: u'http://.../~name12' |
235 | + 'http://.../firefox/+bug/5/comments/0/bug_attachments' |
236 | + content: 'All ways of downloading firefox should provide...' |
237 | + date_created: '2005-01-14T17:27:03.702622+00:00' |
238 | + owner_link: 'http://.../~name12' |
239 | parent_link: None |
240 | - resource_type_link: u'http://.../#message' |
241 | - self_link: u'http://.../firefox/+bug/5/comments/0' |
242 | - subject: u'Firefox install instructions should be complete' |
243 | - web_link: u'http://bugs.../firefox/+bug/5/comments/0' |
244 | + resource_type_link: 'http://.../#message' |
245 | + self_link: 'http://.../firefox/+bug/5/comments/0' |
246 | + subject: 'Firefox install instructions should be complete' |
247 | + web_link: 'http://bugs.../firefox/+bug/5/comments/0' |
248 | |
249 | The messages are stored beneath the bug-specific collection. Their |
250 | URLs are based on their position with respect to the |
251 | @@ -279,12 +279,12 @@ We can add a new message to a bug by calling the newMessage method. |
252 | |
253 | >>> pprint_entry(webservice.get("/firefox/+bug/5/comments/1").jsonBody()) |
254 | bug_attachments_collection_link: ... |
255 | - content: u'This is a new message added through the webservice API.' |
256 | + content: 'This is a new message added through the webservice API.' |
257 | ... |
258 | - resource_type_link: u'http://api.launchpad.test/beta/#message' |
259 | - self_link: u'http://api.launchpad.test/beta/firefox/+bug/5/comments/1' |
260 | - subject: u'A new message' |
261 | - web_link: u'...' |
262 | + resource_type_link: 'http://api.launchpad.test/beta/#message' |
263 | + self_link: 'http://api.launchpad.test/beta/firefox/+bug/5/comments/1' |
264 | + subject: 'A new message' |
265 | + web_link: '...' |
266 | |
267 | We don't have to submit a subject when we add a new message. |
268 | |
269 | @@ -299,11 +299,11 @@ We don't have to submit a subject when we add a new message. |
270 | |
271 | >>> pprint_entry(webservice.get("/firefox/+bug/5/comments/2").jsonBody()) |
272 | bug_attachments_collection_link: ... |
273 | - content: u'This is a new message with no subject.' |
274 | + content: 'This is a new message with no subject.' |
275 | ... |
276 | - self_link: u'http://api.launchpad.test/beta/firefox/+bug/5/comments/2' |
277 | - subject: u'Re: Firefox install instructions should be complete' |
278 | - web_link: u'...' |
279 | + self_link: 'http://api.launchpad.test/beta/firefox/+bug/5/comments/2' |
280 | + subject: 'Re: Firefox install instructions should be complete' |
281 | + web_link: '...' |
282 | |
283 | |
284 | Bug tasks |
285 | @@ -320,14 +320,14 @@ data in a bug task is derived from the bug. |
286 | |
287 | >>> pprint_entry(bug_one_bugtasks[0]) |
288 | assignee_link: None |
289 | - bug_link: u'http://.../bugs/1' |
290 | - bug_target_display_name: u'mozilla-firefox (Debian)' |
291 | - bug_target_name: u'mozilla-firefox (Debian)' |
292 | - bug_watch_link: u'http://.../bugs/1/+watch/8' |
293 | - date_assigned: u'2005-01-04T11:07:20.584746+00:00' |
294 | + bug_link: 'http://.../bugs/1' |
295 | + bug_target_display_name: 'mozilla-firefox (Debian)' |
296 | + bug_target_name: 'mozilla-firefox (Debian)' |
297 | + bug_watch_link: 'http://.../bugs/1/+watch/8' |
298 | + date_assigned: '2005-01-04T11:07:20.584746+00:00' |
299 | date_closed: None |
300 | date_confirmed: None |
301 | - date_created: u'2004-01-04T03:49:22.790240+00:00' |
302 | + date_created: '2004-01-04T03:49:22.790240+00:00' |
303 | date_fix_committed: None |
304 | date_fix_released: None |
305 | date_in_progress: None |
306 | @@ -335,18 +335,18 @@ data in a bug task is derived from the bug. |
307 | date_left_closed: None |
308 | date_left_new: None |
309 | date_triaged: None |
310 | - importance: u'Low' |
311 | + importance: 'Low' |
312 | is_complete: False |
313 | milestone_link: None |
314 | - owner_link: u'http://.../~name12' |
315 | + owner_link: 'http://.../~name12' |
316 | related_tasks_collection_link: |
317 | - u'http://api.../debian/+source/mozilla-firefox/+bug/1/related_tasks' |
318 | - resource_type_link: u'http://.../#bug_task' |
319 | - self_link: u'http://api.../debian/+source/mozilla-firefox/+bug/1' |
320 | - status: u'Confirmed' |
321 | - target_link: u'http://api.../debian/+source/mozilla-firefox' |
322 | - title: u'Bug #1 in mozilla-firefox (Debian): "Firefox does not support SVG"' |
323 | - web_link: u'http://bugs.../debian/+source/mozilla-firefox/+bug/1' |
324 | + 'http://api.../debian/+source/mozilla-firefox/+bug/1/related_tasks' |
325 | + resource_type_link: 'http://.../#bug_task' |
326 | + self_link: 'http://api.../debian/+source/mozilla-firefox/+bug/1' |
327 | + status: 'Confirmed' |
328 | + target_link: 'http://api.../debian/+source/mozilla-firefox' |
329 | + title: 'Bug #1 in mozilla-firefox (Debian): "Firefox does not support SVG"' |
330 | + web_link: 'http://bugs.../debian/+source/mozilla-firefox/+bug/1' |
331 | |
332 | The collection of bug tasks is not exposed as a resource: |
333 | |
334 | @@ -651,17 +651,17 @@ But John, an unprivileged user, wants it fixed in Fooix 0.1.1. |
335 | start: 0 |
336 | total_size: 1 |
337 | --- |
338 | - bug_link: u'http://.../bugs/...' |
339 | - date_created: u'...' |
340 | + bug_link: 'http://.../bugs/...' |
341 | + date_created: '...' |
342 | date_decided: None |
343 | decider_link: None |
344 | distroseries_link: None |
345 | - owner_link: u'http://.../~john' |
346 | - productseries_link: u'http://.../fooix/0.1' |
347 | - resource_type_link: u'http://.../#bug_nomination' |
348 | - self_link: u'http://.../bugs/.../nominations/...' |
349 | - status: u'Nominated' |
350 | - target_link: u'http://.../fooix/0.1' |
351 | + owner_link: 'http://.../~john' |
352 | + productseries_link: 'http://.../fooix/0.1' |
353 | + resource_type_link: 'http://.../#bug_nomination' |
354 | + self_link: 'http://.../bugs/.../nominations/...' |
355 | + status: 'Nominated' |
356 | + target_link: 'http://.../fooix/0.1' |
357 | --- |
358 | |
359 | |
360 | @@ -706,17 +706,17 @@ John is disappointed to see that the nomination was declined. |
361 | start: 0 |
362 | total_size: 1 |
363 | --- |
364 | - bug_link: u'http://.../bugs/...' |
365 | - date_created: u'...' |
366 | - date_decided: u'...' |
367 | - decider_link: u'http://.../~eric' |
368 | + bug_link: 'http://.../bugs/...' |
369 | + date_created: '...' |
370 | + date_decided: '...' |
371 | + decider_link: 'http://.../~eric' |
372 | distroseries_link: None |
373 | - owner_link: u'http://.../~john' |
374 | - productseries_link: u'http://.../fooix/0.1' |
375 | - resource_type_link: u'http://.../#bug_nomination' |
376 | - self_link: u'http://.../bugs/.../nominations/...' |
377 | - status: u'Declined' |
378 | - target_link: u'http://.../fooix/0.1' |
379 | + owner_link: 'http://.../~john' |
380 | + productseries_link: 'http://.../fooix/0.1' |
381 | + resource_type_link: 'http://.../#bug_nomination' |
382 | + self_link: 'http://.../bugs/.../nominations/...' |
383 | + status: 'Declined' |
384 | + target_link: 'http://.../fooix/0.1' |
385 | --- |
386 | |
387 | Eric changes his mind, and approves the nomination. |
388 | @@ -732,17 +732,17 @@ This marks the nomination as Approved, and creates a new task. |
389 | start: 0 |
390 | total_size: 1 |
391 | --- |
392 | - bug_link: u'http://.../bugs/...' |
393 | - date_created: u'...' |
394 | - date_decided: u'...' |
395 | - decider_link: u'http://.../~eric' |
396 | + bug_link: 'http://.../bugs/...' |
397 | + date_created: '...' |
398 | + date_decided: '...' |
399 | + decider_link: 'http://.../~eric' |
400 | distroseries_link: None |
401 | - owner_link: u'http://.../~john' |
402 | - productseries_link: u'http://.../fooix/0.1' |
403 | - resource_type_link: u'http://.../#bug_nomination' |
404 | - self_link: u'http://.../bugs/.../nominations/...' |
405 | - status: u'Approved' |
406 | - target_link: u'http://.../fooix/0.1' |
407 | + owner_link: 'http://.../~john' |
408 | + productseries_link: 'http://.../fooix/0.1' |
409 | + resource_type_link: 'http://.../#bug_nomination' |
410 | + self_link: 'http://.../bugs/.../nominations/...' |
411 | + status: 'Approved' |
412 | + target_link: 'http://.../fooix/0.1' |
413 | --- |
414 | |
415 | >>> login('foo.bar@canonical.com') |
416 | @@ -814,19 +814,19 @@ We can get the collection of subscriptions to a bug. |
417 | >>> for entry in subscription_entries: |
418 | ... pprint_entry(entry) |
419 | ... print() |
420 | - bug_link: u'http://.../bugs/1' |
421 | - date_created: u'2006-10-16T18:31:43.156104+00:00' |
422 | - person_link: u'http://.../~name12' |
423 | - resource_type_link: u'http://.../#bug_subscription' |
424 | - self_link: u'http://.../bugs/1/+subscription/name12' |
425 | - subscribed_by_link: u'http://.../~janitor' |
426 | + bug_link: 'http://.../bugs/1' |
427 | + date_created: '2006-10-16T18:31:43.156104+00:00' |
428 | + person_link: 'http://.../~name12' |
429 | + resource_type_link: 'http://.../#bug_subscription' |
430 | + self_link: 'http://.../bugs/1/+subscription/name12' |
431 | + subscribed_by_link: 'http://.../~janitor' |
432 | <BLANKLINE> |
433 | - bug_link: u'http://.../bugs/1' |
434 | - date_created: u'2006-10-16T18:31:43.154816+00:00' |
435 | - person_link: u'http://.../~stevea' |
436 | - resource_type_link: u'http://.../#bug_subscription' |
437 | - self_link: u'http://.../bugs/1/+subscription/stevea' |
438 | - subscribed_by_link: u'http://.../~janitor' |
439 | + bug_link: 'http://.../bugs/1' |
440 | + date_created: '2006-10-16T18:31:43.154816+00:00' |
441 | + person_link: 'http://.../~stevea' |
442 | + resource_type_link: 'http://.../#bug_subscription' |
443 | + self_link: 'http://.../bugs/1/+subscription/stevea' |
444 | + subscribed_by_link: 'http://.../~janitor' |
445 | <BLANKLINE> |
446 | |
447 | Each subscription can be accessed individually. |
448 | @@ -834,12 +834,12 @@ Each subscription can be accessed individually. |
449 | >>> subscription = webservice.get( |
450 | ... subscription_entries[1]['self_link']).jsonBody() |
451 | >>> pprint_entry(subscription) |
452 | - bug_link: u'http://.../bugs/1' |
453 | - date_created: u'2006-10-16T18:31:43.154816+00:00' |
454 | - person_link: u'http://.../~stevea' |
455 | - resource_type_link: u'http://.../#bug_subscription' |
456 | - self_link: u'http://.../bugs/1/+subscription/stevea' |
457 | - subscribed_by_link: u'http://.../~janitor' |
458 | + bug_link: 'http://.../bugs/1' |
459 | + date_created: '2006-10-16T18:31:43.154816+00:00' |
460 | + person_link: 'http://.../~stevea' |
461 | + resource_type_link: 'http://.../#bug_subscription' |
462 | + self_link: 'http://.../bugs/1/+subscription/stevea' |
463 | + subscribed_by_link: 'http://.../~janitor' |
464 | |
465 | Subscriptions can also be accessed anonymously. |
466 | |
467 | @@ -854,7 +854,7 @@ We can also create new subscriptions. |
468 | ... person=webservice.getAbsoluteUrl('/~cprov')).jsonBody() |
469 | >>> pprint_entry(new_subscription) |
470 | bug_link: ... |
471 | - self_link: u'http://.../bugs/1/+subscription/cprov' |
472 | + self_link: 'http://.../bugs/1/+subscription/cprov' |
473 | ... |
474 | |
475 | An individual can only unsubscribe themselves. If the person argument is |
476 | @@ -874,13 +874,13 @@ BugNotificationLevel. |
477 | ... person=webservice.getAbsoluteUrl('/~salgado'), |
478 | ... level=u"Details", api_version="devel").jsonBody() |
479 | >>> pprint_entry(new_subscription) |
480 | - bug_link: u'.../bugs/1' |
481 | - bug_notification_level: u'Details' |
482 | - date_created: u'...' |
483 | - person_link: u'...' |
484 | - resource_type_link: u'...' |
485 | - self_link: u'...' |
486 | - subscribed_by_link: u'...' |
487 | + bug_link: '.../bugs/1' |
488 | + bug_notification_level: 'Details' |
489 | + date_created: '...' |
490 | + person_link: '...' |
491 | + resource_type_link: '...' |
492 | + self_link: '...' |
493 | + subscribed_by_link: '...' |
494 | |
495 | They can also update the subscription's bug_notification_level directly. |
496 | |
497 | @@ -889,8 +889,8 @@ They can also update the subscription's bug_notification_level directly. |
498 | ... webservice.patch( |
499 | ... new_subscription['self_link'], 'application/json', |
500 | ... dumps(patch), api_version="devel").jsonBody()) |
501 | - bug_link: u'.../bugs/1' |
502 | - bug_notification_level: u'Lifecycle'... |
503 | + bug_link: '.../bugs/1' |
504 | + bug_notification_level: 'Lifecycle'... |
505 | |
506 | If one person tries to unsubscribe another individual, the web |
507 | service will return an unauthorized error. |
508 | @@ -1046,23 +1046,23 @@ report described by the bugwatch. |
509 | ... if bug_watch['remote_bug'] == u'2000'] |
510 | |
511 | >>> pprint_entry(bug_watch_2000) |
512 | - bug_link: u'http://.../bugs/1' |
513 | - bug_tasks_collection_link: u'http://.../bugs/1/+watch/2/bug_tasks' |
514 | - bug_tracker_link: u'http://.../bugs/bugtrackers/mozilla.org' |
515 | - date_created: u'2004-10-04T01:00:00+00:00' |
516 | - date_last_changed: u'2004-10-04T01:00:00+00:00' |
517 | - date_last_checked: u'2004-10-04T01:00:00+00:00' |
518 | + bug_link: 'http://.../bugs/1' |
519 | + bug_tasks_collection_link: 'http://.../bugs/1/+watch/2/bug_tasks' |
520 | + bug_tracker_link: 'http://.../bugs/bugtrackers/mozilla.org' |
521 | + date_created: '2004-10-04T01:00:00+00:00' |
522 | + date_last_changed: '2004-10-04T01:00:00+00:00' |
523 | + date_last_checked: '2004-10-04T01:00:00+00:00' |
524 | date_next_checked: None |
525 | last_error_type: None |
526 | - owner_link: u'http://.../~mark' |
527 | - remote_bug: u'2000' |
528 | - remote_importance: u'' |
529 | - remote_status: u'' |
530 | - resource_type_link: u'http://.../#bug_watch' |
531 | - self_link: u'http://.../bugs/1/+watch/2' |
532 | - title: u'The Mozilla.org Bug Tracker #2000' |
533 | - url: u'https://bugzilla.mozilla.org/show_bug.cgi?id=2000' |
534 | - web_link: u'http://bugs.../bugs/1/+watch/2' |
535 | + owner_link: 'http://.../~mark' |
536 | + remote_bug: '2000' |
537 | + remote_importance: '' |
538 | + remote_status: '' |
539 | + resource_type_link: 'http://.../#bug_watch' |
540 | + self_link: 'http://.../bugs/1/+watch/2' |
541 | + title: 'The Mozilla.org Bug Tracker #2000' |
542 | + url: 'https://bugzilla.mozilla.org/show_bug.cgi?id=2000' |
543 | + web_link: 'http://bugs.../bugs/1/+watch/2' |
544 | |
545 | >>> bug_watch = webservice.get(bug_watch_2000['self_link']).jsonBody() |
546 | >>> bug_watch == bug_watch_2000 |
547 | @@ -1118,23 +1118,23 @@ Following the redirect, we can see the new bug watch: |
548 | >>> new_bug_watch_path = response.getHeader('Location') |
549 | >>> new_bug_watch = webservice.get(new_bug_watch_path).jsonBody() |
550 | >>> pprint_entry(new_bug_watch) |
551 | - bug_link: u'http://.../bugs/1' |
552 | - bug_tasks_collection_link: u'http://.../bugs/1/+watch/.../bug_tasks' |
553 | - bug_tracker_link: u'http://.../bugs/bugtrackers/mozilla.org' |
554 | - date_created: u'...' |
555 | + bug_link: 'http://.../bugs/1' |
556 | + bug_tasks_collection_link: 'http://.../bugs/1/+watch/.../bug_tasks' |
557 | + bug_tracker_link: 'http://.../bugs/bugtrackers/mozilla.org' |
558 | + date_created: '...' |
559 | date_last_changed: None |
560 | date_last_checked: None |
561 | date_next_checked: None |
562 | last_error_type: None |
563 | - owner_link: u'http://.../~salgado' |
564 | - remote_bug: u'9876' |
565 | + owner_link: 'http://.../~salgado' |
566 | + remote_bug: '9876' |
567 | remote_importance: None |
568 | remote_status: None |
569 | - resource_type_link: u'http://.../#bug_watch' |
570 | - self_link: u'http://.../bugs/1/+watch/...' |
571 | - title: u'The Mozilla.org Bug Tracker #9876' |
572 | - url: u'https://bugzilla.mozilla.org/show_bug.cgi?id=9876' |
573 | - web_link: u'http://bugs.../bugs/1/+watch/...' |
574 | + resource_type_link: 'http://.../#bug_watch' |
575 | + self_link: 'http://.../bugs/1/+watch/...' |
576 | + title: 'The Mozilla.org Bug Tracker #9876' |
577 | + url: 'https://bugzilla.mozilla.org/show_bug.cgi?id=9876' |
578 | + web_link: 'http://bugs.../bugs/1/+watch/...' |
579 | |
580 | Bug Trackers |
581 | ------------ |
582 | @@ -1143,19 +1143,19 @@ Bug Trackers |
583 | |
584 | >>> pprint_entry(bug_tracker) |
585 | active: True |
586 | - base_url: u'https://bugzilla.mozilla.org/' |
587 | + base_url: 'https://bugzilla.mozilla.org/' |
588 | base_url_aliases: [] |
589 | - bug_tracker_type: u'Bugzilla' |
590 | - contact_details: u'Carrier pigeon only' |
591 | + bug_tracker_type: 'Bugzilla' |
592 | + contact_details: 'Carrier pigeon only' |
593 | has_lp_plugin: None |
594 | - name: u'mozilla.org' |
595 | - registrant_link: u'http://.../~name12' |
596 | - resource_type_link: u'http://.../#bug_tracker' |
597 | - self_link: u'http://.../bugs/bugtrackers/mozilla.org' |
598 | - summary: u'The Mozilla.org bug tracker is the grand-daddy of bugzillas...' |
599 | - title: u'The Mozilla.org Bug Tracker' |
600 | - watches_collection_link: u'http://.../bugs/bugtrackers/mozilla.org/watches' |
601 | - web_link: u'http://bugs.../bugs/bugtrackers/mozilla.org' |
602 | + name: 'mozilla.org' |
603 | + registrant_link: 'http://.../~name12' |
604 | + resource_type_link: 'http://.../#bug_tracker' |
605 | + self_link: 'http://.../bugs/bugtrackers/mozilla.org' |
606 | + summary: 'The Mozilla.org bug tracker is the grand-daddy of bugzillas...' |
607 | + title: 'The Mozilla.org Bug Tracker' |
608 | + watches_collection_link: 'http://.../bugs/bugtrackers/mozilla.org/watches' |
609 | + web_link: 'http://bugs.../bugs/bugtrackers/mozilla.org' |
610 | |
611 | We can change various aspects of bug trackers. |
612 | |
613 | @@ -1197,19 +1197,19 @@ renamed bug tracker. |
614 | >>> bug_tracker = webservice.get(bug_tracker_path).jsonBody() |
615 | >>> pprint_entry(bug_tracker) |
616 | active: True |
617 | - base_url: u'http://bugs.example.com/' |
618 | + base_url: 'http://bugs.example.com/' |
619 | base_url_aliases: [u'http://bugs.example.com/bugs/', u'http://www.example.com/bugtracker/'] |
620 | - bug_tracker_type: u'Bugzilla' |
621 | - contact_details: u'bob@example.com' |
622 | + bug_tracker_type: 'Bugzilla' |
623 | + contact_details: 'bob@example.com' |
624 | has_lp_plugin: None |
625 | - name: u'bob' |
626 | - registrant_link: u'http://.../~name12' |
627 | - resource_type_link: u'http://.../#bug_tracker' |
628 | - self_link: u'http://.../bugs/bugtrackers/bob' |
629 | - summary: u'Where Bob files his bugs.' |
630 | - title: u"Bob's Tracker" |
631 | - watches_collection_link: u'http://.../bugs/bugtrackers/bob/watches' |
632 | - web_link: u'http://bugs.../bugs/bugtrackers/bob' |
633 | + name: 'bob' |
634 | + registrant_link: 'http://.../~name12' |
635 | + resource_type_link: 'http://.../#bug_tracker' |
636 | + self_link: 'http://.../bugs/bugtrackers/bob' |
637 | + summary: 'Where Bob files his bugs.' |
638 | + title: "Bob's Tracker" |
639 | + watches_collection_link: 'http://.../bugs/bugtrackers/bob/watches' |
640 | + web_link: 'http://bugs.../bugs/bugtrackers/bob' |
641 | |
642 | Non-admins can't disable a bugtracker through the API. |
643 | |
644 | @@ -1237,7 +1237,7 @@ Bug 1 has no attachments: |
645 | >>> attachments = webservice.get( |
646 | ... bug_one['attachments_collection_link']).jsonBody() |
647 | >>> pprint_collection(attachments) |
648 | - resource_type_link: u'http://.../#bug_attachment-page-resource' |
649 | + resource_type_link: 'http://.../#bug_attachment-page-resource' |
650 | start: 0 |
651 | total_size: 0 |
652 | --- |
653 | @@ -1260,32 +1260,32 @@ Now, bug 1 has one attachment: |
654 | >>> attachments = webservice.get( |
655 | ... bug_one['attachments_collection_link']).jsonBody() |
656 | >>> pprint_collection(attachments) |
657 | - resource_type_link: u'http://.../#bug_attachment-page-resource' |
658 | + resource_type_link: 'http://.../#bug_attachment-page-resource' |
659 | start: 0 |
660 | total_size: 1 |
661 | --- |
662 | - bug_link: u'http://.../bugs/1' |
663 | - data_link: u'http://.../bugs/1/+attachment/.../data' |
664 | - message_link: u'http://.../firefox/+bug/1/comments/2' |
665 | - resource_type_link: u'http://.../#bug_attachment' |
666 | - self_link: u'http://.../bugs/1/+attachment/...' |
667 | - title: u'numbers.txt' |
668 | - type: u'Unspecified' |
669 | - web_link: u'http://bugs.../bugs/1/+attachment/...' |
670 | + bug_link: 'http://.../bugs/1' |
671 | + data_link: 'http://.../bugs/1/+attachment/.../data' |
672 | + message_link: 'http://.../firefox/+bug/1/comments/2' |
673 | + resource_type_link: 'http://.../#bug_attachment' |
674 | + self_link: 'http://.../bugs/1/+attachment/...' |
675 | + title: 'numbers.txt' |
676 | + type: 'Unspecified' |
677 | + web_link: 'http://bugs.../bugs/1/+attachment/...' |
678 | --- |
679 | |
680 | The attachment can be fetched directly: |
681 | |
682 | >>> [attachment] = attachments['entries'] |
683 | >>> pprint_entry(webservice.get(attachment['self_link']).jsonBody()) |
684 | - bug_link: u'http://.../bugs/1' |
685 | - data_link: u'http://.../bugs/1/+attachment/.../data' |
686 | - message_link: u'http://.../firefox/+bug/1/comments/2' |
687 | - resource_type_link: u'http://.../#bug_attachment' |
688 | - self_link: u'http://.../bugs/1/+attachment/...' |
689 | - title: u'numbers.txt' |
690 | - type: u'Unspecified' |
691 | - web_link: u'http://bugs.../bugs/1/+attachment/...' |
692 | + bug_link: 'http://.../bugs/1' |
693 | + data_link: 'http://.../bugs/1/+attachment/.../data' |
694 | + message_link: 'http://.../firefox/+bug/1/comments/2' |
695 | + resource_type_link: 'http://.../#bug_attachment' |
696 | + self_link: 'http://.../bugs/1/+attachment/...' |
697 | + title: 'numbers.txt' |
698 | + type: 'Unspecified' |
699 | + web_link: 'http://bugs.../bugs/1/+attachment/...' |
700 | |
701 | Fetching the data actually yields a redirect to the Librarian, which |
702 | we must follow to download the data. |
703 | @@ -1322,15 +1322,15 @@ attachment. This is where our comment is recorded. |
704 | |
705 | >>> message = webservice.get(attachment['message_link']).jsonBody() |
706 | >>> pprint_entry(message) |
707 | - bug_attachments_collection_link: u'http://.../firefox/+bug/1/comments/2/bug_attachments' |
708 | - content: u'The numbers you asked for.' |
709 | - date_created: u'...' |
710 | - owner_link: u'http://.../~salgado' |
711 | + bug_attachments_collection_link: 'http://.../firefox/+bug/1/comments/2/bug_attachments' |
712 | + content: 'The numbers you asked for.' |
713 | + date_created: '...' |
714 | + owner_link: 'http://.../~salgado' |
715 | parent_link: None |
716 | - resource_type_link: u'http://.../#message' |
717 | - self_link: u'http://.../firefox/+bug/1/comments/2' |
718 | - subject: u'Re: Firefox does not support SVG' |
719 | - web_link: u'http://bugs.../firefox/+bug/1/comments/2' |
720 | + resource_type_link: 'http://.../#message' |
721 | + self_link: 'http://.../firefox/+bug/1/comments/2' |
722 | + subject: 'Re: Firefox does not support SVG' |
723 | + web_link: 'http://bugs.../firefox/+bug/1/comments/2' |
724 | |
725 | The message also links back to the attachments that were uploaded at |
726 | the same time. |
727 | @@ -1338,7 +1338,7 @@ the same time. |
728 | >>> attachments = webservice.get( |
729 | ... message['bug_attachments_collection_link']).jsonBody() |
730 | >>> pprint_collection(attachments) |
731 | - resource_type_link: u'http://.../#bug_attachment-page-resource' |
732 | + resource_type_link: 'http://.../#bug_attachment-page-resource' |
733 | start: 0 |
734 | total_size: 1 |
735 | ... |
736 | @@ -1373,7 +1373,7 @@ But we can remove the attachment altogether. |
737 | >>> attachments = webservice.get( |
738 | ... bug_one['attachments_collection_link']).jsonBody() |
739 | >>> pprint_collection(attachments) |
740 | - resource_type_link: u'http://api.launchpad.test/beta/#bug_attachment-page-resource' |
741 | + resource_type_link: 'http://api.launchpad.test/beta/#bug_attachment-page-resource' |
742 | start: 0 |
743 | total_size: 0 |
744 | --- |
745 | @@ -1394,15 +1394,15 @@ bug tasks for the target. |
746 | total_size: 5 |
747 | --- |
748 | ... |
749 | - target_link: u'http://api.launchpad.test/beta/firefox' |
750 | + target_link: 'http://api.launchpad.test/beta/firefox' |
751 | ... |
752 | - target_link: u'http://api.launchpad.test/beta/firefox' |
753 | + target_link: 'http://api.launchpad.test/beta/firefox' |
754 | ... |
755 | - target_link: u'http://api.launchpad.test/beta/firefox' |
756 | + target_link: 'http://api.launchpad.test/beta/firefox' |
757 | ... |
758 | - target_link: u'http://api.launchpad.test/beta/firefox' |
759 | + target_link: 'http://api.launchpad.test/beta/firefox' |
760 | ... |
761 | - target_link: u'http://api.launchpad.test/beta/firefox' |
762 | + target_link: 'http://api.launchpad.test/beta/firefox' |
763 | ... |
764 | |
765 | Some parameters accept lists of values, just like when searching from |
766 | @@ -1416,15 +1416,15 @@ accept many values and return only tasks with these values. |
767 | total_size: 2 |
768 | --- |
769 | ... |
770 | - importance: u'Critical' |
771 | + importance: 'Critical' |
772 | ... |
773 | - self_link: u'http://api.launchpad.test/beta/firefox/+bug/5' |
774 | + self_link: 'http://api.launchpad.test/beta/firefox/+bug/5' |
775 | ... |
776 | --- |
777 | ... |
778 | - importance: u'Low' |
779 | + importance: 'Low' |
780 | ... |
781 | - self_link: u'http://api.launchpad.test/beta/firefox/+bug/1' |
782 | + self_link: 'http://api.launchpad.test/beta/firefox/+bug/1' |
783 | ... |
784 | |
785 | The tags parameter also accepts a list of values. By default, it |
786 | @@ -1437,21 +1437,21 @@ searches for bugs with any of the given tags. |
787 | total_size: 3 |
788 | --- |
789 | ... |
790 | - bug_link: u'http://.../bugs/9' |
791 | + bug_link: 'http://.../bugs/9' |
792 | ... |
793 | - self_link: u'http://.../ubuntu/+source/thunderbird/+bug/9' |
794 | + self_link: 'http://.../ubuntu/+source/thunderbird/+bug/9' |
795 | ... |
796 | --- |
797 | ... |
798 | - bug_link: u'http://.../bugs/10' |
799 | + bug_link: 'http://.../bugs/10' |
800 | ... |
801 | - self_link: u'http://.../ubuntu/+source/linux-source-2.6.15/+bug/10' |
802 | + self_link: 'http://.../ubuntu/+source/linux-source-2.6.15/+bug/10' |
803 | ... |
804 | --- |
805 | ... |
806 | - bug_link: u'http://.../bugs/2' |
807 | + bug_link: 'http://.../bugs/2' |
808 | ... |
809 | - self_link: u'http://.../ubuntu/+bug/2' |
810 | + self_link: 'http://.../ubuntu/+bug/2' |
811 | ... |
812 | |
813 | It can be used for searching for bugs with all of the given tags by |
814 | @@ -1587,11 +1587,11 @@ bugs: |
815 | total_size: 2 |
816 | --- |
817 | ... |
818 | - owner_link: u'http://api.launchpad.test/beta/~testuser1' |
819 | + owner_link: 'http://api.launchpad.test/beta/~testuser1' |
820 | ... |
821 | --- |
822 | ... |
823 | - owner_link: u'http://api.launchpad.test/beta/~testuser1' |
824 | + owner_link: 'http://api.launchpad.test/beta/~testuser1' |
825 | ... |
826 | |
827 | `testuser2` is subscribed to `testbug2`, so this bug is related to this |
828 | @@ -1667,11 +1667,11 @@ It is possible to mark a bug as affecting the user using the web service. |
829 | >>> pprint_collection(webservice.get(webservice.get( |
830 | ... bug_one['self_link']).jsonBody()[ |
831 | ... 'users_affected_collection_link']).jsonBody()) |
832 | - resource_type_link: u'http://api.launchpad.test/beta/#person-page-resource' |
833 | + resource_type_link: 'http://api.launchpad.test/beta/#person-page-resource' |
834 | start: 0 |
835 | total_size: 1 |
836 | ... |
837 | - self_link: u'http://api.launchpad.test/beta/~salgado' |
838 | + self_link: 'http://api.launchpad.test/beta/~salgado' |
839 | ... |
840 | |
841 | >>> webservice.named_post( |
842 | @@ -1691,38 +1691,38 @@ The collection of all CVEs is available at the top level. |
843 | |
844 | >>> cves = webservice.get("/bugs/cve").jsonBody() |
845 | >>> pprint_collection(cves) |
846 | - next_collection_link: u'http://.../bugs/cve?ws.size=5&memo=5&ws.start=5' |
847 | - resource_type_link: u'http://.../#cves' |
848 | + next_collection_link: 'http://.../bugs/cve?ws.size=5&memo=5&ws.start=5' |
849 | + resource_type_link: 'http://.../#cves' |
850 | start: 0 |
851 | total_size: 10 |
852 | --- |
853 | - bugs_collection_link: u'http://.../bugs/cve/2005-2737/bugs' |
854 | - date_created: u'2005-09-13T14:05:17.043865+00:00' |
855 | - date_modified: u'2005-09-13T14:05:17.043865+00:00' |
856 | - description: u'Cross-site scripting (XSS) vulnerability...' |
857 | - display_name: u'CVE-2005-2737' |
858 | - resource_type_link: u'http://.../#cve' |
859 | - self_link: u'http://.../bugs/cve/2005-2737' |
860 | - sequence: u'2005-2737' |
861 | - status: u'Candidate' |
862 | - title: u'CVE-2005-2737 (Candidate)' |
863 | - url: u'https://cve.mitre.org/cgi-bin/cvename.cgi?name=2005-2737' |
864 | - web_link: u'http://bugs.launchpad.test/bugs/cve/2005-2737' |
865 | + bugs_collection_link: 'http://.../bugs/cve/2005-2737/bugs' |
866 | + date_created: '2005-09-13T14:05:17.043865+00:00' |
867 | + date_modified: '2005-09-13T14:05:17.043865+00:00' |
868 | + description: 'Cross-site scripting (XSS) vulnerability...' |
869 | + display_name: 'CVE-2005-2737' |
870 | + resource_type_link: 'http://.../#cve' |
871 | + self_link: 'http://.../bugs/cve/2005-2737' |
872 | + sequence: '2005-2737' |
873 | + status: 'Candidate' |
874 | + title: 'CVE-2005-2737 (Candidate)' |
875 | + url: 'https://cve.mitre.org/cgi-bin/cvename.cgi?name=2005-2737' |
876 | + web_link: 'http://bugs.launchpad.test/bugs/cve/2005-2737' |
877 | --- |
878 | ... |
879 | - self_link: u'http://.../bugs/cve/2005-2736' |
880 | + self_link: 'http://.../bugs/cve/2005-2736' |
881 | ... |
882 | --- |
883 | ... |
884 | - self_link: u'http://.../bugs/cve/2005-2735' |
885 | + self_link: 'http://.../bugs/cve/2005-2735' |
886 | ... |
887 | --- |
888 | ... |
889 | - self_link: u'http://.../bugs/cve/2005-2734' |
890 | + self_link: 'http://.../bugs/cve/2005-2734' |
891 | ... |
892 | --- |
893 | ... |
894 | - self_link: u'http://.../bugs/cve/2005-2733' |
895 | + self_link: 'http://.../bugs/cve/2005-2733' |
896 | ... |
897 | |
898 | And for every bug we can look at the CVEs linked to it. |
899 | @@ -1730,22 +1730,22 @@ And for every bug we can look at the CVEs linked to it. |
900 | >>> bug_one_cves_url = bug_one['cves_collection_link'] |
901 | >>> bug_one_cves = webservice.get(bug_one_cves_url).jsonBody() |
902 | >>> pprint_collection(bug_one_cves) |
903 | - resource_type_link: u'http://.../#cve-page-resource' |
904 | + resource_type_link: 'http://.../#cve-page-resource' |
905 | start: 0 |
906 | total_size: 1 |
907 | --- |
908 | - bugs_collection_link: u'http://.../bugs/cve/1999-8979/bugs' |
909 | - date_created: u'2005-09-07T19:00:32.944561+00:00' |
910 | - date_modified: u'2005-09-13T14:00:03.508959+00:00' |
911 | - description: u'Firefox crashes all the time' |
912 | - display_name: u'CVE-1999-8979' |
913 | - resource_type_link: u'http://.../#cve' |
914 | - self_link: u'http://.../bugs/cve/1999-8979' |
915 | - sequence: u'1999-8979' |
916 | - status: u'Entry' |
917 | - title: u'CVE-1999-8979 (Entry)' |
918 | - url: u'https://cve.mitre.org/cgi-bin/cvename.cgi?name=1999-8979' |
919 | - web_link: u'http://bugs.launchpad.test/bugs/cve/1999-8979' |
920 | + bugs_collection_link: 'http://.../bugs/cve/1999-8979/bugs' |
921 | + date_created: '2005-09-07T19:00:32.944561+00:00' |
922 | + date_modified: '2005-09-13T14:00:03.508959+00:00' |
923 | + description: 'Firefox crashes all the time' |
924 | + display_name: 'CVE-1999-8979' |
925 | + resource_type_link: 'http://.../#cve' |
926 | + self_link: 'http://.../bugs/cve/1999-8979' |
927 | + sequence: '1999-8979' |
928 | + status: 'Entry' |
929 | + title: 'CVE-1999-8979 (Entry)' |
930 | + url: 'https://cve.mitre.org/cgi-bin/cvename.cgi?name=1999-8979' |
931 | + web_link: 'http://bugs.launchpad.test/bugs/cve/1999-8979' |
932 | --- |
933 | |
934 | For every CVE we can also look at the bugs linked to it. |
935 | @@ -1764,7 +1764,7 @@ Unlink CVEs from that bug. |
936 | ... cve='http://api.launchpad.test/beta/bugs/cve/1999-8979')) |
937 | HTTP/1.1 200 Ok... |
938 | >>> pprint_collection(webservice.get(bug_one_cves_url).jsonBody()) |
939 | - resource_type_link: u'http://.../#cve-page-resource' |
940 | + resource_type_link: 'http://.../#cve-page-resource' |
941 | start: 0 |
942 | total_size: 0 |
943 | --- |
944 | @@ -1776,19 +1776,19 @@ And link new CVEs to the bug. |
945 | ... cve='http://api.launchpad.test/beta/bugs/cve/2005-2733')) |
946 | HTTP/1.1 200 Ok... |
947 | >>> pprint_collection(webservice.get(bug_one_cves_url).jsonBody()) |
948 | - resource_type_link: u'http://.../#cve-page-resource' |
949 | + resource_type_link: 'http://.../#cve-page-resource' |
950 | start: 0 |
951 | total_size: 1 |
952 | --- |
953 | ... |
954 | - self_link: u'http://.../bugs/cve/2005-2733' |
955 | + self_link: 'http://.../bugs/cve/2005-2733' |
956 | ... |
957 | |
958 | Add a new task to the bug. |
959 | |
960 | >>> bugtasks_url = bug_one['bug_tasks_collection_link'] |
961 | >>> pprint_collection(webservice.get(bugtasks_url).jsonBody()) |
962 | - resource_type_link: u'http://.../#bug_task-page-resource' |
963 | + resource_type_link: 'http://.../#bug_task-page-resource' |
964 | start: 0 |
965 | total_size: 3 |
966 | ... |
967 | @@ -1801,7 +1801,7 @@ Add a new task to the bug. |
968 | |
969 | >>> bugtasks_url = bug_one['bug_tasks_collection_link'] |
970 | >>> pprint_collection(webservice.get(bugtasks_url).jsonBody()) |
971 | - resource_type_link: u'http://.../#bug_task-page-resource' |
972 | + resource_type_link: 'http://.../#bug_task-page-resource' |
973 | start: 0 |
974 | total_size: 4 |
975 | ... |
976 | @@ -1816,19 +1816,19 @@ For every bug we can look at the branches linked to it. |
977 | >>> bug_four_branches_url = bug_four['linked_branches_collection_link'] |
978 | >>> bug_four_branches = webservice.get(bug_four_branches_url).jsonBody() |
979 | >>> pprint_collection(bug_four_branches) |
980 | - resource_type_link: u'http://.../#bug_branch-page-resource' |
981 | + resource_type_link: 'http://.../#bug_branch-page-resource' |
982 | start: 0 |
983 | total_size: 2 |
984 | --- |
985 | - branch_link: u'http://.../~mark/firefox/release-0.9.2' |
986 | - bug_link: u'http://.../bugs/4' |
987 | - resource_type_link: u'http://.../#bug_branch' |
988 | - self_link: u'http://.../~mark/firefox/release-0.9.2/+bug/4' |
989 | + branch_link: 'http://.../~mark/firefox/release-0.9.2' |
990 | + bug_link: 'http://.../bugs/4' |
991 | + resource_type_link: 'http://.../#bug_branch' |
992 | + self_link: 'http://.../~mark/firefox/release-0.9.2/+bug/4' |
993 | --- |
994 | - branch_link: u'http://.../~name12/firefox/main' |
995 | - bug_link: u'http://.../bugs/4' |
996 | - resource_type_link: u'http://.../beta/#bug_branch' |
997 | - self_link: u'http://.../~name12/firefox/main/+bug/4' |
998 | + branch_link: 'http://.../~name12/firefox/main' |
999 | + bug_link: 'http://.../bugs/4' |
1000 | + resource_type_link: 'http://.../beta/#bug_branch' |
1001 | + self_link: 'http://.../~name12/firefox/main/+bug/4' |
1002 | --- |
1003 | |
1004 | For every branch we can also look at the bugs linked to it. |
1005 | @@ -1892,23 +1892,23 @@ Each bug has a collection of activities that have taken place with it. |
1006 | >>> activity = anon_webservice.get( |
1007 | ... bug_one['activity_collection_link']).jsonBody() |
1008 | >>> pprint_collection(activity) |
1009 | - next_collection_link: u'http://.../bugs/1/activity?ws.size=5&memo=5&ws.start=5' |
1010 | - resource_type_link: u'http://.../#bug_activity-page-resource' |
1011 | + next_collection_link: 'http://.../bugs/1/activity?ws.size=5&memo=5&ws.start=5' |
1012 | + resource_type_link: 'http://.../#bug_activity-page-resource' |
1013 | start: 0 |
1014 | total_size: 24 |
1015 | ... |
1016 | - message: u"Decided problem wasn't silly after all" |
1017 | + message: "Decided problem wasn't silly after all" |
1018 | ... |
1019 | |
1020 | >>> bug_nine_activity = webservice.get( |
1021 | ... "/bugs/9/activity").jsonBody() |
1022 | >>> pprint_entry(bug_nine_activity['entries'][1]) |
1023 | - bug_link: u'http://.../bugs/9' |
1024 | - datechanged: u'2006-02-23T16:42:40.288553+00:00' |
1025 | + bug_link: 'http://.../bugs/9' |
1026 | + datechanged: '2006-02-23T16:42:40.288553+00:00' |
1027 | message: None |
1028 | - newvalue: u'Confirmed' |
1029 | - oldvalue: u'Unconfirmed' |
1030 | - person_link: u'http://.../~name12' |
1031 | - resource_type_link: u'http://.../#bug_activity' |
1032 | - self_link: u'http://.../bugs/9/activity' |
1033 | - whatchanged: u'thunderbird: status' |
1034 | + newvalue: 'Confirmed' |
1035 | + oldvalue: 'Unconfirmed' |
1036 | + person_link: 'http://.../~name12' |
1037 | + resource_type_link: 'http://.../#bug_activity' |
1038 | + self_link: 'http://.../bugs/9/activity' |
1039 | + whatchanged: 'thunderbird: status' |
1040 | diff --git a/lib/lp/code/stories/webservice/xx-branch-links.txt b/lib/lp/code/stories/webservice/xx-branch-links.txt |
1041 | index abbd9a0..81a5a15 100644 |
1042 | --- a/lib/lp/code/stories/webservice/xx-branch-links.txt |
1043 | +++ b/lib/lp/code/stories/webservice/xx-branch-links.txt |
1044 | @@ -59,11 +59,11 @@ A spec can be linked to a branch through the API. |
1045 | ... robots['spec_links_collection_link']).jsonBody() |
1046 | >>> spec_link = spec_links['entries'][0] |
1047 | >>> pprint_entry(spec_link) |
1048 | - branch_link: u'http://.../~prime/cybertron/robots' |
1049 | - registrant_link: u'http://.../~salgado' |
1050 | - resource_type_link: u'http://.../#specification_branch' |
1051 | - self_link: u'http://.../product-name.../+spec/name.../+branch/prime/cybertron/robots' |
1052 | - specification_link: u'http://.../product-name.../+spec/name...' |
1053 | + branch_link: 'http://.../~prime/cybertron/robots' |
1054 | + registrant_link: 'http://.../~salgado' |
1055 | + resource_type_link: 'http://.../#specification_branch' |
1056 | + self_link: 'http://.../product-name.../+spec/name.../+branch/prime/cybertron/robots' |
1057 | + specification_link: 'http://.../product-name.../+spec/name...' |
1058 | |
1059 | |
1060 | If it turns out that the branch has no connection with the spec, it can be |
1061 | diff --git a/lib/lp/code/stories/webservice/xx-branch.txt b/lib/lp/code/stories/webservice/xx-branch.txt |
1062 | index 18c3ea0..299b9ad 100644 |
1063 | --- a/lib/lp/code/stories/webservice/xx-branch.txt |
1064 | +++ b/lib/lp/code/stories/webservice/xx-branch.txt |
1065 | @@ -106,45 +106,45 @@ time goes on. |
1066 | >>> from lazr.restful.testing.webservice import pprint_entry |
1067 | >>> pprint_entry(fooix_trunk) |
1068 | branch_format: None |
1069 | - branch_type: u'Hosted' |
1070 | - bzr_identity: u'lp://dev/~eric/fooix/trunk' |
1071 | + branch_type: 'Hosted' |
1072 | + bzr_identity: 'lp://dev/~eric/fooix/trunk' |
1073 | code_import_link: None |
1074 | control_format: None |
1075 | - date_created: u'2009-01-01T00:00:00+00:00' |
1076 | - date_last_modified: u'2009-01-01T00:00:00+00:00' |
1077 | - dependent_branches_collection_link: u'.../~eric/fooix/trunk/dependent_branches' |
1078 | + date_created: '2009-01-01T00:00:00+00:00' |
1079 | + date_last_modified: '2009-01-01T00:00:00+00:00' |
1080 | + dependent_branches_collection_link: '.../~eric/fooix/trunk/dependent_branches' |
1081 | description: None |
1082 | - display_name: u'lp://dev/~eric/fooix/trunk' |
1083 | + display_name: 'lp://dev/~eric/fooix/trunk' |
1084 | explicitly_private: False |
1085 | - information_type: u'Public' |
1086 | - landing_candidates_collection_link: u'.../~eric/fooix/trunk/landing_candidates' |
1087 | - landing_targets_collection_link: u'.../~eric/fooix/trunk/landing_targets' |
1088 | + information_type: 'Public' |
1089 | + landing_candidates_collection_link: '.../~eric/fooix/trunk/landing_candidates' |
1090 | + landing_targets_collection_link: '.../~eric/fooix/trunk/landing_targets' |
1091 | last_mirror_attempt: None |
1092 | last_mirrored: None |
1093 | last_scanned: None |
1094 | last_scanned_id: None |
1095 | - lifecycle_status: u'Development' |
1096 | - linked_bugs_collection_link: u'http://.../~eric/fooix/trunk/linked_bugs' |
1097 | + lifecycle_status: 'Development' |
1098 | + linked_bugs_collection_link: 'http://.../~eric/fooix/trunk/linked_bugs' |
1099 | mirror_status_message: None |
1100 | - name: u'trunk' |
1101 | - owner_link: u'.../~eric' |
1102 | + name: 'trunk' |
1103 | + owner_link: '.../~eric' |
1104 | private: False |
1105 | - project_link: u'.../fooix' |
1106 | - recipes_collection_link: u'http://.../~eric/fooix/trunk/recipes' |
1107 | - registrant_link: u'.../~eric' |
1108 | + project_link: '.../fooix' |
1109 | + recipes_collection_link: 'http://.../~eric/fooix/trunk/recipes' |
1110 | + registrant_link: '.../~eric' |
1111 | repository_format: None |
1112 | - resource_type_link: u'.../#branch' |
1113 | + resource_type_link: '.../#branch' |
1114 | reviewer_link: None |
1115 | revision_count: 0 |
1116 | - self_link: u'.../~eric/fooix/trunk' |
1117 | + self_link: '.../~eric/fooix/trunk' |
1118 | sourcepackage_link: None |
1119 | - spec_links_collection_link: u'.../~eric/fooix/trunk/spec_links' |
1120 | - subscribers_collection_link: u'http://.../~eric/fooix/trunk/subscribers' |
1121 | - subscriptions_collection_link: u'http://.../~eric/fooix/trunk/subscriptions' |
1122 | - unique_name: u'~eric/fooix/trunk' |
1123 | + spec_links_collection_link: '.../~eric/fooix/trunk/spec_links' |
1124 | + subscribers_collection_link: 'http://.../~eric/fooix/trunk/subscribers' |
1125 | + subscriptions_collection_link: 'http://.../~eric/fooix/trunk/subscriptions' |
1126 | + unique_name: '~eric/fooix/trunk' |
1127 | url: None |
1128 | - web_link: u'http://code.../~eric/fooix/trunk' |
1129 | - webhooks_collection_link: u'http://.../~eric/fooix/trunk/webhooks' |
1130 | + web_link: 'http://code.../~eric/fooix/trunk' |
1131 | + webhooks_collection_link: 'http://.../~eric/fooix/trunk/webhooks' |
1132 | whiteboard: None |
1133 | |
1134 | There is a branch merge proposal with Fooix trunk as the target branch, so it |
1135 | diff --git a/lib/lp/code/stories/webservice/xx-branchmergeproposal.txt b/lib/lp/code/stories/webservice/xx-branchmergeproposal.txt |
1136 | index 98483a4..32f0373 100644 |
1137 | --- a/lib/lp/code/stories/webservice/xx-branchmergeproposal.txt |
1138 | +++ b/lib/lp/code/stories/webservice/xx-branchmergeproposal.txt |
1139 | @@ -44,44 +44,44 @@ Branch merge proposals can be created through the API. |
1140 | >>> bmp_url = bmp_result.getHeader('Location') |
1141 | >>> bmp = registrant_webservice.get(bmp_url).jsonBody() |
1142 | >>> pprint_entry(bmp) |
1143 | - address: u'mp+...@code.launchpad.test' |
1144 | + address: 'mp+...@code.launchpad.test' |
1145 | all_comments_collection_link: |
1146 | - u'http://api.launchpad.test/devel/~.../+merge/.../all_comments' |
1147 | + 'http://api.launchpad.test/devel/~.../+merge/.../all_comments' |
1148 | bugs_collection_link: |
1149 | - u'http://api.launchpad.test/devel/~.../+merge/.../bugs' |
1150 | - commit_message: u'It was merged!\n' |
1151 | - date_created: u'...' |
1152 | + 'http://api.launchpad.test/devel/~.../+merge/.../bugs' |
1153 | + commit_message: 'It was merged!\n' |
1154 | + date_created: '...' |
1155 | date_merged: None |
1156 | - date_review_requested: u'...' |
1157 | + date_review_requested: '...' |
1158 | date_reviewed: None |
1159 | - description: u'Merge\nit!' |
1160 | + description: 'Merge\nit!' |
1161 | merge_reporter_link: None |
1162 | merged_revision_id: None |
1163 | merged_revno: None |
1164 | - prerequisite_branch_link: u'http://api.launchpad.test/devel/~...' |
1165 | + prerequisite_branch_link: 'http://api.launchpad.test/devel/~...' |
1166 | prerequisite_git_path: None |
1167 | prerequisite_git_repository_link: None |
1168 | preview_diff_link: None |
1169 | - preview_diffs_collection_link: u'http://.../preview_diffs' |
1170 | + preview_diffs_collection_link: 'http://.../preview_diffs' |
1171 | private: False |
1172 | - queue_status: u'Needs review' |
1173 | - registrant_link: u'http://api.launchpad.test/devel/~person-name...' |
1174 | + queue_status: 'Needs review' |
1175 | + registrant_link: 'http://api.launchpad.test/devel/~person-name...' |
1176 | resource_type_link: |
1177 | - u'http://api.launchpad.test/devel/#branch_merge_proposal' |
1178 | + 'http://api.launchpad.test/devel/#branch_merge_proposal' |
1179 | reviewed_revid: None |
1180 | reviewer_link: None |
1181 | - self_link: u'http://api.launchpad.test/devel/~.../+merge/...' |
1182 | - source_branch_link: u'http://api.launchpad.test/devel/~...' |
1183 | + self_link: 'http://api.launchpad.test/devel/~.../+merge/...' |
1184 | + source_branch_link: 'http://api.launchpad.test/devel/~...' |
1185 | source_git_path: None |
1186 | source_git_repository_link: None |
1187 | superseded_by_link: None |
1188 | supersedes_link: None |
1189 | - target_branch_link: u'http://api.launchpad.test/devel/~...' |
1190 | + target_branch_link: 'http://api.launchpad.test/devel/~...' |
1191 | target_git_path: None |
1192 | target_git_repository_link: None |
1193 | votes_collection_link: |
1194 | - u'http://api.launchpad.test/devel/~.../+merge/.../votes' |
1195 | - web_link: u'http://code.../~.../+merge/...' |
1196 | + 'http://api.launchpad.test/devel/~.../+merge/.../votes' |
1197 | + web_link: 'http://code.../~.../+merge/...' |
1198 | |
1199 | If we try and create the merge proposal again, we should get a ValueError. |
1200 | |
1201 | @@ -101,15 +101,15 @@ Our review request is listed in the votes collection. |
1202 | >>> votes = webservice.get( |
1203 | ... bmp['votes_collection_link']).jsonBody() |
1204 | >>> pprint_entry(votes['entries'][0]) |
1205 | - branch_merge_proposal_link: u'http://api.launchpad.test/devel/~.../+merge/...' |
1206 | + branch_merge_proposal_link: 'http://api.launchpad.test/devel/~.../+merge/...' |
1207 | comment_link: None |
1208 | - date_created: u'...' |
1209 | + date_created: '...' |
1210 | is_pending: True |
1211 | - registrant_link: u'http://api.launchpad.test/devel/~person-name...' |
1212 | - resource_type_link: u'http://api.launchpad.test/devel/#code_review_vote_reference' |
1213 | - review_type: u'green' |
1214 | - reviewer_link: u'http://api.launchpad.test/devel/~person-name...' |
1215 | - self_link: u'http://api.launchpad.test/devel/~...' |
1216 | + registrant_link: 'http://api.launchpad.test/devel/~person-name...' |
1217 | + resource_type_link: 'http://api.launchpad.test/devel/#code_review_vote_reference' |
1218 | + review_type: 'green' |
1219 | + reviewer_link: 'http://api.launchpad.test/devel/~person-name...' |
1220 | + self_link: 'http://api.launchpad.test/devel/~...' |
1221 | |
1222 | == Get an existing merge proposal == |
1223 | |
1224 | @@ -149,10 +149,10 @@ We use the webservice as an unrelated, unprivileged user. |
1225 | |
1226 | >>> merge_proposal = webservice.get(proposal_url).jsonBody() |
1227 | >>> pprint_entry(merge_proposal) |
1228 | - address: u'mp+...@code.launchpad.test' |
1229 | + address: 'mp+...@code.launchpad.test' |
1230 | all_comments_collection_link: |
1231 | - u'http://.../~source/fooix/fix-it/+merge/.../all_comments' |
1232 | - bugs_collection_link: u'http://.../~source/fooix/fix-it/+merge/.../bugs' |
1233 | + 'http://.../~source/fooix/fix-it/+merge/.../all_comments' |
1234 | + bugs_collection_link: 'http://.../~source/fooix/fix-it/+merge/.../bugs' |
1235 | commit_message: None |
1236 | date_created: ... |
1237 | date_merged: None |
1238 | @@ -166,24 +166,24 @@ We use the webservice as an unrelated, unprivileged user. |
1239 | prerequisite_git_path: None |
1240 | prerequisite_git_repository_link: None |
1241 | preview_diff_link: None |
1242 | - preview_diffs_collection_link: u'http://.../preview_diffs' |
1243 | + preview_diffs_collection_link: 'http://.../preview_diffs' |
1244 | private: False |
1245 | - queue_status: u'Work in progress' |
1246 | - registrant_link: u'http://.../~person-name...' |
1247 | - resource_type_link: u'http://.../#branch_merge_proposal' |
1248 | + queue_status: 'Work in progress' |
1249 | + registrant_link: 'http://.../~person-name...' |
1250 | + resource_type_link: 'http://.../#branch_merge_proposal' |
1251 | reviewed_revid: None |
1252 | reviewer_link: None |
1253 | - self_link: u'http://.../~source/fooix/fix-it/+merge/...' |
1254 | - source_branch_link: u'http://.../~source/fooix/fix-it' |
1255 | + self_link: 'http://.../~source/fooix/fix-it/+merge/...' |
1256 | + source_branch_link: 'http://.../~source/fooix/fix-it' |
1257 | source_git_path: None |
1258 | source_git_repository_link: None |
1259 | superseded_by_link: None |
1260 | supersedes_link: None |
1261 | - target_branch_link: u'http://.../~target/fooix/trunk' |
1262 | + target_branch_link: 'http://.../~target/fooix/trunk' |
1263 | target_git_path: None |
1264 | target_git_repository_link: None |
1265 | - votes_collection_link: u'http://.../~source/fooix/fix-it/+merge/.../votes' |
1266 | - web_link: u'http://code.../~source/fooix/fix-it/+merge/...' |
1267 | + votes_collection_link: 'http://.../~source/fooix/fix-it/+merge/.../votes' |
1268 | + web_link: 'http://code.../~source/fooix/fix-it/+merge/...' |
1269 | |
1270 | |
1271 | == Read the comments == |
1272 | @@ -195,36 +195,36 @@ The comments on a branch merge proposal are exposed through the API. |
1273 | >>> print(len(all_comments['entries'])) |
1274 | 2 |
1275 | >>> pprint_entry(all_comments['entries'][0]) |
1276 | - as_quoted_email: u'> This is great work' |
1277 | - author_link: u'http://api.launchpad.test/devel/~...' |
1278 | - branch_merge_proposal_link: u'http://.../~source/fooix/fix-it/+merge/...' |
1279 | - date_created: u'...' |
1280 | + as_quoted_email: '> This is great work' |
1281 | + author_link: 'http://api.launchpad.test/devel/~...' |
1282 | + branch_merge_proposal_link: 'http://.../~source/fooix/fix-it/+merge/...' |
1283 | + date_created: '...' |
1284 | id: ... |
1285 | - message_body: u'This is great work' |
1286 | - resource_type_link: u'http://.../#code_review_comment' |
1287 | - self_link: u'http://.../~source/fooix/fix-it/+merge/.../comments/...' |
1288 | - title: u'Comment on proposed merge of lp://dev/~source/fooix/fix-it into lp://dev/~target/fooix/trunk' |
1289 | - vote: u'Approve' |
1290 | - vote_tag: u'code' |
1291 | - web_link: u'http://code.../~source/fooix/fix-it/+merge/.../comments/...' |
1292 | + message_body: 'This is great work' |
1293 | + resource_type_link: 'http://.../#code_review_comment' |
1294 | + self_link: 'http://.../~source/fooix/fix-it/+merge/.../comments/...' |
1295 | + title: 'Comment on proposed merge of lp://dev/~source/fooix/fix-it into lp://dev/~target/fooix/trunk' |
1296 | + vote: 'Approve' |
1297 | + vote_tag: 'code' |
1298 | + web_link: 'http://code.../~source/fooix/fix-it/+merge/.../comments/...' |
1299 | |
1300 | >>> comment_2_id = all_comments['entries'][1]['id'] |
1301 | >>> comment_2 = webservice.named_get( |
1302 | ... merge_proposal['self_link'], 'getComment', |
1303 | ... id=comment_2_id).jsonBody() |
1304 | >>> pprint_entry(comment_2) |
1305 | - as_quoted_email: u'> This is mediocre work.' |
1306 | - author_link: u'http://api.launchpad.test/devel/~...' |
1307 | - branch_merge_proposal_link: u'http://.../~source/fooix/fix-it/+merge/...' |
1308 | - date_created: u'...' |
1309 | + as_quoted_email: '> This is mediocre work.' |
1310 | + author_link: 'http://api.launchpad.test/devel/~...' |
1311 | + branch_merge_proposal_link: 'http://.../~source/fooix/fix-it/+merge/...' |
1312 | + date_created: '...' |
1313 | id: ... |
1314 | - message_body: u'This is mediocre work.' |
1315 | - resource_type_link: u'http://.../#code_review_comment' |
1316 | - self_link: u'http://.../~source/fooix/fix-it/+merge/.../comments/...' |
1317 | + message_body: 'This is mediocre work.' |
1318 | + resource_type_link: 'http://.../#code_review_comment' |
1319 | + self_link: 'http://.../~source/fooix/fix-it/+merge/.../comments/...' |
1320 | title: ... |
1321 | - vote: u'Abstain' |
1322 | + vote: 'Abstain' |
1323 | vote_tag: None |
1324 | - web_link: u'http://code.../~source/fooix/fix-it/+merge/.../comments/...' |
1325 | + web_link: 'http://code.../~source/fooix/fix-it/+merge/.../comments/...' |
1326 | |
1327 | |
1328 | == Check the votes == |
1329 | @@ -236,15 +236,15 @@ The votes on a branch merge proposal can be checked through the API. |
1330 | >>> print(len(votes)) |
1331 | 2 |
1332 | >>> pprint_entry(votes[0]) |
1333 | - branch_merge_proposal_link: u'http://.../~source/fooix/fix-it/+merge/...' |
1334 | - comment_link: u'http://.../~source/fooix/fix-it/+merge/.../comments/...' |
1335 | - date_created: u'...' |
1336 | + branch_merge_proposal_link: 'http://.../~source/fooix/fix-it/+merge/...' |
1337 | + comment_link: 'http://.../~source/fooix/fix-it/+merge/.../comments/...' |
1338 | + date_created: '...' |
1339 | is_pending: False |
1340 | - registrant_link: u'http://.../~person-name...' |
1341 | - resource_type_link: u'http://.../#code_review_vote_reference' |
1342 | - review_type: u'code' |
1343 | - reviewer_link: u'http://.../~person-name...' |
1344 | - self_link: u'http://.../~source/fooix/fix-it/+merge/.../+review/...' |
1345 | + registrant_link: 'http://.../~person-name...' |
1346 | + resource_type_link: 'http://.../#code_review_vote_reference' |
1347 | + review_type: 'code' |
1348 | + reviewer_link: 'http://.../~person-name...' |
1349 | + self_link: 'http://.../~source/fooix/fix-it/+merge/.../+review/...' |
1350 | |
1351 | |
1352 | == Performing a Review == |
1353 | @@ -264,15 +264,15 @@ A review can be requested of the person 'target'. |
1354 | HTTP/1.1 200 Ok ... |
1355 | >>> reviewer_entry = reviewer.jsonBody() |
1356 | >>> pprint_entry(reviewer_entry) |
1357 | - branch_merge_proposal_link: u'http://.../~source/fooix/fix-it/+merge/...' |
1358 | + branch_merge_proposal_link: 'http://.../~source/fooix/fix-it/+merge/...' |
1359 | comment_link: None |
1360 | - date_created: u'...' |
1361 | + date_created: '...' |
1362 | is_pending: True |
1363 | - registrant_link: u'http://.../~target' |
1364 | - resource_type_link: u'http://.../#code_review_vote_reference' |
1365 | - review_type: u'code' |
1366 | - reviewer_link: u'http://.../~target' |
1367 | - self_link: u'http://.../~source/fooix/fix-it/+merge/.../+review/...' |
1368 | + registrant_link: 'http://.../~target' |
1369 | + resource_type_link: 'http://.../#code_review_vote_reference' |
1370 | + review_type: 'code' |
1371 | + reviewer_link: 'http://.../~target' |
1372 | + self_link: 'http://.../~source/fooix/fix-it/+merge/.../+review/...' |
1373 | |
1374 | >>> vote = reviewer_webservice.get(reviewer_entry['self_link']) |
1375 | >>> print(vote) |
1376 | @@ -287,18 +287,18 @@ Now the code review should be made. |
1377 | >>> comment_link = comment_result.getHeader('Location') |
1378 | >>> comment = reviewer_webservice.get(comment_link).jsonBody() |
1379 | >>> pprint_entry(comment) |
1380 | - as_quoted_email: u'> This is great work' |
1381 | - author_link: u'http://api.launchpad.test/devel/~...' |
1382 | - branch_merge_proposal_link: u'http://.../~source/fooix/fix-it/+merge/...' |
1383 | - date_created: u'...' |
1384 | + as_quoted_email: '> This is great work' |
1385 | + author_link: 'http://api.launchpad.test/devel/~...' |
1386 | + branch_merge_proposal_link: 'http://.../~source/fooix/fix-it/+merge/...' |
1387 | + date_created: '...' |
1388 | id: ... |
1389 | - message_body: u'This is great work' |
1390 | - resource_type_link: u'http://.../#code_review_comment' |
1391 | - self_link: u'http://.../~source/fooix/fix-it/+merge/.../comments/...' |
1392 | + message_body: 'This is great work' |
1393 | + resource_type_link: 'http://.../#code_review_comment' |
1394 | + self_link: 'http://.../~source/fooix/fix-it/+merge/.../comments/...' |
1395 | title: ... |
1396 | - vote: u'Approve' |
1397 | - vote_tag: u'code' |
1398 | - web_link: u'http://code.../~source/fooix/fix-it/+merge/.../comments/...' |
1399 | + vote: 'Approve' |
1400 | + vote_tag: 'code' |
1401 | + web_link: 'http://code.../~source/fooix/fix-it/+merge/.../comments/...' |
1402 | |
1403 | In fact, now that the votes indicate approval, we might as well set the merge |
1404 | proposal status to "Approved" as well. |
1405 | diff --git a/lib/lp/code/stories/webservice/xx-branchsubscription.txt b/lib/lp/code/stories/webservice/xx-branchsubscription.txt |
1406 | index 1db3ba0..314a183 100644 |
1407 | --- a/lib/lp/code/stories/webservice/xx-branchsubscription.txt |
1408 | +++ b/lib/lp/code/stories/webservice/xx-branchsubscription.txt |
1409 | @@ -31,15 +31,15 @@ A user can subscribe to a branch through the API. |
1410 | |
1411 | >>> from lazr.restful.testing.webservice import pprint_entry |
1412 | >>> pprint_entry(subscription.jsonBody()) |
1413 | - branch_link: u'http://.../~farmer-bob/farm/corn' |
1414 | - max_diff_lines: u"Don't send diffs" |
1415 | - notification_level: u'Branch attribute notifications only' |
1416 | - person_link: u'http://.../~farmer-joe' |
1417 | - resource_type_link: u'http://.../#branch_subscription' |
1418 | - review_level: u'No email' |
1419 | - self_link: u'http://.../~farmer-bob/farm/corn/+subscription/farmer-joe' |
1420 | - subscribed_by_link: u'http://.../~salgado' |
1421 | - web_link: u'http://code.../~farmer-bob/farm/corn/+subscription/farmer-joe' |
1422 | + branch_link: 'http://.../~farmer-bob/farm/corn' |
1423 | + max_diff_lines: "Don't send diffs" |
1424 | + notification_level: 'Branch attribute notifications only' |
1425 | + person_link: 'http://.../~farmer-joe' |
1426 | + resource_type_link: 'http://.../#branch_subscription' |
1427 | + review_level: 'No email' |
1428 | + self_link: 'http://.../~farmer-bob/farm/corn/+subscription/farmer-joe' |
1429 | + subscribed_by_link: 'http://.../~salgado' |
1430 | + web_link: 'http://code.../~farmer-bob/farm/corn/+subscription/farmer-joe' |
1431 | |
1432 | >>> def print_subscriber_count(branch): |
1433 | ... subscribers = webservice.get( |
1434 | @@ -86,15 +86,15 @@ was originally subscribed. |
1435 | ... code_review_level=u'Status changes only') |
1436 | |
1437 | >>> pprint_entry(subscription.jsonBody()) |
1438 | - branch_link: u'http://.../~farmer-bob/farm/corn' |
1439 | - max_diff_lines: u'Send entire diff' |
1440 | - notification_level: u'No email' |
1441 | - person_link: u'http://.../~farmer-joe' |
1442 | - resource_type_link: u'http://.../#branch_subscription' |
1443 | - review_level: u'Status changes only' |
1444 | - self_link: u'http://.../~farmer-bob/farm/corn/+subscription/farmer-joe' |
1445 | - subscribed_by_link: u'http://.../~salgado' |
1446 | - web_link: u'http://code.../~farmer-bob/farm/corn/+subscription/farmer-joe' |
1447 | + branch_link: 'http://.../~farmer-bob/farm/corn' |
1448 | + max_diff_lines: 'Send entire diff' |
1449 | + notification_level: 'No email' |
1450 | + person_link: 'http://.../~farmer-joe' |
1451 | + resource_type_link: 'http://.../#branch_subscription' |
1452 | + review_level: 'Status changes only' |
1453 | + self_link: 'http://.../~farmer-bob/farm/corn/+subscription/farmer-joe' |
1454 | + subscribed_by_link: 'http://.../~salgado' |
1455 | + web_link: 'http://code.../~farmer-bob/farm/corn/+subscription/farmer-joe' |
1456 | |
1457 | |
1458 | We print the count, and even though subscribe was called again, there's still |
1459 | diff --git a/lib/lp/registry/stories/webservice/xx-distribution-mirror.txt b/lib/lp/registry/stories/webservice/xx-distribution-mirror.txt |
1460 | index 3e49ebe..2737490 100644 |
1461 | --- a/lib/lp/registry/stories/webservice/xx-distribution-mirror.txt |
1462 | +++ b/lib/lp/registry/stories/webservice/xx-distribution-mirror.txt |
1463 | @@ -12,28 +12,28 @@ mirrors: |
1464 | ... ubuntu['self_link'], 'getMirrorByName', |
1465 | ... name='canonical-archive').jsonBody() |
1466 | >>> pprint_entry(canonical_archive) |
1467 | - content: u'Archive' |
1468 | + content: 'Archive' |
1469 | country_dns_mirror: False |
1470 | - country_link: u'http://.../+countries/GB' |
1471 | - date_created: u'2006-10-16T18:31:43.434567+00:00' |
1472 | + country_link: 'http://.../+countries/GB' |
1473 | + date_created: '2006-10-16T18:31:43.434567+00:00' |
1474 | date_reviewed: None |
1475 | description: None |
1476 | displayname: None |
1477 | - distribution_link: u'http://.../ubuntu' |
1478 | + distribution_link: 'http://.../ubuntu' |
1479 | enabled: True |
1480 | ftp_base_url: None |
1481 | - http_base_url: u'http://archive.ubuntu.com/ubuntu/' |
1482 | + http_base_url: 'http://archive.ubuntu.com/ubuntu/' |
1483 | https_base_url: None |
1484 | - name: u'canonical-archive' |
1485 | + name: 'canonical-archive' |
1486 | official_candidate: True |
1487 | - owner_link: u'http://.../~mark' |
1488 | - resource_type_link: u'http://.../#distribution_mirror' |
1489 | + owner_link: 'http://.../~mark' |
1490 | + resource_type_link: 'http://.../#distribution_mirror' |
1491 | reviewer_link: None |
1492 | rsync_base_url: None |
1493 | - self_link: u'http://.../ubuntu/+mirror/canonical-archive' |
1494 | - speed: u'100 Mbps' |
1495 | - status: u'Official' |
1496 | - web_link: u'http://launchpad.../ubuntu/+mirror/canonical-archive' |
1497 | + self_link: 'http://.../ubuntu/+mirror/canonical-archive' |
1498 | + speed: '100 Mbps' |
1499 | + status: 'Official' |
1500 | + web_link: 'http://launchpad.../ubuntu/+mirror/canonical-archive' |
1501 | whiteboard: None |
1502 | |
1503 | And CD image mirrors: |
1504 | @@ -42,28 +42,28 @@ And CD image mirrors: |
1505 | >>> canonical_releases = ubuntu_cd_mirrors['entries'][0] |
1506 | >>> canonical_releases_json = webservice.get(canonical_releases['self_link']).jsonBody() |
1507 | >>> pprint_entry(canonical_releases_json) |
1508 | - content: u'CD Image' |
1509 | + content: 'CD Image' |
1510 | country_dns_mirror: False |
1511 | - country_link: u'http://.../+countries/GB' |
1512 | - date_created: u'2006-10-16T18:31:43.434567+00:00' |
1513 | + country_link: 'http://.../+countries/GB' |
1514 | + date_created: '2006-10-16T18:31:43.434567+00:00' |
1515 | date_reviewed: None |
1516 | description: None |
1517 | displayname: None |
1518 | - distribution_link: u'http://.../ubuntu' |
1519 | + distribution_link: 'http://.../ubuntu' |
1520 | enabled: True |
1521 | ftp_base_url: None |
1522 | - http_base_url: u'http://releases.ubuntu.com/' |
1523 | + http_base_url: 'http://releases.ubuntu.com/' |
1524 | https_base_url: None |
1525 | - name: u'canonical-releases' |
1526 | + name: 'canonical-releases' |
1527 | official_candidate: True |
1528 | - owner_link: u'http://.../~mark' |
1529 | - resource_type_link: u'http://.../#distribution_mirror' |
1530 | + owner_link: 'http://.../~mark' |
1531 | + resource_type_link: 'http://.../#distribution_mirror' |
1532 | reviewer_link: None |
1533 | rsync_base_url: None |
1534 | - self_link: u'http://.../ubuntu/+mirror/canonical-releases' |
1535 | - speed: u'100 Mbps' |
1536 | - status: u'Official' |
1537 | - web_link: u'http://launchpad.../ubuntu/+mirror/canonical-releases' |
1538 | + self_link: 'http://.../ubuntu/+mirror/canonical-releases' |
1539 | + speed: '100 Mbps' |
1540 | + status: 'Official' |
1541 | + web_link: 'http://launchpad.../ubuntu/+mirror/canonical-releases' |
1542 | whiteboard: None |
1543 | |
1544 | = Security checks = |
1545 | @@ -136,28 +136,28 @@ Mirror listing admins may see all: |
1546 | >>> response = karl_webservice.get( |
1547 | ... archive_404_mirror['self_link']).jsonBody() |
1548 | >>> pprint_entry(response) |
1549 | - content: u'Archive' |
1550 | + content: 'Archive' |
1551 | country_dns_mirror: False |
1552 | - country_link: u'http://.../+countries/FR' |
1553 | - date_created: u'2006-10-16T18:31:43.438573+00:00' |
1554 | + country_link: 'http://.../+countries/FR' |
1555 | + date_created: '2006-10-16T18:31:43.438573+00:00' |
1556 | date_reviewed: None |
1557 | description: None |
1558 | displayname: None |
1559 | - distribution_link: u'http://.../ubuntu' |
1560 | + distribution_link: 'http://.../ubuntu' |
1561 | enabled: True |
1562 | ftp_base_url: None |
1563 | - http_base_url: u'http://localhost:11375/archive-mirror/' |
1564 | + http_base_url: 'http://localhost:11375/archive-mirror/' |
1565 | https_base_url: None |
1566 | - name: u'archive-404-mirror' |
1567 | + name: 'archive-404-mirror' |
1568 | official_candidate: True |
1569 | - owner_link: u'http://.../~name12' |
1570 | - resource_type_link: u'http://.../#distribution_mirror' |
1571 | + owner_link: 'http://.../~name12' |
1572 | + resource_type_link: 'http://.../#distribution_mirror' |
1573 | reviewer_link: None |
1574 | rsync_base_url: None |
1575 | - self_link: u'http://.../ubuntu/+mirror/archive-404-mirror' |
1576 | - speed: u'512 Kbps' |
1577 | - status: u'Official' |
1578 | - web_link: u'http://launchpad.../ubuntu/+mirror/archive-404-mirror' |
1579 | + self_link: 'http://.../ubuntu/+mirror/archive-404-mirror' |
1580 | + speed: '512 Kbps' |
1581 | + status: 'Official' |
1582 | + web_link: 'http://launchpad.../ubuntu/+mirror/archive-404-mirror' |
1583 | whiteboard: None |
1584 | |
1585 | Now trying to set the owner using Sample Person's webservice is not authorized. |
1586 | @@ -219,29 +219,29 @@ While others can be set with the appropriate authorization: |
1587 | >>> response = karl_webservice.patch( |
1588 | ... canonical_releases['self_link'], 'application/json', dumps(patch)).jsonBody() |
1589 | >>> pprint_entry(response) |
1590 | - content: u'CD Image' |
1591 | + content: 'CD Image' |
1592 | country_dns_mirror: False |
1593 | - country_link: u'http://.../+countries/GL' |
1594 | - date_created: u'2006-10-16T18:31:43.434567+00:00' |
1595 | + country_link: 'http://.../+countries/GL' |
1596 | + date_created: '2006-10-16T18:31:43.434567+00:00' |
1597 | date_reviewed: None |
1598 | description: None |
1599 | displayname: None |
1600 | - distribution_link: u'http://.../ubuntu' |
1601 | + distribution_link: 'http://.../ubuntu' |
1602 | enabled: True |
1603 | ftp_base_url: None |
1604 | - http_base_url: u'http://releases.ubuntu.com/' |
1605 | + http_base_url: 'http://releases.ubuntu.com/' |
1606 | https_base_url: None |
1607 | - name: u'canonical-releases' |
1608 | + name: 'canonical-releases' |
1609 | official_candidate: True |
1610 | - owner_link: u'http://.../~mark' |
1611 | - resource_type_link: u'http://.../#distribution_mirror' |
1612 | + owner_link: 'http://.../~mark' |
1613 | + resource_type_link: 'http://.../#distribution_mirror' |
1614 | reviewer_link: None |
1615 | rsync_base_url: None |
1616 | - self_link: u'http://.../ubuntu/+mirror/canonical-releases' |
1617 | - speed: u'100 Mbps' |
1618 | - status: u'Unofficial' |
1619 | - web_link: u'http://launchpad.../ubuntu/+mirror/canonical-releases' |
1620 | - whiteboard: u'This mirror is too shiny to be true' |
1621 | + self_link: 'http://.../ubuntu/+mirror/canonical-releases' |
1622 | + speed: '100 Mbps' |
1623 | + status: 'Unofficial' |
1624 | + web_link: 'http://launchpad.../ubuntu/+mirror/canonical-releases' |
1625 | + whiteboard: 'This mirror is too shiny to be true' |
1626 | |
1627 | = Distribution Mirror Custom Operations = |
1628 | |
1629 | diff --git a/lib/lp/registry/stories/webservice/xx-distribution.txt b/lib/lp/registry/stories/webservice/xx-distribution.txt |
1630 | index f99a1a9..3463c08 100644 |
1631 | --- a/lib/lp/registry/stories/webservice/xx-distribution.txt |
1632 | +++ b/lib/lp/registry/stories/webservice/xx-distribution.txt |
1633 | @@ -20,30 +20,30 @@ And for every distribution we publish most of its attributes. |
1634 | >>> ubuntu = webservice.get(distro['self_link']).jsonBody() |
1635 | >>> pprint_entry(ubuntu) |
1636 | active: True |
1637 | - active_milestones_collection_link: u'http://.../ubuntu/active_milestones' |
1638 | - all_milestones_collection_link: u'http://.../ubuntu/all_milestones' |
1639 | - archive_mirrors_collection_link: u'http://.../ubuntu/archive_mirrors' |
1640 | - archives_collection_link: u'http://.../ubuntu/archives' |
1641 | + active_milestones_collection_link: 'http://.../ubuntu/active_milestones' |
1642 | + all_milestones_collection_link: 'http://.../ubuntu/all_milestones' |
1643 | + archive_mirrors_collection_link: 'http://.../ubuntu/archive_mirrors' |
1644 | + archives_collection_link: 'http://.../ubuntu/archives' |
1645 | bug_reported_acknowledgement: None |
1646 | bug_reporting_guidelines: None |
1647 | bug_supervisor_link: None |
1648 | - cdimage_mirrors_collection_link: u'http://.../ubuntu/cdimage_mirrors' |
1649 | - current_series_link: u'http://.../ubuntu/hoary' |
1650 | - date_created: u'2006-10-16T18:31:43.415195+00:00' |
1651 | - derivatives_collection_link: u'http://.../ubuntu/derivatives' |
1652 | - description: u'Ubuntu is a new approach...' |
1653 | + cdimage_mirrors_collection_link: 'http://.../ubuntu/cdimage_mirrors' |
1654 | + current_series_link: 'http://.../ubuntu/hoary' |
1655 | + date_created: '2006-10-16T18:31:43.415195+00:00' |
1656 | + derivatives_collection_link: 'http://.../ubuntu/derivatives' |
1657 | + description: 'Ubuntu is a new approach...' |
1658 | development_series_alias: None |
1659 | - display_name: u'Ubuntu' |
1660 | - domain_name: u'ubuntulinux.org' |
1661 | + display_name: 'Ubuntu' |
1662 | + domain_name: 'ubuntulinux.org' |
1663 | driver_link: None |
1664 | homepage_content: None |
1665 | - icon_link: u'http://.../ubuntu/icon' |
1666 | - logo_link: u'http://.../ubuntu/logo' |
1667 | - main_archive_link: u'http://.../ubuntu/+archive/primary' |
1668 | - members_link: u'http://.../~ubuntu-team' |
1669 | - mirror_admin_link: u'http://.../~ubuntu-mirror-admins' |
1670 | - mugshot_link: u'http://.../ubuntu/mugshot' |
1671 | - name: u'ubuntu' |
1672 | + icon_link: 'http://.../ubuntu/icon' |
1673 | + logo_link: 'http://.../ubuntu/logo' |
1674 | + main_archive_link: 'http://.../ubuntu/+archive/primary' |
1675 | + members_link: 'http://.../~ubuntu-team' |
1676 | + mirror_admin_link: 'http://.../~ubuntu-mirror-admins' |
1677 | + mugshot_link: 'http://.../ubuntu/mugshot' |
1678 | + name: 'ubuntu' |
1679 | oci_project_admin_link: None |
1680 | official_answers: True |
1681 | official_blueprints: True |
1682 | @@ -51,18 +51,18 @@ And for every distribution we publish most of its attributes. |
1683 | official_bugs: True |
1684 | official_codehosting: False |
1685 | official_packages: True |
1686 | - owner_link: u'http://.../~ubuntu-team' |
1687 | + owner_link: 'http://.../~ubuntu-team' |
1688 | redirect_release_uploads: False |
1689 | - registrant_link: u'http://.../~registry' |
1690 | - resource_type_link: u'http://.../#distribution' |
1691 | - self_link: u'http://.../ubuntu' |
1692 | - series_collection_link: u'http://.../ubuntu/series' |
1693 | - summary: u'Ubuntu is a new approach to Linux Distribution...' |
1694 | + registrant_link: 'http://.../~registry' |
1695 | + resource_type_link: 'http://.../#distribution' |
1696 | + self_link: 'http://.../ubuntu' |
1697 | + series_collection_link: 'http://.../ubuntu/series' |
1698 | + summary: 'Ubuntu is a new approach to Linux Distribution...' |
1699 | supports_mirrors: True |
1700 | supports_ppas: True |
1701 | - title: u'Ubuntu' |
1702 | + title: 'Ubuntu' |
1703 | vcs: None |
1704 | - web_link: u'http://launchpad.../ubuntu' |
1705 | + web_link: 'http://launchpad.../ubuntu' |
1706 | |
1707 | |
1708 | Distribution Custom Operations |
1709 | @@ -149,28 +149,28 @@ packages matching (substring) the given text. |
1710 | ... ubuntu['self_link'], 'getMirrorByName', |
1711 | ... name='canonical-releases').jsonBody() |
1712 | >>> pprint_entry(canonical_releases) |
1713 | - content: u'CD Image' |
1714 | + content: 'CD Image' |
1715 | country_dns_mirror: False |
1716 | - country_link: u'http://.../+countries/GB' |
1717 | - date_created: u'2006-10-16T18:31:43.434567+00:00' |
1718 | + country_link: 'http://.../+countries/GB' |
1719 | + date_created: '2006-10-16T18:31:43.434567+00:00' |
1720 | date_reviewed: None |
1721 | description: None |
1722 | displayname: None |
1723 | - distribution_link: u'http://.../ubuntu' |
1724 | + distribution_link: 'http://.../ubuntu' |
1725 | enabled: True |
1726 | ftp_base_url: None |
1727 | - http_base_url: u'http://releases.ubuntu.com/' |
1728 | + http_base_url: 'http://releases.ubuntu.com/' |
1729 | https_base_url: None |
1730 | - name: u'canonical-releases' |
1731 | + name: 'canonical-releases' |
1732 | official_candidate: True |
1733 | - owner_link: u'http://.../~mark' |
1734 | - resource_type_link: u'http://.../#distribution_mirror' |
1735 | + owner_link: 'http://.../~mark' |
1736 | + resource_type_link: 'http://.../#distribution_mirror' |
1737 | reviewer_link: None |
1738 | rsync_base_url: None |
1739 | - self_link: u'http://.../ubuntu/+mirror/canonical-releases' |
1740 | - speed: u'100 Mbps' |
1741 | - status: u'Official' |
1742 | - web_link: u'http://launchpad.../ubuntu/+mirror/canonical-releases' |
1743 | + self_link: 'http://.../ubuntu/+mirror/canonical-releases' |
1744 | + speed: '100 Mbps' |
1745 | + status: 'Official' |
1746 | + web_link: 'http://launchpad.../ubuntu/+mirror/canonical-releases' |
1747 | whiteboard: None |
1748 | |
1749 | "getCountryMirror" returns the country DNS mirror for a given country; |
1750 | @@ -220,9 +220,9 @@ Mark new mirror as official and a country mirror. |
1751 | ... country=antarctica['self_link'], |
1752 | ... mirror_type="Archive").jsonBody() |
1753 | >>> pprint_entry(antarctica_country_mirror_archive) |
1754 | - content: u'Archive' |
1755 | + content: 'Archive' |
1756 | country_dns_mirror: True |
1757 | - country_link: u'http://.../+countries/AQ' |
1758 | + country_link: 'http://.../+countries/AQ' |
1759 | ... |
1760 | |
1761 | >>> uk = webservice.get("/+countries/GB").jsonBody() |
1762 | diff --git a/lib/lp/registry/stories/webservice/xx-distroseries.txt b/lib/lp/registry/stories/webservice/xx-distroseries.txt |
1763 | index bc01416..0cff63d 100644 |
1764 | --- a/lib/lp/registry/stories/webservice/xx-distroseries.txt |
1765 | +++ b/lib/lp/registry/stories/webservice/xx-distroseries.txt |
1766 | @@ -59,43 +59,43 @@ For distroseries we publish a subset of its attributes. |
1767 | >>> pprint_entry(current_series) |
1768 | active: True |
1769 | active_milestones_collection_link: |
1770 | - u'http://.../ubuntu/hoary/active_milestones' |
1771 | + 'http://.../ubuntu/hoary/active_milestones' |
1772 | advertise_by_hash: False |
1773 | - all_milestones_collection_link: u'http://.../ubuntu/hoary/all_milestones' |
1774 | - architectures_collection_link: u'http://.../ubuntu/hoary/architectures' |
1775 | + all_milestones_collection_link: 'http://.../ubuntu/hoary/all_milestones' |
1776 | + architectures_collection_link: 'http://.../ubuntu/hoary/architectures' |
1777 | bug_reported_acknowledgement: None |
1778 | bug_reporting_guidelines: None |
1779 | - changeslist: u'hoary-changes@ubuntu.com' |
1780 | + changeslist: 'hoary-changes@ubuntu.com' |
1781 | component_names: [u'main', u'restricted'] |
1782 | - date_created: u'2006-10-16T18:31:43.483559+00:00' |
1783 | + date_created: '2006-10-16T18:31:43.483559+00:00' |
1784 | datereleased: None |
1785 | - description: u'Hoary is the ... |
1786 | - displayname: u'Hoary' |
1787 | - distribution_link: u'http://.../ubuntu' |
1788 | + description: 'Hoary is the ... |
1789 | + displayname: 'Hoary' |
1790 | + distribution_link: 'http://.../ubuntu' |
1791 | driver_link: None |
1792 | - drivers_collection_link: u'http://.../ubuntu/hoary/drivers' |
1793 | - fullseriesname: u'Ubuntu Hoary' |
1794 | + drivers_collection_link: 'http://.../ubuntu/hoary/drivers' |
1795 | + fullseriesname: 'Ubuntu Hoary' |
1796 | include_long_descriptions: True |
1797 | index_compressors: [u'gzip', u'bzip2'] |
1798 | language_pack_full_export_requested: False |
1799 | - main_archive_link: u'http://.../ubuntu/+archive/primary' |
1800 | - name: u'hoary' |
1801 | - nominatedarchindep_link: u'http://.../ubuntu/hoary/i386' |
1802 | + main_archive_link: 'http://.../ubuntu/+archive/primary' |
1803 | + name: 'hoary' |
1804 | + nominatedarchindep_link: 'http://.../ubuntu/hoary/i386' |
1805 | official_bug_tags: [] |
1806 | - owner_link: u'http://.../~ubuntu-team' |
1807 | - parent_series_link: u'http://.../ubuntu/warty' |
1808 | + owner_link: 'http://.../~ubuntu-team' |
1809 | + parent_series_link: 'http://.../ubuntu/warty' |
1810 | publish_by_hash: False |
1811 | - registrant_link: u'http://.../~mark' |
1812 | + registrant_link: 'http://.../~mark' |
1813 | resource_type_link: ... |
1814 | - self_link: u'http://.../ubuntu/hoary' |
1815 | - status: u'Active Development' |
1816 | + self_link: 'http://.../ubuntu/hoary' |
1817 | + status: 'Active Development' |
1818 | suite_names: |
1819 | [u'Release', u'Security', u'Updates', u'Proposed', u'Backports'] |
1820 | - summary: u'Hoary is the ... |
1821 | + summary: 'Hoary is the ... |
1822 | supported: False |
1823 | - title: u'The Hoary Hedgehog Release' |
1824 | - version: u'5.04' |
1825 | - web_link: u'http://launchpad.../ubuntu/hoary' |
1826 | + title: 'The Hoary Hedgehog Release' |
1827 | + version: '5.04' |
1828 | + web_link: 'http://launchpad.../ubuntu/hoary' |
1829 | |
1830 | |
1831 | Getting the previous series |
1832 | diff --git a/lib/lp/registry/stories/webservice/xx-person.txt b/lib/lp/registry/stories/webservice/xx-person.txt |
1833 | index a70885a..58a700e 100644 |
1834 | --- a/lib/lp/registry/stories/webservice/xx-person.txt |
1835 | +++ b/lib/lp/registry/stories/webservice/xx-person.txt |
1836 | @@ -9,121 +9,121 @@ for teams (as they're defined in the ITeam interface). |
1837 | >>> from lazr.restful.testing.webservice import pprint_entry |
1838 | >>> salgado = webservice.get("/~salgado").jsonBody() |
1839 | >>> pprint_entry(salgado) |
1840 | - admins_collection_link: u'http://.../~salgado/admins' |
1841 | + admins_collection_link: 'http://.../~salgado/admins' |
1842 | archive_link: None |
1843 | confirmed_email_addresses_collection_link: |
1844 | - u'http://.../~salgado/confirmed_email_addresses' |
1845 | - date_created: u'2005-06-06T08:59:51.596025+00:00' |
1846 | + 'http://.../~salgado/confirmed_email_addresses' |
1847 | + date_created: '2005-06-06T08:59:51.596025+00:00' |
1848 | deactivated_members_collection_link: |
1849 | - u'http://.../~salgado/deactivated_members' |
1850 | + 'http://.../~salgado/deactivated_members' |
1851 | description: None |
1852 | - display_name: u'Guilherme Salgado' |
1853 | - expired_members_collection_link: u'http://.../~salgado/expired_members' |
1854 | - gpg_keys_collection_link: u'http://.../~salgado/gpg_keys' |
1855 | + display_name: 'Guilherme Salgado' |
1856 | + expired_members_collection_link: 'http://.../~salgado/expired_members' |
1857 | + gpg_keys_collection_link: 'http://.../~salgado/gpg_keys' |
1858 | hide_email_addresses: False |
1859 | homepage_content: None |
1860 | - invited_members_collection_link: u'http://.../~salgado/invited_members' |
1861 | - irc_nicknames_collection_link: u'http://.../~salgado/irc_nicknames' |
1862 | + invited_members_collection_link: 'http://.../~salgado/invited_members' |
1863 | + irc_nicknames_collection_link: 'http://.../~salgado/irc_nicknames' |
1864 | is_probationary: True |
1865 | is_team: False |
1866 | is_ubuntu_coc_signer: False |
1867 | is_valid: True |
1868 | - jabber_ids_collection_link: u'http://.../~salgado/jabber_ids' |
1869 | + jabber_ids_collection_link: 'http://.../~salgado/jabber_ids' |
1870 | karma: 0 |
1871 | - languages_collection_link: u'http://.../~salgado/languages' |
1872 | + languages_collection_link: 'http://.../~salgado/languages' |
1873 | latitude: None |
1874 | - logo_link: u'http://.../~salgado/logo' |
1875 | + logo_link: 'http://.../~salgado/logo' |
1876 | longitude: None |
1877 | - mailing_list_auto_subscribe_policy: u'Ask me when I join a team' |
1878 | - members_collection_link: u'http://.../~salgado/members' |
1879 | - members_details_collection_link: u'http://.../~salgado/members_details' |
1880 | + mailing_list_auto_subscribe_policy: 'Ask me when I join a team' |
1881 | + members_collection_link: 'http://.../~salgado/members' |
1882 | + members_details_collection_link: 'http://.../~salgado/members_details' |
1883 | memberships_details_collection_link: |
1884 | - u'http://.../~salgado/memberships_details' |
1885 | - mugshot_link: u'http://.../~salgado/mugshot' |
1886 | - name: u'salgado' |
1887 | + 'http://.../~salgado/memberships_details' |
1888 | + mugshot_link: 'http://.../~salgado/mugshot' |
1889 | + name: 'salgado' |
1890 | open_membership_invitations_collection_link: |
1891 | - u'http://.../~salgado/open_membership_invitations' |
1892 | - participants_collection_link: u'http://.../~salgado/participants' |
1893 | - ppas_collection_link: u'http://.../~salgado/ppas' |
1894 | + 'http://.../~salgado/open_membership_invitations' |
1895 | + participants_collection_link: 'http://.../~salgado/participants' |
1896 | + ppas_collection_link: 'http://.../~salgado/ppas' |
1897 | preferred_email_address_link: |
1898 | - u'http://.../~salgado/+email/guilherme.salgado@canonical.com' |
1899 | + 'http://.../~salgado/+email/guilherme.salgado@canonical.com' |
1900 | private: False |
1901 | - proposed_members_collection_link: u'http://.../~salgado/proposed_members' |
1902 | - recipes_collection_link: u'http://.../~salgado/recipes' |
1903 | - resource_type_link: u'http://.../#person' |
1904 | - self_link: u'http://.../~salgado' |
1905 | - sshkeys_collection_link: u'http://.../~salgado/sshkeys' |
1906 | - sub_teams_collection_link: u'http://.../~salgado/sub_teams' |
1907 | - super_teams_collection_link: u'http://.../~salgado/super_teams' |
1908 | + proposed_members_collection_link: 'http://.../~salgado/proposed_members' |
1909 | + recipes_collection_link: 'http://.../~salgado/recipes' |
1910 | + resource_type_link: 'http://.../#person' |
1911 | + self_link: 'http://.../~salgado' |
1912 | + sshkeys_collection_link: 'http://.../~salgado/sshkeys' |
1913 | + sub_teams_collection_link: 'http://.../~salgado/sub_teams' |
1914 | + super_teams_collection_link: 'http://.../~salgado/super_teams' |
1915 | team_owner_link: None |
1916 | - time_zone: u'UTC' |
1917 | - visibility: u'Public' |
1918 | - web_link: u'http://launchpad.../~salgado' |
1919 | - wiki_names_collection_link: u'http://.../~salgado/wiki_names' |
1920 | + time_zone: 'UTC' |
1921 | + visibility: 'Public' |
1922 | + web_link: 'http://launchpad.../~salgado' |
1923 | + wiki_names_collection_link: 'http://.../~salgado/wiki_names' |
1924 | |
1925 | >>> ubuntu_team = webservice.get("/~ubuntu-team").jsonBody() |
1926 | >>> pprint_entry(ubuntu_team) |
1927 | - admins_collection_link: u'http://.../~ubuntu-team/admins' |
1928 | + admins_collection_link: 'http://.../~ubuntu-team/admins' |
1929 | archive_link: None |
1930 | confirmed_email_addresses_collection_link: |
1931 | - u'http://.../~ubuntu-team/confirmed_email_addresses' |
1932 | - date_created: u'2005-06-06T08:59:51.605760+00:00' |
1933 | + 'http://.../~ubuntu-team/confirmed_email_addresses' |
1934 | + date_created: '2005-06-06T08:59:51.605760+00:00' |
1935 | deactivated_members_collection_link: |
1936 | - u'http://.../~ubuntu-team/deactivated_members' |
1937 | + 'http://.../~ubuntu-team/deactivated_members' |
1938 | default_membership_period: None |
1939 | default_renewal_period: None |
1940 | - description: u'This Team is responsible for the Ubuntu Distribution' |
1941 | - display_name: u'Ubuntu Team' |
1942 | + description: 'This Team is responsible for the Ubuntu Distribution' |
1943 | + display_name: 'Ubuntu Team' |
1944 | expired_members_collection_link: |
1945 | - u'http://.../~ubuntu-team/expired_members' |
1946 | - gpg_keys_collection_link: u'http://.../~ubuntu-team/gpg_keys' |
1947 | + 'http://.../~ubuntu-team/expired_members' |
1948 | + gpg_keys_collection_link: 'http://.../~ubuntu-team/gpg_keys' |
1949 | hide_email_addresses: False |
1950 | homepage_content: None |
1951 | invited_members_collection_link: |
1952 | - u'http://.../~ubuntu-team/invited_members' |
1953 | - irc_nicknames_collection_link: u'http://.../~ubuntu-team/irc_nicknames' |
1954 | + 'http://.../~ubuntu-team/invited_members' |
1955 | + irc_nicknames_collection_link: 'http://.../~ubuntu-team/irc_nicknames' |
1956 | is_probationary: False |
1957 | is_team: True |
1958 | is_ubuntu_coc_signer: False |
1959 | is_valid: True |
1960 | - jabber_ids_collection_link: u'http://.../~ubuntu-team/jabber_ids' |
1961 | + jabber_ids_collection_link: 'http://.../~ubuntu-team/jabber_ids' |
1962 | karma: 0 |
1963 | - languages_collection_link: u'http://.../~ubuntu-team/languages' |
1964 | + languages_collection_link: 'http://.../~ubuntu-team/languages' |
1965 | latitude: None |
1966 | - logo_link: u'http://.../~ubuntu-team/logo' |
1967 | + logo_link: 'http://.../~ubuntu-team/logo' |
1968 | longitude: None |
1969 | - mailing_list_auto_subscribe_policy: u'Ask me when I join a team' |
1970 | - members_collection_link: u'http://.../~ubuntu-team/members' |
1971 | + mailing_list_auto_subscribe_policy: 'Ask me when I join a team' |
1972 | + members_collection_link: 'http://.../~ubuntu-team/members' |
1973 | members_details_collection_link: |
1974 | - u'http://.../~ubuntu-team/members_details' |
1975 | - membership_policy: u'Moderated Team' |
1976 | + 'http://.../~ubuntu-team/members_details' |
1977 | + membership_policy: 'Moderated Team' |
1978 | memberships_details_collection_link: |
1979 | - u'http://.../~ubuntu-team/memberships_details' |
1980 | - mugshot_link: u'http://.../~ubuntu-team/mugshot' |
1981 | - name: u'ubuntu-team' |
1982 | + 'http://.../~ubuntu-team/memberships_details' |
1983 | + mugshot_link: 'http://.../~ubuntu-team/mugshot' |
1984 | + name: 'ubuntu-team' |
1985 | open_membership_invitations_collection_link: |
1986 | - u'http://.../~ubuntu-team/open_membership_invitations' |
1987 | - participants_collection_link: u'http://.../~ubuntu-team/participants' |
1988 | - ppas_collection_link: u'http://.../~ubuntu-team/ppas' |
1989 | + 'http://.../~ubuntu-team/open_membership_invitations' |
1990 | + participants_collection_link: 'http://.../~ubuntu-team/participants' |
1991 | + ppas_collection_link: 'http://.../~ubuntu-team/ppas' |
1992 | preferred_email_address_link: |
1993 | - u'http://.../~ubuntu-team/+email/support@ubuntu.com' |
1994 | + 'http://.../~ubuntu-team/+email/support@ubuntu.com' |
1995 | private: False |
1996 | proposed_members_collection_link: |
1997 | - u'http://.../~ubuntu-team/proposed_members' |
1998 | - recipes_collection_link: u'http://.../~ubuntu-team/recipes' |
1999 | - renewal_policy: u'invite them to apply for renewal' |
2000 | - resource_type_link: u'http://.../#team' |
2001 | - self_link: u'http://.../~ubuntu-team' |
2002 | - sshkeys_collection_link: u'http://.../~ubuntu-team/sshkeys' |
2003 | - sub_teams_collection_link: u'http://.../~ubuntu-team/sub_teams' |
2004 | - subscription_policy: u'Moderated Team' |
2005 | - super_teams_collection_link: u'http://.../~ubuntu-team/super_teams' |
2006 | - team_description: u'This Team is responsible for the Ubuntu Distribution' |
2007 | - team_owner_link: u'http://.../~mark' |
2008 | - time_zone: u'UTC' |
2009 | - visibility: u'Public' |
2010 | - web_link: u'http://launchpad.../~ubuntu-team' |
2011 | - wiki_names_collection_link: u'http://.../~ubuntu-team/wiki_names' |
2012 | + 'http://.../~ubuntu-team/proposed_members' |
2013 | + recipes_collection_link: 'http://.../~ubuntu-team/recipes' |
2014 | + renewal_policy: 'invite them to apply for renewal' |
2015 | + resource_type_link: 'http://.../#team' |
2016 | + self_link: 'http://.../~ubuntu-team' |
2017 | + sshkeys_collection_link: 'http://.../~ubuntu-team/sshkeys' |
2018 | + sub_teams_collection_link: 'http://.../~ubuntu-team/sub_teams' |
2019 | + subscription_policy: 'Moderated Team' |
2020 | + super_teams_collection_link: 'http://.../~ubuntu-team/super_teams' |
2021 | + team_description: 'This Team is responsible for the Ubuntu Distribution' |
2022 | + team_owner_link: 'http://.../~mark' |
2023 | + time_zone: 'UTC' |
2024 | + visibility: 'Public' |
2025 | + web_link: 'http://launchpad.../~ubuntu-team' |
2026 | + wiki_names_collection_link: 'http://.../~ubuntu-team/wiki_names' |
2027 | |
2028 | >>> sorted(set(ubuntu_team.keys()).difference(salgado.keys())) |
2029 | [u'default_membership_period', u'default_renewal_period', |
2030 | @@ -162,10 +162,10 @@ representations too. |
2031 | >>> email = webservice.get( |
2032 | ... sample_person['preferred_email_address_link']).jsonBody() |
2033 | >>> pprint_entry(email) |
2034 | - email: u'test@canonical.com' |
2035 | - person_link: u'http://.../~name12' |
2036 | - resource_type_link: u'http://.../#email_address' |
2037 | - self_link: u'http://.../~name12/+email/test@canonical.com' |
2038 | + email: 'test@canonical.com' |
2039 | + person_link: 'http://.../~name12' |
2040 | + resource_type_link: 'http://.../#email_address' |
2041 | + self_link: 'http://.../~name12/+email/test@canonical.com' |
2042 | |
2043 | One can only traverse to the email addresses of the person already |
2044 | traversed to, obviously. |
2045 | @@ -219,11 +219,11 @@ show up: |
2046 | And then we can actually retrieve the key: |
2047 | |
2048 | >>> pprint_entry(keys['entries'][0]) |
2049 | - comment: u'unique-...' |
2050 | - keytext: u'...' |
2051 | - keytype: u'RSA' |
2052 | - resource_type_link: u'http://.../#ssh_key' |
2053 | - self_link: u'http://.../~ssh-user/+ssh-keys/...' |
2054 | + comment: 'unique-...' |
2055 | + keytext: '...' |
2056 | + keytype: 'RSA' |
2057 | + resource_type_link: 'http://.../#ssh_key' |
2058 | + self_link: 'http://.../~ssh-user/+ssh-keys/...' |
2059 | |
2060 | GPG keys |
2061 | ........ |
2062 | @@ -257,10 +257,10 @@ up: |
2063 | And then we can actually retrieve the key: |
2064 | |
2065 | >>> pprint_entry(keys['entries'][0]) |
2066 | - fingerprint: u'...' |
2067 | - keyid: u'...' |
2068 | - resource_type_link: u'http://.../#gpg_key' |
2069 | - self_link: u'http://.../~name12/+gpg-keys/...' |
2070 | + fingerprint: '...' |
2071 | + keyid: '...' |
2072 | + resource_type_link: 'http://.../#gpg_key' |
2073 | + self_link: 'http://.../~name12/+gpg-keys/...' |
2074 | |
2075 | |
2076 | Team memberships |
2077 | @@ -480,12 +480,12 @@ representations too. |
2078 | >>> wiki_name = sorted( |
2079 | ... webservice.get(wikis_link).jsonBody()['entries'])[0] |
2080 | >>> pprint_entry(wiki_name) |
2081 | - person_link: u'http://.../~salgado' |
2082 | - resource_type_link: u'http://.../#wiki_name' |
2083 | - self_link: u'http://.../~salgado/+wikiname/2' |
2084 | - url: u'https://wiki.ubuntu.com/GuilhermeSalgado' |
2085 | - wiki: u'https://wiki.ubuntu.com/' |
2086 | - wikiname: u'GuilhermeSalgado' |
2087 | + person_link: 'http://.../~salgado' |
2088 | + resource_type_link: 'http://.../#wiki_name' |
2089 | + self_link: 'http://.../~salgado/+wikiname/2' |
2090 | + url: 'https://wiki.ubuntu.com/GuilhermeSalgado' |
2091 | + wiki: 'https://wiki.ubuntu.com/' |
2092 | + wikiname: 'GuilhermeSalgado' |
2093 | |
2094 | One can only traverse to the WikiNames of the person already traversed |
2095 | to, obviously. |
2096 | @@ -540,10 +540,10 @@ representations too. |
2097 | >>> jabber_id = sorted( |
2098 | ... webservice.get(jabber_ids_link).jsonBody()['entries'])[0] |
2099 | >>> pprint_entry(jabber_id) |
2100 | - jabberid: u'markshuttleworth@jabber.org' |
2101 | - person_link: u'http://.../~mark' |
2102 | - resource_type_link: u'http://.../#jabber_id' |
2103 | - self_link: u'http://.../~mark/+jabberid/markshuttleworth@jabber.org' |
2104 | + jabberid: 'markshuttleworth@jabber.org' |
2105 | + person_link: 'http://.../~mark' |
2106 | + resource_type_link: 'http://.../#jabber_id' |
2107 | + self_link: 'http://.../~mark/+jabberid/markshuttleworth@jabber.org' |
2108 | |
2109 | One can only traverse to the Jabber IDs of the person already traversed |
2110 | to, obviously. |
2111 | @@ -576,11 +576,11 @@ too. |
2112 | |
2113 | >>> irc_id = sorted(webservice.get(irc_ids_link).jsonBody()['entries'])[0] |
2114 | >>> pprint_entry(irc_id) |
2115 | - network: u'chat.freenode.net' |
2116 | - nickname: u'mark' |
2117 | - person_link: u'http://.../~mark' |
2118 | - resource_type_link: u'http://.../#irc_id' |
2119 | - self_link: u'http://.../~mark/+ircnick/1' |
2120 | + network: 'chat.freenode.net' |
2121 | + nickname: 'mark' |
2122 | + person_link: 'http://.../~mark' |
2123 | + resource_type_link: 'http://.../#irc_id' |
2124 | + self_link: 'http://.../~mark/+ircnick/1' |
2125 | |
2126 | One can only traverse to the IRC IDs of the person already traversed |
2127 | to, obviously. |
2128 | @@ -691,15 +691,15 @@ Subscribed packages can be listed with getBugSubscriberPackages: |
2129 | --- |
2130 | bug_reported_acknowledgement: None |
2131 | bug_reporting_guidelines: None |
2132 | - display_name: u'...' |
2133 | - distribution_link: u'...' |
2134 | - name: u'fooix' |
2135 | + display_name: '...' |
2136 | + distribution_link: '...' |
2137 | + name: 'fooix' |
2138 | official_bug_tags: [] |
2139 | - resource_type_link: u'...' |
2140 | - self_link: u'...' |
2141 | - title: u'...' |
2142 | + resource_type_link: '...' |
2143 | + self_link: '...' |
2144 | + title: '...' |
2145 | upstream_product_link: None |
2146 | - web_link: u'...' |
2147 | + web_link: '...' |
2148 | --- |
2149 | |
2150 | |
2151 | diff --git a/lib/lp/registry/stories/webservice/xx-project-registry.txt b/lib/lp/registry/stories/webservice/xx-project-registry.txt |
2152 | index 3694df6..cd6f1f5 100644 |
2153 | --- a/lib/lp/registry/stories/webservice/xx-project-registry.txt |
2154 | +++ b/lib/lp/registry/stories/webservice/xx-project-registry.txt |
2155 | @@ -64,33 +64,33 @@ host. |
2156 | >>> mozilla = webservice.get('/mozilla').jsonBody() |
2157 | >>> pprint_entry(mozilla) |
2158 | active: True |
2159 | - active_milestones_collection_link: u'http://.../mozilla/active_milestones' |
2160 | - all_milestones_collection_link: u'http://.../mozilla/all_milestones' |
2161 | + active_milestones_collection_link: 'http://.../mozilla/active_milestones' |
2162 | + all_milestones_collection_link: 'http://.../mozilla/all_milestones' |
2163 | bug_reported_acknowledgement: None |
2164 | bug_reporting_guidelines: None |
2165 | bug_tracker_link: None |
2166 | - date_created: u'...' |
2167 | - description: u'The Mozilla Project...' |
2168 | - display_name: u'The Mozilla Project' |
2169 | + date_created: '...' |
2170 | + description: 'The Mozilla Project...' |
2171 | + display_name: 'The Mozilla Project' |
2172 | driver_link: None |
2173 | freshmeat_project: None |
2174 | homepage_content: None |
2175 | - homepage_url: u'http://www.mozilla.org/' |
2176 | - icon_link: u'http://.../mozilla/icon' |
2177 | - logo_link: u'http://.../mozilla/logo' |
2178 | - mugshot_link: u'http://.../mozilla/mugshot' |
2179 | - name: u'mozilla' |
2180 | + homepage_url: 'http://www.mozilla.org/' |
2181 | + icon_link: 'http://.../mozilla/icon' |
2182 | + logo_link: 'http://.../mozilla/logo' |
2183 | + mugshot_link: 'http://.../mozilla/mugshot' |
2184 | + name: 'mozilla' |
2185 | official_bug_tags: [] |
2186 | - owner_link: u'http://.../~name12' |
2187 | - projects_collection_link: u'http://.../mozilla/projects' |
2188 | - registrant_link: u'http://.../~name12' |
2189 | - resource_type_link: u'...' |
2190 | + owner_link: 'http://.../~name12' |
2191 | + projects_collection_link: 'http://.../mozilla/projects' |
2192 | + registrant_link: 'http://.../~name12' |
2193 | + resource_type_link: '...' |
2194 | reviewed: False |
2195 | - self_link: u'http://.../mozilla' |
2196 | + self_link: 'http://.../mozilla' |
2197 | sourceforge_project: None |
2198 | - summary: u'The Mozilla Project...' |
2199 | - title: u'The Mozilla Project' |
2200 | - web_link: u'http://launchpad.../mozilla' |
2201 | + summary: 'The Mozilla Project...' |
2202 | + title: 'The Mozilla Project' |
2203 | + web_link: 'http://launchpad.../mozilla' |
2204 | wiki_url: None |
2205 | |
2206 | The milestones can be accessed through the |
2207 | @@ -151,59 +151,59 @@ Projects are available at their canonical URL on the API virtual host. |
2208 | >>> firefox = webservice.get('/firefox').jsonBody() |
2209 | >>> pprint_entry(firefox) |
2210 | active: True |
2211 | - active_milestones_collection_link: u'http://.../firefox/active_milestones' |
2212 | - all_milestones_collection_link: u'http://.../firefox/all_milestones' |
2213 | - brand_link: u'http://.../firefox/brand' |
2214 | + active_milestones_collection_link: 'http://.../firefox/active_milestones' |
2215 | + all_milestones_collection_link: 'http://.../firefox/all_milestones' |
2216 | + brand_link: 'http://.../firefox/brand' |
2217 | bug_reported_acknowledgement: None |
2218 | bug_reporting_guidelines: None |
2219 | bug_supervisor_link: None |
2220 | bug_tracker_link: None |
2221 | commercial_subscription_is_due: False |
2222 | commercial_subscription_link: None |
2223 | - date_created: u'2004-09-24T20:58:02.185708+00:00' |
2224 | + date_created: '2004-09-24T20:58:02.185708+00:00' |
2225 | date_next_suggest_packaging: None |
2226 | - description: u'The Mozilla Firefox web browser' |
2227 | - development_focus_link: u'http://.../firefox/trunk' |
2228 | - display_name: u'Mozilla Firefox' |
2229 | + description: 'The Mozilla Firefox web browser' |
2230 | + development_focus_link: 'http://.../firefox/trunk' |
2231 | + display_name: 'Mozilla Firefox' |
2232 | download_url: None |
2233 | driver_link: None |
2234 | freshmeat_project: None |
2235 | homepage_url: None |
2236 | - icon_link: u'http://.../firefox/icon' |
2237 | - information_type: u'Public' |
2238 | + icon_link: 'http://.../firefox/icon' |
2239 | + information_type: 'Public' |
2240 | is_permitted: True |
2241 | license_approved: False |
2242 | license_info: None |
2243 | licenses: [u'MIT / X / Expat Licence'] |
2244 | - logo_link: u'http://.../firefox/logo' |
2245 | - name: u'firefox' |
2246 | + logo_link: 'http://.../firefox/logo' |
2247 | + name: 'firefox' |
2248 | official_answers: True |
2249 | official_blueprints: False |
2250 | official_bug_tags: [] |
2251 | official_bugs: True |
2252 | official_codehosting: False |
2253 | - owner_link: u'http://.../~name12' |
2254 | + owner_link: 'http://.../~name12' |
2255 | private: False |
2256 | private_bugs: False |
2257 | programming_language: None |
2258 | - project_group_link: u'http://.../mozilla' |
2259 | + project_group_link: 'http://.../mozilla' |
2260 | project_reviewed: False |
2261 | qualifies_for_free_hosting: True |
2262 | - recipes_collection_link: u'http://.../firefox/recipes' |
2263 | - registrant_link: u'http://.../~name12' |
2264 | - releases_collection_link: u'http://.../firefox/releases' |
2265 | + recipes_collection_link: 'http://.../firefox/recipes' |
2266 | + registrant_link: 'http://.../~name12' |
2267 | + releases_collection_link: 'http://.../firefox/releases' |
2268 | remote_product: None |
2269 | - resource_type_link: u'http://.../#project' |
2270 | + resource_type_link: 'http://.../#project' |
2271 | reviewer_whiteboard: None |
2272 | screenshots_url: None |
2273 | - self_link: u'http://.../firefox' |
2274 | - series_collection_link: u'http://.../firefox/series' |
2275 | + self_link: 'http://.../firefox' |
2276 | + series_collection_link: 'http://.../firefox/series' |
2277 | sourceforge_project: None |
2278 | - summary: u'The Mozilla Firefox web browser' |
2279 | - title: u'Mozilla Firefox' |
2280 | + summary: 'The Mozilla Firefox web browser' |
2281 | + title: 'Mozilla Firefox' |
2282 | translation_focus_link: None |
2283 | vcs: None |
2284 | - web_link: u'http://launchpad.../firefox' |
2285 | + web_link: 'http://launchpad.../firefox' |
2286 | wiki_url: None |
2287 | |
2288 | In Launchpad project names may not have uppercase letters in their |
2289 | @@ -665,9 +665,9 @@ functionality at an object called the pillar set. |
2290 | |
2291 | >>> pillar_set = webservice.get("/pillars").jsonBody() |
2292 | >>> pprint_entry(pillar_set) |
2293 | - featured_pillars_collection_link: u'http://.../pillars/featured_pillars' |
2294 | - resource_type_link: u'...' |
2295 | - self_link: u'...' |
2296 | + featured_pillars_collection_link: 'http://.../pillars/featured_pillars' |
2297 | + resource_type_link: '...' |
2298 | + self_link: '...' |
2299 | |
2300 | The featured pillars are available as a separate collection. Because |
2301 | they're of different resource types, the best way to compare them is by |
2302 | @@ -727,28 +727,28 @@ virtual host. |
2303 | >>> pprint_entry(babadoo_foobadoo) |
2304 | active: True |
2305 | active_milestones_collection_link: |
2306 | - u'http://.../babadoo/foobadoo/active_milestones' |
2307 | + 'http://.../babadoo/foobadoo/active_milestones' |
2308 | all_milestones_collection_link: |
2309 | - u'http://.../babadoo/foobadoo/all_milestones' |
2310 | - branch_link: u'http://.../~babadoo-owner/babadoo/fooey' |
2311 | + 'http://.../babadoo/foobadoo/all_milestones' |
2312 | + branch_link: 'http://.../~babadoo-owner/babadoo/fooey' |
2313 | bug_reported_acknowledgement: None |
2314 | bug_reporting_guidelines: None |
2315 | - date_created: u'...' |
2316 | - display_name: u'foobadoo' |
2317 | + date_created: '...' |
2318 | + display_name: 'foobadoo' |
2319 | driver_link: None |
2320 | - drivers_collection_link: u'http://.../babadoo/foobadoo/drivers' |
2321 | - name: u'foobadoo' |
2322 | + drivers_collection_link: 'http://.../babadoo/foobadoo/drivers' |
2323 | + name: 'foobadoo' |
2324 | official_bug_tags: [] |
2325 | - owner_link: u'http://.../~babadoo-owner' |
2326 | - project_link: u'http://.../babadoo' |
2327 | + owner_link: 'http://.../~babadoo-owner' |
2328 | + project_link: 'http://.../babadoo' |
2329 | release_finder_url_pattern: None |
2330 | - releases_collection_link: u'http://.../babadoo/foobadoo/releases' |
2331 | - resource_type_link: u'...' |
2332 | - self_link: u'http://.../babadoo/foobadoo' |
2333 | - status: u'Active Development' |
2334 | - summary: u'Foobadoo support for Babadoo' |
2335 | - title: u'Babadoo foobadoo series' |
2336 | - web_link: u'http://launchpad.../babadoo/foobadoo' |
2337 | + releases_collection_link: 'http://.../babadoo/foobadoo/releases' |
2338 | + resource_type_link: '...' |
2339 | + self_link: 'http://.../babadoo/foobadoo' |
2340 | + status: 'Active Development' |
2341 | + summary: 'Foobadoo support for Babadoo' |
2342 | + title: 'Babadoo foobadoo series' |
2343 | + web_link: 'http://launchpad.../babadoo/foobadoo' |
2344 | |
2345 | "get_timeline" returns a lightweight representation of the series' |
2346 | milestones and releases. |
2347 | @@ -840,20 +840,20 @@ host. |
2348 | |
2349 | >>> firefox_1_0_0 = webservice.get('/firefox/1.0/1.0.0').jsonBody() |
2350 | >>> pprint_entry(firefox_1_0_0) |
2351 | - changelog: u'' |
2352 | - date_created: u'2005-06-06T08:59:51.930201+00:00' |
2353 | - date_released: u'2004-06-28T00:00:00+00:00' |
2354 | - display_name: u'Mozilla Firefox 1.0.0' |
2355 | - files_collection_link: u'http://.../firefox/1.0/1.0.0/files' |
2356 | - milestone_link: u'http://.../firefox/+milestone/1.0.0' |
2357 | - owner_link: u'http://.../~name12' |
2358 | - project_link: u'http://.../firefox' |
2359 | - release_notes: u'...' |
2360 | - resource_type_link: u'...' |
2361 | - self_link: u'http://.../firefox/1.0/1.0.0' |
2362 | - title: u'Mozilla Firefox 1.0.0 "First Stable Release"' |
2363 | - version: u'1.0.0' |
2364 | - web_link: u'http://launchpad.../firefox/1.0/1.0.0' |
2365 | + changelog: '' |
2366 | + date_created: '2005-06-06T08:59:51.930201+00:00' |
2367 | + date_released: '2004-06-28T00:00:00+00:00' |
2368 | + display_name: 'Mozilla Firefox 1.0.0' |
2369 | + files_collection_link: 'http://.../firefox/1.0/1.0.0/files' |
2370 | + milestone_link: 'http://.../firefox/+milestone/1.0.0' |
2371 | + owner_link: 'http://.../~name12' |
2372 | + project_link: 'http://.../firefox' |
2373 | + release_notes: '...' |
2374 | + resource_type_link: '...' |
2375 | + self_link: 'http://.../firefox/1.0/1.0.0' |
2376 | + title: 'Mozilla Firefox 1.0.0 "First Stable Release"' |
2377 | + version: '1.0.0' |
2378 | + web_link: 'http://launchpad.../firefox/1.0/1.0.0' |
2379 | |
2380 | The createProductRelease method is called by sending |
2381 | "ws.op=createProductRelease" as a request variable along with the |
2382 | @@ -920,18 +920,18 @@ virtual host. |
2383 | ... '/firefox/+milestone/1.0').jsonBody() |
2384 | >>> pprint_entry(firefox_milestone_1_0) |
2385 | code_name: None |
2386 | - date_targeted: u'2056-10-16' |
2387 | + date_targeted: '2056-10-16' |
2388 | is_active: True |
2389 | - name: u'1.0' |
2390 | + name: '1.0' |
2391 | official_bug_tags: [] |
2392 | release_link: None |
2393 | - resource_type_link: u'...' |
2394 | - self_link: u'http://.../firefox/+milestone/1.0' |
2395 | - series_target_link: u'http://.../firefox/trunk' |
2396 | + resource_type_link: '...' |
2397 | + self_link: 'http://.../firefox/+milestone/1.0' |
2398 | + series_target_link: 'http://.../firefox/trunk' |
2399 | summary: None |
2400 | - target_link: u'http://.../firefox' |
2401 | - title: u'Mozilla Firefox 1.0' |
2402 | - web_link: u'http://launchpad.../firefox/+milestone/1.0' |
2403 | + target_link: 'http://.../firefox' |
2404 | + title: 'Mozilla Firefox 1.0' |
2405 | + web_link: 'http://launchpad.../firefox/+milestone/1.0' |
2406 | |
2407 | The milestone entry has a link to its release if it has one. |
2408 | |
2409 | @@ -966,17 +966,17 @@ virtual host. |
2410 | >>> url = '/firefox/trunk/0.9.2/+file/firefox_0.9.2.orig.tar.gz' |
2411 | >>> result = webservice.get(url).jsonBody() |
2412 | >>> pprint_entry(result) |
2413 | - date_uploaded: u'2005-06-06T08:59:51.926792+00:00' |
2414 | + date_uploaded: '2005-06-06T08:59:51.926792+00:00' |
2415 | description: None |
2416 | file_link: |
2417 | - u'http://.../firefox/trunk/0.9.2/+file/firefox_0.9.2.orig.tar.gz/file' |
2418 | - file_type: u'Code Release Tarball' |
2419 | - project_release_link: u'http://.../firefox/trunk/0.9.2' |
2420 | - resource_type_link: u'http://.../#project_release_file' |
2421 | + 'http://.../firefox/trunk/0.9.2/+file/firefox_0.9.2.orig.tar.gz/file' |
2422 | + file_type: 'Code Release Tarball' |
2423 | + project_release_link: 'http://.../firefox/trunk/0.9.2' |
2424 | + resource_type_link: 'http://.../#project_release_file' |
2425 | self_link: |
2426 | - u'http://.../firefox/trunk/0.9.2/+file/firefox_0.9.2.orig.tar.gz' |
2427 | + 'http://.../firefox/trunk/0.9.2/+file/firefox_0.9.2.orig.tar.gz' |
2428 | signature_link: |
2429 | - u'http://.../trunk/0.9.2/+file/firefox_0.9.2.orig.tar.gz/signature' |
2430 | + 'http://.../trunk/0.9.2/+file/firefox_0.9.2.orig.tar.gz/signature' |
2431 | |
2432 | The actual file redirects to the librarian when accessed. |
2433 | |
2434 | diff --git a/lib/lp/registry/stories/webservice/xx-source-package.txt b/lib/lp/registry/stories/webservice/xx-source-package.txt |
2435 | index b994be1..eb577dc 100644 |
2436 | --- a/lib/lp/registry/stories/webservice/xx-source-package.txt |
2437 | +++ b/lib/lp/registry/stories/webservice/xx-source-package.txt |
2438 | @@ -29,16 +29,16 @@ distribution series. |
2439 | >>> pprint_entry(evolution) |
2440 | bug_reported_acknowledgement: None |
2441 | bug_reporting_guidelines: None |
2442 | - displayname: u'evolution in My-distro My-series' |
2443 | - distribution_link: u'http://.../my-distro' |
2444 | - distroseries_link: u'http://.../my-distro/my-series' |
2445 | + displayname: 'evolution in My-distro My-series' |
2446 | + distribution_link: 'http://.../my-distro' |
2447 | + distroseries_link: 'http://.../my-distro/my-series' |
2448 | latest_published_component_name: None |
2449 | - name: u'evolution' |
2450 | + name: 'evolution' |
2451 | official_bug_tags: [] |
2452 | productseries_link: None |
2453 | resource_type_link: ... |
2454 | - self_link: u'http://api.../my-distro/my-series/+source/evolution' |
2455 | - web_link: u'http://.../+source/evolution' |
2456 | + self_link: 'http://api.../my-distro/my-series/+source/evolution' |
2457 | + web_link: 'http://.../+source/evolution' |
2458 | |
2459 | |
2460 | Getting official branches |
2461 | diff --git a/lib/lp/registry/stories/webservice/xx-structuralsubscription.txt b/lib/lp/registry/stories/webservice/xx-structuralsubscription.txt |
2462 | index d740115..c072745 100644 |
2463 | --- a/lib/lp/registry/stories/webservice/xx-structuralsubscription.txt |
2464 | +++ b/lib/lp/registry/stories/webservice/xx-structuralsubscription.txt |
2465 | @@ -46,14 +46,14 @@ Now Eric subscribes to Fooix's bug notifications. |
2466 | start: 0 |
2467 | total_size: 1 |
2468 | --- |
2469 | - bug_filters_collection_link: u'.../fooix/+subscription/eric/bug_filters' |
2470 | - date_created: u'...' |
2471 | - date_last_updated: u'...' |
2472 | - resource_type_link: u'http://.../#structural_subscription' |
2473 | - self_link: u'http://.../fooix/+subscription/eric' |
2474 | - subscribed_by_link: u'http://.../~eric' |
2475 | - subscriber_link: u'http://.../~eric' |
2476 | - target_link: u'http://.../fooix' |
2477 | + bug_filters_collection_link: '.../fooix/+subscription/eric/bug_filters' |
2478 | + date_created: '...' |
2479 | + date_last_updated: '...' |
2480 | + resource_type_link: 'http://.../#structural_subscription' |
2481 | + self_link: 'http://.../fooix/+subscription/eric' |
2482 | + subscribed_by_link: 'http://.../~eric' |
2483 | + subscriber_link: 'http://.../~eric' |
2484 | + target_link: 'http://.../fooix' |
2485 | --- |
2486 | |
2487 | He can examine his subscription directly. |
2488 | @@ -61,14 +61,14 @@ He can examine his subscription directly. |
2489 | >>> pprint_entry(eric_webservice.named_get( |
2490 | ... '/fooix', 'getSubscription', |
2491 | ... person=webservice.getAbsoluteUrl('/~eric')).jsonBody()) |
2492 | - bug_filters_collection_link: u'.../fooix/+subscription/eric/bug_filters' |
2493 | - date_created: u'...' |
2494 | - date_last_updated: u'...' |
2495 | - resource_type_link: u'http://.../#structural_subscription' |
2496 | - self_link: u'http://.../fooix/+subscription/eric' |
2497 | - subscribed_by_link: u'http://.../~eric' |
2498 | - subscriber_link: u'http://.../~eric' |
2499 | - target_link: u'http://.../fooix' |
2500 | + bug_filters_collection_link: '.../fooix/+subscription/eric/bug_filters' |
2501 | + date_created: '...' |
2502 | + date_last_updated: '...' |
2503 | + resource_type_link: 'http://.../#structural_subscription' |
2504 | + self_link: 'http://.../fooix/+subscription/eric' |
2505 | + subscribed_by_link: 'http://.../~eric' |
2506 | + subscriber_link: 'http://.../~eric' |
2507 | + target_link: 'http://.../fooix' |
2508 | |
2509 | If the subscription doesn't exist, None will be returned. |
2510 | |
2511 | @@ -118,14 +118,14 @@ admin by virtue of his ownership. |
2512 | start: 0 |
2513 | total_size: 1 |
2514 | --- |
2515 | - bug_filters_collection_link: u'.../fooix/+subscription/pythons/bug_filters' |
2516 | - date_created: u'...' |
2517 | - date_last_updated: u'...' |
2518 | - resource_type_link: u'http://.../#structural_subscription' |
2519 | - self_link: u'http://.../fooix/+subscription/pythons' |
2520 | - subscribed_by_link: u'http://.../~michael' |
2521 | - subscriber_link: u'http://.../~pythons' |
2522 | - target_link: u'http://.../fooix' |
2523 | + bug_filters_collection_link: '.../fooix/+subscription/pythons/bug_filters' |
2524 | + date_created: '...' |
2525 | + date_last_updated: '...' |
2526 | + resource_type_link: 'http://.../#structural_subscription' |
2527 | + self_link: 'http://.../fooix/+subscription/pythons' |
2528 | + subscribed_by_link: 'http://.../~michael' |
2529 | + subscriber_link: 'http://.../~pythons' |
2530 | + target_link: 'http://.../fooix' |
2531 | --- |
2532 | |
2533 | Eric can't unsubscribe the team either. |
2534 | diff --git a/lib/lp/services/worlddata/stories/webservice/xx-country.txt b/lib/lp/services/worlddata/stories/webservice/xx-country.txt |
2535 | index d2aba2d..30aeaa7 100644 |
2536 | --- a/lib/lp/services/worlddata/stories/webservice/xx-country.txt |
2537 | +++ b/lib/lp/services/worlddata/stories/webservice/xx-country.txt |
2538 | @@ -18,12 +18,12 @@ And for every country we publish most of its attributes. |
2539 | >>> andorra = webservice.get(country['self_link']).jsonBody() |
2540 | >>> pprint_entry(andorra) |
2541 | description: None |
2542 | - iso3166code2: u'AD' |
2543 | - iso3166code3: u'AND' |
2544 | - name: u'Andorra' |
2545 | - resource_type_link: u'http://.../#country' |
2546 | - self_link: u'http://.../+countries/AD' |
2547 | - title: u'Principality of Andorra' |
2548 | + iso3166code2: 'AD' |
2549 | + iso3166code3: 'AND' |
2550 | + name: 'Andorra' |
2551 | + resource_type_link: 'http://.../#country' |
2552 | + self_link: 'http://.../+countries/AD' |
2553 | + title: 'Principality of Andorra' |
2554 | |
2555 | Make sure that invalid countries return 404s and not OOPSes. |
2556 | |
2557 | diff --git a/lib/lp/soyuz/stories/webservice/xx-archive-commercial.txt b/lib/lp/soyuz/stories/webservice/xx-archive-commercial.txt |
2558 | index 005f8d6..f90ee45 100644 |
2559 | --- a/lib/lp/soyuz/stories/webservice/xx-archive-commercial.txt |
2560 | +++ b/lib/lp/soyuz/stories/webservice/xx-archive-commercial.txt |
2561 | @@ -136,16 +136,16 @@ It returns a collection of `ArchiveSubscriber` objects: |
2562 | start: 0 |
2563 | total_size: 1 |
2564 | --- |
2565 | - archive_link: u'http://.../+archive/ubuntu/commercial' |
2566 | + archive_link: 'http://.../+archive/ubuntu/commercial' |
2567 | date_created: ... |
2568 | date_expires: None |
2569 | description: None |
2570 | - registrant_link: u'http://.../~software-center-agent' |
2571 | - resource_type_link: u'http://.../#archive_subscriber' |
2572 | - self_link: u'http://.../+archive/ubuntu/commercial/+subscriptions/joe' |
2573 | - status: u'Active' |
2574 | - subscriber_link: u'http://.../~joe' |
2575 | - web_link: u'http://.../+archive/ubuntu/commercial/+subscriptions/joe' |
2576 | + registrant_link: 'http://.../~software-center-agent' |
2577 | + resource_type_link: 'http://.../#archive_subscriber' |
2578 | + self_link: 'http://.../+archive/ubuntu/commercial/+subscriptions/joe' |
2579 | + status: 'Active' |
2580 | + subscriber_link: 'http://.../~joe' |
2581 | + web_link: 'http://.../+archive/ubuntu/commercial/+subscriptions/joe' |
2582 | --- |
2583 | |
2584 | Additionally to the person itself, the subscriptions can be inspected |
2585 | @@ -168,16 +168,16 @@ and it includes 'commercial-admins' users: |
2586 | start: 0 |
2587 | total_size: 1 |
2588 | --- |
2589 | - archive_link: u'http://.../+archive/ubuntu/commercial' |
2590 | + archive_link: 'http://.../+archive/ubuntu/commercial' |
2591 | date_created: ... |
2592 | date_expires: None |
2593 | description: None |
2594 | - registrant_link: u'http://.../~software-center-agent' |
2595 | - resource_type_link: u'http://.../#archive_subscriber' |
2596 | - self_link: u'http://.../+archive/ubuntu/commercial/+subscriptions/joe' |
2597 | - status: u'Active' |
2598 | - subscriber_link: u'http://.../~joe' |
2599 | - web_link: u'http://.../+archive/ubuntu/commercial/+subscriptions/joe' |
2600 | + registrant_link: 'http://.../~software-center-agent' |
2601 | + resource_type_link: 'http://.../#archive_subscriber' |
2602 | + self_link: 'http://.../+archive/ubuntu/commercial/+subscriptions/joe' |
2603 | + status: 'Active' |
2604 | + subscriber_link: 'http://.../~joe' |
2605 | + web_link: 'http://.../+archive/ubuntu/commercial/+subscriptions/joe' |
2606 | --- |
2607 | |
2608 | Subscription cancellation can be performed by invoking 'cancel' operation |
2609 | diff --git a/lib/lp/soyuz/stories/webservice/xx-archive.txt b/lib/lp/soyuz/stories/webservice/xx-archive.txt |
2610 | index 7acd47c..0b07995 100644 |
2611 | --- a/lib/lp/soyuz/stories/webservice/xx-archive.txt |
2612 | +++ b/lib/lp/soyuz/stories/webservice/xx-archive.txt |
2613 | @@ -18,22 +18,22 @@ We publish a subset of their attributes. |
2614 | >>> pprint_entry(cprov_archive) |
2615 | authorized_size: 1024 |
2616 | dependencies_collection_link: |
2617 | - u'http://.../~cprov/+archive/ubuntu/ppa/dependencies' |
2618 | - description: u'packages to help my friends.' |
2619 | - displayname: u'PPA for Celso Providelo' |
2620 | - distribution_link: u'http://.../ubuntu' |
2621 | + 'http://.../~cprov/+archive/ubuntu/ppa/dependencies' |
2622 | + description: 'packages to help my friends.' |
2623 | + displayname: 'PPA for Celso Providelo' |
2624 | + distribution_link: 'http://.../ubuntu' |
2625 | external_dependencies: None |
2626 | - name: u'ppa' |
2627 | - owner_link: u'http://.../~cprov' |
2628 | + name: 'ppa' |
2629 | + owner_link: 'http://.../~cprov' |
2630 | private: False |
2631 | - reference: u'~cprov/ubuntu/ppa' |
2632 | + reference: '~cprov/ubuntu/ppa' |
2633 | relative_build_score: 0 |
2634 | require_virtualized: True |
2635 | - resource_type_link: u'http://.../#archive' |
2636 | - self_link: u'http://.../~cprov/+archive/ubuntu/ppa' |
2637 | + resource_type_link: 'http://.../#archive' |
2638 | + self_link: 'http://.../~cprov/+archive/ubuntu/ppa' |
2639 | signing_key_fingerprint: None |
2640 | suppress_subscription_notifications: False |
2641 | - web_link: u'http://launchpad.../~cprov/+archive/ubuntu/ppa' |
2642 | + web_link: 'http://launchpad.../~cprov/+archive/ubuntu/ppa' |
2643 | |
2644 | For "devel" additional attributes are available. |
2645 | |
2646 | @@ -42,27 +42,27 @@ For "devel" additional attributes are available. |
2647 | >>> pprint_entry(cprov_archive_devel) |
2648 | authorized_size: 1024 |
2649 | build_debug_symbols: False |
2650 | - dependencies_collection_link: u'http://.../~cprov/+archive/ubuntu/ppa/dependencies' |
2651 | - description: u'packages to help my friends.' |
2652 | - displayname: u'PPA for Celso Providelo' |
2653 | - distribution_link: u'http://.../ubuntu' |
2654 | - enabled_restricted_processors_collection_link: u'http://.../~cprov/+archive/ubuntu/ppa/enabled_restricted_processors' |
2655 | + dependencies_collection_link: 'http://.../~cprov/+archive/ubuntu/ppa/dependencies' |
2656 | + description: 'packages to help my friends.' |
2657 | + displayname: 'PPA for Celso Providelo' |
2658 | + distribution_link: 'http://.../ubuntu' |
2659 | + enabled_restricted_processors_collection_link: 'http://.../~cprov/+archive/ubuntu/ppa/enabled_restricted_processors' |
2660 | external_dependencies: None |
2661 | - name: u'ppa' |
2662 | - owner_link: u'http://.../~cprov' |
2663 | + name: 'ppa' |
2664 | + owner_link: 'http://.../~cprov' |
2665 | permit_obsolete_series_uploads: False |
2666 | private: False |
2667 | - processors_collection_link: u'http://.../~cprov/+archive/ubuntu/ppa/processors' |
2668 | + processors_collection_link: 'http://.../~cprov/+archive/ubuntu/ppa/processors' |
2669 | publish_debug_symbols: False |
2670 | - reference: u'~cprov/ubuntu/ppa' |
2671 | + reference: '~cprov/ubuntu/ppa' |
2672 | relative_build_score: 0 |
2673 | require_virtualized: True |
2674 | - resource_type_link: u'http://.../#archive' |
2675 | - self_link: u'http://.../~cprov/+archive/ubuntu/ppa' |
2676 | + resource_type_link: 'http://.../#archive' |
2677 | + self_link: 'http://.../~cprov/+archive/ubuntu/ppa' |
2678 | signing_key_fingerprint: None |
2679 | - status: u'Active' |
2680 | + status: 'Active' |
2681 | suppress_subscription_notifications: False |
2682 | - web_link: u'http://launchpad.../~cprov/+archive/ubuntu/ppa' |
2683 | + web_link: 'http://launchpad.../~cprov/+archive/ubuntu/ppa' |
2684 | |
2685 | While the Archive signing key is being generated its |
2686 | 'signing_key_fingerprint' attribute is None. |
2687 | @@ -122,22 +122,22 @@ The archive has the following attributes: |
2688 | >>> pprint_entry(ubuntu_main_archive) |
2689 | authorized_size: None |
2690 | dependencies_collection_link: |
2691 | - u'http://.../ubuntutest/+archive/primary/dependencies' |
2692 | + 'http://.../ubuntutest/+archive/primary/dependencies' |
2693 | description: None |
2694 | - displayname: u'Primary Archive for Ubuntu Test' |
2695 | - distribution_link: u'http://.../ubuntutest' |
2696 | + displayname: 'Primary Archive for Ubuntu Test' |
2697 | + distribution_link: 'http://.../ubuntutest' |
2698 | external_dependencies: None |
2699 | - name: u'primary' |
2700 | - owner_link: u'http://.../~ubuntu-team' |
2701 | + name: 'primary' |
2702 | + owner_link: 'http://.../~ubuntu-team' |
2703 | private: False |
2704 | - reference: u'ubuntutest' |
2705 | + reference: 'ubuntutest' |
2706 | relative_build_score: 0 |
2707 | require_virtualized: False |
2708 | - resource_type_link: u'http://.../#archive' |
2709 | - self_link: u'http://.../ubuntutest/+archive/primary' |
2710 | + resource_type_link: 'http://.../#archive' |
2711 | + self_link: 'http://.../ubuntutest/+archive/primary' |
2712 | signing_key_fingerprint: None |
2713 | suppress_subscription_notifications: False |
2714 | - web_link: u'http://launchpad.../ubuntutest/+archive/primary' |
2715 | + web_link: 'http://launchpad.../ubuntutest/+archive/primary' |
2716 | |
2717 | A distribution can also provide a list of all its archives: |
2718 | |
2719 | @@ -175,14 +175,14 @@ This is a permission that allows a team to upload to a component: |
2720 | ... '?type=component&item=main') |
2721 | >>> ubuntu_main_permission = webservice.get(url).jsonBody() |
2722 | >>> pprint_entry(ubuntu_main_permission) |
2723 | - archive_link: u'http://.../ubuntu/+archive/primary' |
2724 | - component_name: u'main' |
2725 | + archive_link: 'http://.../ubuntu/+archive/primary' |
2726 | + component_name: 'main' |
2727 | date_created: ... |
2728 | - permission: u'Archive Upload Rights' |
2729 | - person_link: u'http://.../~ubuntu-team' |
2730 | + permission: 'Archive Upload Rights' |
2731 | + person_link: 'http://.../~ubuntu-team' |
2732 | pocket: None |
2733 | resource_type_link: ... |
2734 | - self_link: u'http://.../ubuntu/+archive/primary/+upload/ubuntu-team?type=component&item=main' |
2735 | + self_link: 'http://.../ubuntu/+archive/primary/+upload/ubuntu-team?type=component&item=main' |
2736 | source_package_name: None |
2737 | |
2738 | This is a permission that allows an individual to upload a source package. |
2739 | @@ -191,16 +191,16 @@ This is a permission that allows an individual to upload a source package. |
2740 | ... '?type=packagename&item=mozilla-firefox') |
2741 | >>> carlos_mozilla_permission = webservice.get(url).jsonBody() |
2742 | >>> pprint_entry(carlos_mozilla_permission) |
2743 | - archive_link: u'http://.../ubuntu/+archive/primary' |
2744 | + archive_link: 'http://.../ubuntu/+archive/primary' |
2745 | component_name: None |
2746 | date_created: ... |
2747 | - permission: u'Archive Upload Rights' |
2748 | - person_link: u'http://.../~carlos' |
2749 | + permission: 'Archive Upload Rights' |
2750 | + person_link: 'http://.../~carlos' |
2751 | pocket: None |
2752 | resource_type_link: ... |
2753 | self_link: |
2754 | - u'http://.../ubuntu/+archive/primary/+upload/carlos?type=packagename&item=mozilla-firefox' |
2755 | - source_package_name: u'mozilla-firefox' |
2756 | + 'http://.../ubuntu/+archive/primary/+upload/carlos?type=packagename&item=mozilla-firefox' |
2757 | + source_package_name: 'mozilla-firefox' |
2758 | |
2759 | This is a queue admin right for ubuntu-team: |
2760 | |
2761 | @@ -208,15 +208,15 @@ This is a queue admin right for ubuntu-team: |
2762 | ... '?type=component&item=main') |
2763 | >>> ubuntu_main_permission = webservice.get(url).jsonBody() |
2764 | >>> pprint_entry(ubuntu_main_permission) |
2765 | - archive_link: u'http://.../ubuntu/+archive/primary' |
2766 | - component_name: u'main' |
2767 | + archive_link: 'http://.../ubuntu/+archive/primary' |
2768 | + component_name: 'main' |
2769 | date_created: ... |
2770 | - permission: u'Queue Administration Rights' |
2771 | - person_link: u'http://.../~ubuntu-team' |
2772 | + permission: 'Queue Administration Rights' |
2773 | + person_link: 'http://.../~ubuntu-team' |
2774 | pocket: None |
2775 | resource_type_link: ... |
2776 | self_link: |
2777 | - u'http://.../ubuntu/+archive/primary/+queue-admin/ubuntu-team?type=component&item=main' |
2778 | + 'http://.../ubuntu/+archive/primary/+queue-admin/ubuntu-team?type=component&item=main' |
2779 | source_package_name: None |
2780 | |
2781 | And one for an individual: |
2782 | @@ -225,15 +225,15 @@ And one for an individual: |
2783 | ... '?type=component&item=universe') |
2784 | >>> name16_admin_permission = webservice.get(url).jsonBody() |
2785 | >>> pprint_entry(name16_admin_permission) |
2786 | - archive_link: u'http://.../ubuntu/+archive/primary' |
2787 | - component_name: u'universe' |
2788 | + archive_link: 'http://.../ubuntu/+archive/primary' |
2789 | + component_name: 'universe' |
2790 | date_created: ... |
2791 | - permission: u'Queue Administration Rights' |
2792 | - person_link: u'http://.../~name12' |
2793 | + permission: 'Queue Administration Rights' |
2794 | + person_link: 'http://.../~name12' |
2795 | pocket: None |
2796 | resource_type_link: ... |
2797 | self_link: |
2798 | - u'http://.../ubuntu/+archive/primary/+queue-admin/name12?type=component&item=universe' |
2799 | + 'http://.../ubuntu/+archive/primary/+queue-admin/name12?type=component&item=universe' |
2800 | source_package_name: None |
2801 | |
2802 | |
2803 | @@ -1191,44 +1191,44 @@ attributes are only exposed when the requestor has View permission in |
2804 | the IArchive context, in this case only Celso has it. |
2805 | |
2806 | >>> pprint_entry(user_webservice.get("/~cprov/+archive/ubuntu/p3a").jsonBody()) |
2807 | - authorized_size: u'tag:launchpad.net:2008:redacted' |
2808 | + authorized_size: 'tag:launchpad.net:2008:redacted' |
2809 | dependencies_collection_link: |
2810 | - u'http://.../~cprov/+archive/ubuntu/p3a/dependencies' |
2811 | - description: u'tag:launchpad.net:2008:redacted' |
2812 | - displayname: u'PPA named p3a for Celso Providelo' |
2813 | - distribution_link: u'http://.../ubuntu' |
2814 | - external_dependencies: u'tag:launchpad.net:2008:redacted' |
2815 | - name: u'p3a' |
2816 | - owner_link: u'http://.../~cprov' |
2817 | + 'http://.../~cprov/+archive/ubuntu/p3a/dependencies' |
2818 | + description: 'tag:launchpad.net:2008:redacted' |
2819 | + displayname: 'PPA named p3a for Celso Providelo' |
2820 | + distribution_link: 'http://.../ubuntu' |
2821 | + external_dependencies: 'tag:launchpad.net:2008:redacted' |
2822 | + name: 'p3a' |
2823 | + owner_link: 'http://.../~cprov' |
2824 | private: True |
2825 | - reference: u'~cprov/ubuntu/p3a' |
2826 | + reference: '~cprov/ubuntu/p3a' |
2827 | relative_build_score: 0 |
2828 | - require_virtualized: u'tag:launchpad.net:2008:redacted' |
2829 | - resource_type_link: u'http://.../#archive' |
2830 | - self_link: u'http://.../~cprov/+archive/ubuntu/p3a' |
2831 | - signing_key_fingerprint: u'tag:launchpad.net:2008:redacted' |
2832 | + require_virtualized: 'tag:launchpad.net:2008:redacted' |
2833 | + resource_type_link: 'http://.../#archive' |
2834 | + self_link: 'http://.../~cprov/+archive/ubuntu/p3a' |
2835 | + signing_key_fingerprint: 'tag:launchpad.net:2008:redacted' |
2836 | suppress_subscription_notifications: False |
2837 | - web_link: u'http://launchpad.../~cprov/+archive/ubuntu/p3a' |
2838 | + web_link: 'http://launchpad.../~cprov/+archive/ubuntu/p3a' |
2839 | |
2840 | >>> pprint_entry(cprov_webservice.get("/~cprov/+archive/ubuntu/p3a").jsonBody()) |
2841 | authorized_size: 2048 |
2842 | dependencies_collection_link: |
2843 | - u'http://.../~cprov/+archive/ubuntu/p3a/dependencies' |
2844 | - description: u'packages to help my friends.' |
2845 | - displayname: u'PPA named p3a for Celso Providelo' |
2846 | - distribution_link: u'http://.../ubuntu' |
2847 | + 'http://.../~cprov/+archive/ubuntu/p3a/dependencies' |
2848 | + description: 'packages to help my friends.' |
2849 | + displayname: 'PPA named p3a for Celso Providelo' |
2850 | + distribution_link: 'http://.../ubuntu' |
2851 | external_dependencies: None |
2852 | - name: u'p3a' |
2853 | - owner_link: u'http://.../~cprov' |
2854 | + name: 'p3a' |
2855 | + owner_link: 'http://.../~cprov' |
2856 | private: True |
2857 | - reference: u'~cprov/ubuntu/p3a' |
2858 | + reference: '~cprov/ubuntu/p3a' |
2859 | relative_build_score: 0 |
2860 | require_virtualized: True |
2861 | - resource_type_link: u'http://.../#archive' |
2862 | - self_link: u'http://.../~cprov/+archive/ubuntu/p3a' |
2863 | - signing_key_fingerprint: u'ABCDEF0123456789ABCDDCBA0000111112345678' |
2864 | + resource_type_link: 'http://.../#archive' |
2865 | + self_link: 'http://.../~cprov/+archive/ubuntu/p3a' |
2866 | + signing_key_fingerprint: 'ABCDEF0123456789ABCDDCBA0000111112345678' |
2867 | suppress_subscription_notifications: False |
2868 | - web_link: u'http://launchpad.../~cprov/+archive/ubuntu/p3a' |
2869 | + web_link: 'http://launchpad.../~cprov/+archive/ubuntu/p3a' |
2870 | |
2871 | Creating subscriptions to a (private) archive |
2872 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
2873 | @@ -1277,16 +1277,16 @@ We publish a subset of the IArchiveSubscriber attributes. |
2874 | >>> new_subscription = cprov_webservice.get( |
2875 | ... response.getHeader('Location')).jsonBody() |
2876 | >>> pprint_entry(new_subscription) |
2877 | - archive_link: u'http://api.launchpad.test/beta/~cprov/+archive/ubuntu/p3a' |
2878 | + archive_link: 'http://api.launchpad.test/beta/~cprov/+archive/ubuntu/p3a' |
2879 | date_created: ... |
2880 | date_expires: None |
2881 | description: None |
2882 | - registrant_link: u'http://api.launchpad.test/beta/~cprov' |
2883 | - resource_type_link: u'http://api.launchpad.test/beta/#archive_subscriber' |
2884 | - self_link: u'http://api.../~cprov/+archive/ubuntu/p3a/+subscriptions/mark' |
2885 | - status: u'Active' |
2886 | - subscriber_link: u'http://api.launchpad.test/beta/~mark' |
2887 | - web_link: u'http://launchpad.../~cprov/+archive/ubuntu/p3a/+subscriptions/mark' |
2888 | + registrant_link: 'http://api.launchpad.test/beta/~cprov' |
2889 | + resource_type_link: 'http://api.launchpad.test/beta/#archive_subscriber' |
2890 | + self_link: 'http://api.../~cprov/+archive/ubuntu/p3a/+subscriptions/mark' |
2891 | + status: 'Active' |
2892 | + subscriber_link: 'http://api.launchpad.test/beta/~mark' |
2893 | + web_link: 'http://launchpad.../~cprov/+archive/ubuntu/p3a/+subscriptions/mark' |
2894 | |
2895 | Other webservice users cannot view the subscription. |
2896 | |
2897 | @@ -1448,14 +1448,14 @@ attributes. |
2898 | ... '/~cprov/+archive/ubuntu/ppa', 'getArchiveDependency', |
2899 | ... dependency=ubuntu['main_archive_link']).jsonBody() |
2900 | >>> pprint_entry(cprov_main_dependency) |
2901 | - archive_link: u'http://.../~cprov/+archive/ubuntu/ppa' |
2902 | - component_name: u'universe' |
2903 | + archive_link: 'http://.../~cprov/+archive/ubuntu/ppa' |
2904 | + component_name: 'universe' |
2905 | date_created: ... |
2906 | - dependency_link: u'http://.../ubuntu/+archive/primary' |
2907 | - pocket: u'Release' |
2908 | - resource_type_link: u'http://.../#archive_dependency' |
2909 | - self_link: u'http://.../~cprov/+archive/ubuntu/ppa/+dependency/1' |
2910 | - title: u'Primary Archive for Ubuntu Linux - RELEASE (main, universe)' |
2911 | + dependency_link: 'http://.../ubuntu/+archive/primary' |
2912 | + pocket: 'Release' |
2913 | + resource_type_link: 'http://.../#archive_dependency' |
2914 | + self_link: 'http://.../~cprov/+archive/ubuntu/ppa/+dependency/1' |
2915 | + title: 'Primary Archive for Ubuntu Linux - RELEASE (main, universe)' |
2916 | |
2917 | Asking for an archive on which there is no dependency returns None. |
2918 | |
2919 | diff --git a/lib/lp/soyuz/stories/webservice/xx-binary-package-publishing.txt b/lib/lp/soyuz/stories/webservice/xx-binary-package-publishing.txt |
2920 | index 0d04c43..2b0fc7d 100644 |
2921 | --- a/lib/lp/soyuz/stories/webservice/xx-binary-package-publishing.txt |
2922 | +++ b/lib/lp/soyuz/stories/webservice/xx-binary-package-publishing.txt |
2923 | @@ -66,30 +66,30 @@ Each binary publication exposes a number of properties: |
2924 | >>> from lazr.restful.testing.webservice import pprint_entry |
2925 | >>> pprint_entry(pubs['entries'][0]) |
2926 | architecture_specific: True |
2927 | - archive_link: u'http://.../~cprov/+archive/ubuntu/ppa' |
2928 | - binary_package_name: u'mozilla-firefox' |
2929 | - binary_package_version: u'1.0' |
2930 | - build_link: u'http://.../~cprov/+archive/ubuntu/ppa/+build/28' |
2931 | - component_name: u'main' |
2932 | + archive_link: 'http://.../~cprov/+archive/ubuntu/ppa' |
2933 | + binary_package_name: 'mozilla-firefox' |
2934 | + binary_package_version: '1.0' |
2935 | + build_link: 'http://.../~cprov/+archive/ubuntu/ppa/+build/28' |
2936 | + component_name: 'main' |
2937 | copied_from_archive_link: None |
2938 | creator_link: None |
2939 | - date_created: u'2007-08-10T13:00:00+00:00' |
2940 | + date_created: '2007-08-10T13:00:00+00:00' |
2941 | date_made_pending: None |
2942 | - date_published: u'2007-08-10T13:00:01+00:00' |
2943 | + date_published: '2007-08-10T13:00:01+00:00' |
2944 | date_removed: None |
2945 | date_superseded: None |
2946 | - display_name: u'mozilla-firefox 1.0 in warty hppa' |
2947 | - distro_arch_series_link: u'http://.../ubuntu/warty/hppa' |
2948 | + display_name: 'mozilla-firefox 1.0 in warty hppa' |
2949 | + distro_arch_series_link: 'http://.../ubuntu/warty/hppa' |
2950 | phased_update_percentage: None |
2951 | - pocket: u'Release' |
2952 | - priority_name: u'IMPORTANT' |
2953 | + pocket: 'Release' |
2954 | + priority_name: 'IMPORTANT' |
2955 | removal_comment: None |
2956 | removed_by_link: None |
2957 | - resource_type_link: u'http://.../#binary_package_publishing_history' |
2958 | + resource_type_link: 'http://.../#binary_package_publishing_history' |
2959 | scheduled_deletion_date: None |
2960 | - section_name: u'base' |
2961 | - self_link: u'http://.../~cprov/+archive/ubuntu/ppa/+binarypub/30' |
2962 | - status: u'Published' |
2963 | + section_name: 'base' |
2964 | + self_link: 'http://.../~cprov/+archive/ubuntu/ppa/+binarypub/30' |
2965 | + status: 'Published' |
2966 | |
2967 | |
2968 | Security |
2969 | @@ -186,14 +186,14 @@ Detailed download counts are also available from the getDownloadCounts method. |
2970 | A detailed count object can be retrieved by its URL. |
2971 | |
2972 | >>> pprint_entry(webservice.get(counts[1]['self_link']).jsonBody()) |
2973 | - archive_link: u'http://.../~cprov/+archive/ubuntu/ppa' |
2974 | - binary_package_name: u'mozilla-firefox' |
2975 | - binary_package_version: u'1.0' |
2976 | + archive_link: 'http://.../~cprov/+archive/ubuntu/ppa' |
2977 | + binary_package_name: 'mozilla-firefox' |
2978 | + binary_package_version: '1.0' |
2979 | count: 10 |
2980 | - country_link: u'http://.../+countries/AU' |
2981 | - day: u'2010-02-21' |
2982 | - resource_type_link: u'http://.../#binary_package_release_download_count' |
2983 | - self_link: u'http://.../~cprov/+archive/ubuntu/ppa/+binaryhits/mozilla-firefox/1.0/hppa/2010-02-21/AU' |
2984 | + country_link: 'http://.../+countries/AU' |
2985 | + day: '2010-02-21' |
2986 | + resource_type_link: 'http://.../#binary_package_release_download_count' |
2987 | + self_link: 'http://.../~cprov/+archive/ubuntu/ppa/+binaryhits/mozilla-firefox/1.0/hppa/2010-02-21/AU' |
2988 | |
2989 | We can also filter by date. |
2990 | |
2991 | @@ -204,14 +204,14 @@ We can also filter by date. |
2992 | 1 |
2993 | |
2994 | >>> pprint_entry(webservice.get(counts[0]['self_link']).jsonBody()) |
2995 | - archive_link: u'http://.../~cprov/+archive/ubuntu/ppa' |
2996 | - binary_package_name: u'mozilla-firefox' |
2997 | - binary_package_version: u'1.0' |
2998 | + archive_link: 'http://.../~cprov/+archive/ubuntu/ppa' |
2999 | + binary_package_name: 'mozilla-firefox' |
3000 | + binary_package_version: '1.0' |
3001 | count: 8 |
3002 | country_link: None |
3003 | - day: u'2010-02-23' |
3004 | - resource_type_link: u'http://.../#binary_package_release_download_count' |
3005 | - self_link: u'http://.../~cprov/+archive/ubuntu/ppa/+binaryhits/mozilla-firefox/1.0/hppa/2010-02-23/unknown' |
3006 | + day: '2010-02-23' |
3007 | + resource_type_link: 'http://.../#binary_package_release_download_count' |
3008 | + self_link: 'http://.../~cprov/+archive/ubuntu/ppa/+binaryhits/mozilla-firefox/1.0/hppa/2010-02-23/unknown' |
3009 | |
3010 | But other URLs result in a 404. |
3011 | |
3012 | diff --git a/lib/lp/soyuz/stories/webservice/xx-builds.txt b/lib/lp/soyuz/stories/webservice/xx-builds.txt |
3013 | index 78f3b97..b337f66 100644 |
3014 | --- a/lib/lp/soyuz/stories/webservice/xx-builds.txt |
3015 | +++ b/lib/lp/soyuz/stories/webservice/xx-builds.txt |
3016 | @@ -43,32 +43,32 @@ of properties: |
3017 | |
3018 | >>> from lazr.restful.testing.webservice import pprint_entry |
3019 | >>> pprint_entry(builds['entries'][0]) |
3020 | - arch_tag: u'i386' |
3021 | - archive_link: u'http://.../beta/~cprov/+archive/ubuntu/ppa' |
3022 | - builder_link: u'http://.../beta/builders/bob' |
3023 | + arch_tag: 'i386' |
3024 | + archive_link: 'http://.../beta/~cprov/+archive/ubuntu/ppa' |
3025 | + builder_link: 'http://.../beta/builders/bob' |
3026 | can_be_cancelled: False |
3027 | can_be_rescored: False |
3028 | can_be_retried: True |
3029 | changesfile_url: None |
3030 | current_source_publication_link: |
3031 | - u'http://.../beta/~cprov/+archive/ubuntu/ppa/+sourcepub/27' |
3032 | - date_created: u'2007-07-08T00:00:00+00:00' |
3033 | - date_finished: u'2007-07-08T00:00:01+00:00' |
3034 | + 'http://.../beta/~cprov/+archive/ubuntu/ppa/+sourcepub/27' |
3035 | + date_created: '2007-07-08T00:00:00+00:00' |
3036 | + date_finished: '2007-07-08T00:00:01+00:00' |
3037 | date_first_dispatched: None |
3038 | dependencies: None |
3039 | - distribution_link: u'http://.../beta/ubuntu' |
3040 | + distribution_link: 'http://.../beta/ubuntu' |
3041 | log_url: |
3042 | - u'http://.../~cprov/+archive/ubuntu/ppa/+build/26/+files/netapplet-1.0.0.tar.gz' |
3043 | - pocket: u'Release' |
3044 | - resource_type_link: u'http://api.launchpad.test/beta/#build' |
3045 | + 'http://.../~cprov/+archive/ubuntu/ppa/+build/26/+files/netapplet-1.0.0.tar.gz' |
3046 | + pocket: 'Release' |
3047 | + resource_type_link: 'http://api.launchpad.test/beta/#build' |
3048 | score: None |
3049 | - self_link: u'http://api.launchpad.test/beta/~cprov/+archive/ubuntu/ppa/+build/26' |
3050 | - source_package_name: u'cdrkit' |
3051 | - source_package_version: u'1.0' |
3052 | - status: u'Failed to build' |
3053 | - title: u'i386 build of cdrkit 1.0 in ubuntu breezy-autotest RELEASE' |
3054 | + self_link: 'http://api.launchpad.test/beta/~cprov/+archive/ubuntu/ppa/+build/26' |
3055 | + source_package_name: 'cdrkit' |
3056 | + source_package_version: '1.0' |
3057 | + status: 'Failed to build' |
3058 | + title: 'i386 build of cdrkit 1.0 in ubuntu breezy-autotest RELEASE' |
3059 | upload_log_url: None |
3060 | - web_link: u'http://launchpad.../~cprov/+archive/ubuntu/ppa/+build/26' |
3061 | + web_link: 'http://launchpad.../~cprov/+archive/ubuntu/ppa/+build/26' |
3062 | |
3063 | Whereas the 1.0 webservice for builds maintains the old property names |
3064 | (without underscores): |
3065 | @@ -76,67 +76,67 @@ Whereas the 1.0 webservice for builds maintains the old property names |
3066 | >>> builds_1_0 = webservice.named_get( |
3067 | ... source_pub['self_link'].replace('beta', '1.0'), 'getBuilds') |
3068 | >>> pprint_entry(builds_1_0.jsonBody()['entries'][0]) |
3069 | - arch_tag: u'i386' |
3070 | - archive_link: u'http://.../~cprov/+archive/ubuntu/ppa' |
3071 | + arch_tag: 'i386' |
3072 | + archive_link: 'http://.../~cprov/+archive/ubuntu/ppa' |
3073 | build_log_url: |
3074 | - u'http://.../~cprov/+archive/ubuntu/ppa/+build/26/+files/netapplet-1.0.0.tar.gz' |
3075 | - builder_link: u'http://.../builders/bob' |
3076 | - buildstate: u'Failed to build' |
3077 | + 'http://.../~cprov/+archive/ubuntu/ppa/+build/26/+files/netapplet-1.0.0.tar.gz' |
3078 | + builder_link: 'http://.../builders/bob' |
3079 | + buildstate: 'Failed to build' |
3080 | can_be_cancelled: False |
3081 | can_be_rescored: False |
3082 | can_be_retried: True |
3083 | changesfile_url: None |
3084 | current_source_publication_link: |
3085 | - u'http://.../~cprov/+archive/ubuntu/ppa/+sourcepub/27' |
3086 | + 'http://.../~cprov/+archive/ubuntu/ppa/+sourcepub/27' |
3087 | date_first_dispatched: None |
3088 | - datebuilt: u'2007-07-08T00:00:01+00:00' |
3089 | - datecreated: u'2007-07-08T00:00:00+00:00' |
3090 | + datebuilt: '2007-07-08T00:00:01+00:00' |
3091 | + datecreated: '2007-07-08T00:00:00+00:00' |
3092 | dependencies: None |
3093 | - distribution_link: u'http://.../ubuntu' |
3094 | - pocket: u'Release' |
3095 | - resource_type_link: u'http://.../#build' |
3096 | + distribution_link: 'http://.../ubuntu' |
3097 | + pocket: 'Release' |
3098 | + resource_type_link: 'http://.../#build' |
3099 | score: None |
3100 | - self_link: u'http://.../~cprov/+archive/ubuntu/ppa/+build/26' |
3101 | - source_package_name: u'cdrkit' |
3102 | - source_package_version: u'1.0' |
3103 | - title: u'i386 build of cdrkit 1.0 in ubuntu breezy-autotest RELEASE' |
3104 | + self_link: 'http://.../~cprov/+archive/ubuntu/ppa/+build/26' |
3105 | + source_package_name: 'cdrkit' |
3106 | + source_package_version: '1.0' |
3107 | + title: 'i386 build of cdrkit 1.0 in ubuntu breezy-autotest RELEASE' |
3108 | upload_log_url: None |
3109 | - web_link: u'http://launchpad.../~cprov/+archive/ubuntu/ppa/+build/26' |
3110 | + web_link: 'http://launchpad.../~cprov/+archive/ubuntu/ppa/+build/26' |
3111 | |
3112 | devel webservice also contains build date_started and duration. |
3113 | |
3114 | >>> builds_devel = webservice.named_get( |
3115 | ... source_pub['self_link'].replace('beta', 'devel'), 'getBuilds') |
3116 | >>> pprint_entry(builds_devel.jsonBody()['entries'][0]) |
3117 | - arch_tag: u'i386' |
3118 | - archive_link: u'http://.../~cprov/+archive/ubuntu/ppa' |
3119 | + arch_tag: 'i386' |
3120 | + archive_link: 'http://.../~cprov/+archive/ubuntu/ppa' |
3121 | build_log_url: |
3122 | - u'http://.../~cprov/+archive/ubuntu/ppa/+build/26/+files/netapplet-1.0.0.tar.gz' |
3123 | - builder_link: u'http://.../builders/bob' |
3124 | - buildstate: u'Failed to build' |
3125 | + 'http://.../~cprov/+archive/ubuntu/ppa/+build/26/+files/netapplet-1.0.0.tar.gz' |
3126 | + builder_link: 'http://.../builders/bob' |
3127 | + buildstate: 'Failed to build' |
3128 | can_be_cancelled: False |
3129 | can_be_rescored: False |
3130 | can_be_retried: True |
3131 | changesfile_url: None |
3132 | current_source_publication_link: |
3133 | - u'http://.../~cprov/+archive/ubuntu/ppa/+sourcepub/27' |
3134 | + 'http://.../~cprov/+archive/ubuntu/ppa/+sourcepub/27' |
3135 | date_first_dispatched: None |
3136 | - date_started: u'2007-07-07T23:58:41+00:00' |
3137 | - datebuilt: u'2007-07-08T00:00:01+00:00' |
3138 | - datecreated: u'2007-07-08T00:00:00+00:00' |
3139 | + date_started: '2007-07-07T23:58:41+00:00' |
3140 | + datebuilt: '2007-07-08T00:00:01+00:00' |
3141 | + datecreated: '2007-07-08T00:00:00+00:00' |
3142 | dependencies: None |
3143 | - distribution_link: u'http://.../ubuntu' |
3144 | - duration: u'0:01:20' |
3145 | + distribution_link: 'http://.../ubuntu' |
3146 | + duration: '0:01:20' |
3147 | external_dependencies: None |
3148 | - pocket: u'Release' |
3149 | - resource_type_link: u'http://.../#build' |
3150 | + pocket: 'Release' |
3151 | + resource_type_link: 'http://.../#build' |
3152 | score: None |
3153 | - self_link: u'http://.../~cprov/+archive/ubuntu/ppa/+build/26' |
3154 | - source_package_name: u'cdrkit' |
3155 | - source_package_version: u'1.0' |
3156 | - title: u'i386 build of cdrkit 1.0 in ubuntu breezy-autotest RELEASE' |
3157 | + self_link: 'http://.../~cprov/+archive/ubuntu/ppa/+build/26' |
3158 | + source_package_name: 'cdrkit' |
3159 | + source_package_version: '1.0' |
3160 | + title: 'i386 build of cdrkit 1.0 in ubuntu breezy-autotest RELEASE' |
3161 | upload_log_url: None |
3162 | - web_link: u'http://launchpad.../~cprov/+archive/ubuntu/ppa/+build/26' |
3163 | + web_link: 'http://launchpad.../~cprov/+archive/ubuntu/ppa/+build/26' |
3164 | |
3165 | |
3166 | For testing purposes we will set 'buildlog' and 'upload_log' to the |
3167 | diff --git a/lib/lp/soyuz/stories/webservice/xx-distroarchseries.txt b/lib/lp/soyuz/stories/webservice/xx-distroarchseries.txt |
3168 | index f094a17..a2a320b 100644 |
3169 | --- a/lib/lp/soyuz/stories/webservice/xx-distroarchseries.txt |
3170 | +++ b/lib/lp/soyuz/stories/webservice/xx-distroarchseries.txt |
3171 | @@ -34,21 +34,21 @@ For a distroarchseries we publish a subset of its attributes. |
3172 | |
3173 | >>> from lazr.restful.testing.webservice import pprint_entry |
3174 | >>> pprint_entry(distroarchseries) |
3175 | - architecture_tag: u'i386' |
3176 | - chroot_url: u'http://.../.../filename...' |
3177 | - display_name: u'Ubuntu Hoary i386' |
3178 | - distroseries_link: u'http://.../ubuntu/hoary' |
3179 | + architecture_tag: 'i386' |
3180 | + chroot_url: 'http://.../.../filename...' |
3181 | + display_name: 'Ubuntu Hoary i386' |
3182 | + distroseries_link: 'http://.../ubuntu/hoary' |
3183 | is_nominated_arch_indep: True |
3184 | - main_archive_link: u'http://.../ubuntu/+archive/primary' |
3185 | + main_archive_link: 'http://.../ubuntu/+archive/primary' |
3186 | official: True |
3187 | - owner_link: u'http://.../~mark' |
3188 | + owner_link: 'http://.../~mark' |
3189 | package_count: 1 |
3190 | - processor_link: u'http://.../+processors/386' |
3191 | - resource_type_link: u'http://.../#distro_arch_series' |
3192 | - self_link: u'http://.../ubuntu/hoary/i386' |
3193 | + processor_link: 'http://.../+processors/386' |
3194 | + resource_type_link: 'http://.../#distro_arch_series' |
3195 | + self_link: 'http://.../ubuntu/hoary/i386' |
3196 | supports_virtualized: True |
3197 | - title: u'The Hoary Hedgehog Release for i386 (386)' |
3198 | - web_link: u'http://launchpad.../ubuntu/hoary/i386' |
3199 | + title: 'The Hoary Hedgehog Release for i386 (386)' |
3200 | + web_link: 'http://launchpad.../ubuntu/hoary/i386' |
3201 | |
3202 | DistroArchSeries.enabled is published in the API devel version. |
3203 | |
3204 | @@ -56,19 +56,19 @@ DistroArchSeries.enabled is published in the API devel version. |
3205 | ... "/ubuntu/hoary/i386", api_version='devel').jsonBody() |
3206 | |
3207 | >>> pprint_entry(distroarchseries) |
3208 | - architecture_tag: u'i386' |
3209 | - chroot_url: u'http://.../.../filename...' |
3210 | - display_name: u'Ubuntu Hoary i386' |
3211 | - distroseries_link: u'http://.../ubuntu/hoary' |
3212 | + architecture_tag: 'i386' |
3213 | + chroot_url: 'http://.../.../filename...' |
3214 | + display_name: 'Ubuntu Hoary i386' |
3215 | + distroseries_link: 'http://.../ubuntu/hoary' |
3216 | enabled: True |
3217 | is_nominated_arch_indep: True |
3218 | - main_archive_link: u'http://.../ubuntu/+archive/primary' |
3219 | + main_archive_link: 'http://.../ubuntu/+archive/primary' |
3220 | official: True |
3221 | - owner_link: u'http://.../~mark' |
3222 | + owner_link: 'http://.../~mark' |
3223 | package_count: 1 |
3224 | - processor_link: u'http://.../+processors/386' |
3225 | - resource_type_link: u'http://.../#distro_arch_series' |
3226 | - self_link: u'http://.../ubuntu/hoary/i386' |
3227 | + processor_link: 'http://.../+processors/386' |
3228 | + resource_type_link: 'http://.../#distro_arch_series' |
3229 | + self_link: 'http://.../ubuntu/hoary/i386' |
3230 | supports_virtualized: True |
3231 | - title: u'The Hoary Hedgehog Release for i386 (386)' |
3232 | - web_link: u'http://launchpad.../ubuntu/hoary/i386' |
3233 | + title: 'The Hoary Hedgehog Release for i386 (386)' |
3234 | + web_link: 'http://launchpad.../ubuntu/hoary/i386' |
3235 | diff --git a/lib/lp/soyuz/stories/webservice/xx-hasbuildrecords.txt b/lib/lp/soyuz/stories/webservice/xx-hasbuildrecords.txt |
3236 | index 228d20a..3246cca 100644 |
3237 | --- a/lib/lp/soyuz/stories/webservice/xx-hasbuildrecords.txt |
3238 | +++ b/lib/lp/soyuz/stories/webservice/xx-hasbuildrecords.txt |
3239 | @@ -44,9 +44,9 @@ An entry can be selected in the returned collection. |
3240 | |
3241 | >>> from lazr.restful.testing.webservice import pprint_entry |
3242 | >>> pprint_entry(sorted(ppa_builds['entries'])[0]) |
3243 | - arch_tag: u'hppa' |
3244 | + arch_tag: 'hppa' |
3245 | ... |
3246 | - title: u'hppa build of mozilla-firefox 0.9 in ubuntu warty RELEASE' |
3247 | + title: 'hppa build of mozilla-firefox 0.9 in ubuntu warty RELEASE' |
3248 | ... |
3249 | |
3250 | Builds can be filtered by their 'build_state'. |
3251 | diff --git a/lib/lp/soyuz/stories/webservice/xx-packageset.txt b/lib/lp/soyuz/stories/webservice/xx-packageset.txt |
3252 | index 3f20395..5622b17 100644 |
3253 | --- a/lib/lp/soyuz/stories/webservice/xx-packageset.txt |
3254 | +++ b/lib/lp/soyuz/stories/webservice/xx-packageset.txt |
3255 | @@ -594,16 +594,16 @@ Let's see what we've got: |
3256 | >>> new_permission = webservice.get( |
3257 | ... response.getHeader('Location')).jsonBody() |
3258 | >>> pprint_entry(new_permission) |
3259 | - archive_link: u'http://.../+archive/primary' |
3260 | + archive_link: 'http://.../+archive/primary' |
3261 | component_name: None |
3262 | date_created: ... |
3263 | explicit: False |
3264 | - package_set_name: u'firefox' |
3265 | - permission: u'Archive Upload Rights' |
3266 | - person_link: u'http://.../~name12' |
3267 | + package_set_name: 'firefox' |
3268 | + permission: 'Archive Upload Rights' |
3269 | + person_link: 'http://.../~name12' |
3270 | pocket: None |
3271 | resource_type_link: ... |
3272 | - self_link: u'http://.../+archive/primary/+upload/name12?type=packageset&item=firefox&series=hoary' |
3273 | + self_link: 'http://.../+archive/primary/+upload/name12?type=packageset&item=firefox&series=hoary' |
3274 | source_package_name: None |
3275 | |
3276 | Grant upload privileges to 'name12' for package set 'mozilla' in the Ubuntu |
3277 | @@ -915,11 +915,11 @@ The user 'cprov' has no upload permission for 'thunderbird' in 'hoary'. |
3278 | ... '?type=packageset&item=thunderbird&series=hoary') |
3279 | >>> permission = webservice.get(url).jsonBody() |
3280 | >>> pprint_entry(permission) |
3281 | - archive_link: u'http://api.launchpad.test/beta/ubuntu/+archive/primary' |
3282 | + archive_link: 'http://api.launchpad.test/beta/ubuntu/+archive/primary' |
3283 | ... |
3284 | - distro_series_name: u'hoary' |
3285 | + distro_series_name: 'hoary' |
3286 | ... |
3287 | - package_set_name: u'thunderbird' |
3288 | - permission: u'Archive Upload Rights' |
3289 | - person_link: u'http://api.launchpad.test/beta/~cprov' |
3290 | + package_set_name: 'thunderbird' |
3291 | + permission: 'Archive Upload Rights' |
3292 | + person_link: 'http://api.launchpad.test/beta/~cprov' |
3293 | ... |
3294 | diff --git a/lib/lp/soyuz/stories/webservice/xx-packageupload.txt b/lib/lp/soyuz/stories/webservice/xx-packageupload.txt |
3295 | index f01a270..e88c342 100644 |
3296 | --- a/lib/lp/soyuz/stories/webservice/xx-packageupload.txt |
3297 | +++ b/lib/lp/soyuz/stories/webservice/xx-packageupload.txt |
3298 | @@ -18,19 +18,19 @@ Each record exposes a number of properties. |
3299 | |
3300 | >>> from lazr.restful.testing.webservice import pprint_entry |
3301 | >>> pprint_entry(uploads['entries'][0]) |
3302 | - archive_link: u'http://.../ubuntu/+archive/primary' |
3303 | + archive_link: 'http://.../ubuntu/+archive/primary' |
3304 | copy_source_archive_link: None |
3305 | custom_file_urls: [] |
3306 | date_created: ... |
3307 | - display_arches: u'source' |
3308 | - display_name: u'mozilla-firefox' |
3309 | - display_version: u'0.9' |
3310 | - distroseries_link: u'http://.../ubuntu/warty' |
3311 | + display_arches: 'source' |
3312 | + display_name: 'mozilla-firefox' |
3313 | + display_version: '0.9' |
3314 | + distroseries_link: 'http://.../ubuntu/warty' |
3315 | id: 11 |
3316 | - pocket: u'Release' |
3317 | - resource_type_link: u'http://.../#package_upload' |
3318 | - self_link: u'http://.../ubuntu/warty/+upload/11' |
3319 | - status: u'Done' |
3320 | + pocket: 'Release' |
3321 | + resource_type_link: 'http://.../#package_upload' |
3322 | + self_link: 'http://.../ubuntu/warty/+upload/11' |
3323 | + status: 'Done' |
3324 | |
3325 | getPackageUploads can filter on package names. |
3326 | |
3327 | diff --git a/lib/lp/soyuz/stories/webservice/xx-source-package-publishing.txt b/lib/lp/soyuz/stories/webservice/xx-source-package-publishing.txt |
3328 | index b26e605..4a8e1eb 100644 |
3329 | --- a/lib/lp/soyuz/stories/webservice/xx-source-package-publishing.txt |
3330 | +++ b/lib/lp/soyuz/stories/webservice/xx-source-package-publishing.txt |
3331 | @@ -119,32 +119,32 @@ publication to play with first. |
3332 | |
3333 | >>> from lazr.restful.testing.webservice import pprint_entry |
3334 | >>> pprint_entry(pubs['entries'][0]) |
3335 | - archive_link: u'http://.../~cprov/+archive/ubuntu/ppa' |
3336 | - component_name: u'main' |
3337 | + archive_link: 'http://.../~cprov/+archive/ubuntu/ppa' |
3338 | + component_name: 'main' |
3339 | copied_from_archive_link: None |
3340 | - creator_link: u'http://api.launchpad.test/beta/~name16' |
3341 | + creator_link: 'http://api.launchpad.test/beta/~name16' |
3342 | date_created: ... |
3343 | date_made_pending: None |
3344 | date_published: None |
3345 | date_removed: None |
3346 | date_superseded: None |
3347 | - display_name: u'testwebservice 666 in breezy-autotest' |
3348 | - distro_series_link: u'http://.../ubuntutest/breezy-autotest' |
3349 | - package_creator_link: u'http://.../beta/~name16' |
3350 | - package_maintainer_link: u'http://.../beta/~name16' |
3351 | - package_signer_link: u'http://.../beta/~name16' |
3352 | + display_name: 'testwebservice 666 in breezy-autotest' |
3353 | + distro_series_link: 'http://.../ubuntutest/breezy-autotest' |
3354 | + package_creator_link: 'http://.../beta/~name16' |
3355 | + package_maintainer_link: 'http://.../beta/~name16' |
3356 | + package_signer_link: 'http://.../beta/~name16' |
3357 | packageupload_link: None |
3358 | - pocket: u'Release' |
3359 | + pocket: 'Release' |
3360 | removal_comment: None |
3361 | removed_by_link: None |
3362 | - resource_type_link: u'http://.../#source_package_publishing_history' |
3363 | + resource_type_link: 'http://.../#source_package_publishing_history' |
3364 | scheduled_deletion_date: None |
3365 | - section_name: u'base' |
3366 | - self_link: u'http://.../~cprov/+archive/ubuntu/ppa/+sourcepub/...' |
3367 | - source_package_name: u'testwebservice' |
3368 | - source_package_version: u'666' |
3369 | + section_name: 'base' |
3370 | + self_link: 'http://.../~cprov/+archive/ubuntu/ppa/+sourcepub/...' |
3371 | + source_package_name: 'testwebservice' |
3372 | + source_package_version: '666' |
3373 | sponsor_link: None |
3374 | - status: u'Pending' |
3375 | + status: 'Pending' |
3376 | |
3377 | >>> webservice.named_get( |
3378 | ... pubs['entries'][0]['self_link'], 'changesFileUrl').jsonBody() |
3379 | diff --git a/lib/lp/translations/stories/webservice/xx-potemplate.txt b/lib/lp/translations/stories/webservice/xx-potemplate.txt |
3380 | index 327a66a..032ab5b 100644 |
3381 | --- a/lib/lp/translations/stories/webservice/xx-potemplate.txt |
3382 | +++ b/lib/lp/translations/stories/webservice/xx-potemplate.txt |
3383 | @@ -12,23 +12,23 @@ Anonymous users have read access to PO templates attributes. |
3384 | ... '/ubuntu/hoary/+source/pmount/+pots/pmount').jsonBody() |
3385 | >>> pprint_entry(potemplate) |
3386 | active: True |
3387 | - date_last_updated: u'2005-05-06T20:09:23.775993+00:00' |
3388 | + date_last_updated: '2005-05-06T20:09:23.775993+00:00' |
3389 | description: None |
3390 | exported_in_languagepacks: True |
3391 | - format: u'PO format' |
3392 | + format: 'PO format' |
3393 | id: 2 |
3394 | language_count: 9 |
3395 | message_count: 63 |
3396 | - name: u'pmount' |
3397 | - owner_link: u'http://.../~rosetta-admins' |
3398 | - path: u'po/template.pot' |
3399 | + name: 'pmount' |
3400 | + owner_link: 'http://.../~rosetta-admins' |
3401 | + path: 'po/template.pot' |
3402 | priority: 0 |
3403 | - resource_type_link: u'http://.../#translation_template' |
3404 | - self_link: u'http://.../ubuntu/hoary/+source/pmount/+pots/pmount' |
3405 | - translation_domain: u'pmount' |
3406 | + resource_type_link: 'http://.../#translation_template' |
3407 | + self_link: 'http://.../ubuntu/hoary/+source/pmount/+pots/pmount' |
3408 | + translation_domain: 'pmount' |
3409 | translation_files_collection_link: |
3410 | - u'http://.../pmount/+pots/pmount/translation_files' |
3411 | - web_link: u'http://translati.../ubuntu/hoary/+source/pmount/+pots/pmount' |
3412 | + 'http://.../pmount/+pots/pmount/translation_files' |
3413 | + web_link: 'http://translati.../ubuntu/hoary/+source/pmount/+pots/pmount' |
3414 | |
3415 | "translation_files" will list all POFiles associated with this template. |
3416 |