Merge lp:~cjwatson/launchpad/bugs-pagetests-future-imports into lp:launchpad
- bugs-pagetests-future-imports
- Merge into devel
Proposed by
Colin Watson
Status: | Merged |
---|---|
Merged at revision: | 18709 |
Proposed branch: | lp:~cjwatson/launchpad/bugs-pagetests-future-imports |
Merge into: | lp:launchpad |
Diff against target: |
8904 lines (+1232/-1221) 125 files modified
lib/lp/bugs/browser/tests/bug-nomination-views.txt (+14/-14) lib/lp/bugs/browser/tests/bug-views.txt (+22/-22) lib/lp/bugs/browser/tests/buglinktarget-views.txt (+8/-8) lib/lp/bugs/browser/tests/bugs-views.txt (+5/-5) lib/lp/bugs/browser/tests/bugtarget-filebug-views.txt (+9/-9) lib/lp/bugs/browser/tests/bugtask-adding-views.txt (+25/-25) lib/lp/bugs/browser/tests/bugtask-edit-views.txt (+3/-3) lib/lp/bugs/browser/tests/bugtask-search-views.txt (+17/-16) lib/lp/bugs/browser/tests/bugwatch-views.txt (+2/-2) lib/lp/bugs/browser/tests/person-bug-views.txt (+44/-44) lib/lp/bugs/browser/tests/test_views.py (+3/-2) lib/lp/bugs/stories/bug-also-affects/xx-also-affects-new-upstream.txt (+4/-4) lib/lp/bugs/stories/bug-also-affects/xx-bug-also-affects.txt (+56/-56) lib/lp/bugs/stories/bug-also-affects/xx-bugtracker-information.txt (+2/-2) lib/lp/bugs/stories/bug-also-affects/xx-duplicate-bugwatches.txt (+3/-3) lib/lp/bugs/stories/bug-also-affects/xx-upstream-bugtracker-links.txt (+6/-6) lib/lp/bugs/stories/bug-privacy/xx-bug-privacy.txt (+4/-4) lib/lp/bugs/stories/bug-privacy/xx-presenting-private-bugs.txt (+6/-6) lib/lp/bugs/stories/bug-release-management/xx-bug-release-management.txt (+12/-12) lib/lp/bugs/stories/bug-tags/xx-official-bug-tags.txt (+9/-9) lib/lp/bugs/stories/bug-tags/xx-searching-for-tags.txt (+3/-3) lib/lp/bugs/stories/bug-tags/xx-tags-on-bug-listings-page.txt (+3/-3) lib/lp/bugs/stories/bug-tags/xx-tags-on-bug-page.txt (+7/-7) lib/lp/bugs/stories/bugattachments/xx-attachments-to-bug-report.txt (+5/-5) lib/lp/bugs/stories/bugattachments/xx-bugattachments.txt (+18/-18) lib/lp/bugs/stories/bugattachments/xx-delete-bug-attachment.txt (+4/-4) lib/lp/bugs/stories/bugattachments/xx-display-filesize-attachment.txt (+2/-2) lib/lp/bugs/stories/bugs/bug-add-subscriber.txt (+3/-3) lib/lp/bugs/stories/bugs/xx-add-comment-bugtask-edit.txt (+1/-1) lib/lp/bugs/stories/bugs/xx-add-comment-distribution-no-current-release.txt (+1/-1) lib/lp/bugs/stories/bugs/xx-add-comment-with-bugwatch-and-cve.txt (+4/-4) lib/lp/bugs/stories/bugs/xx-bug-activity.txt (+5/-5) lib/lp/bugs/stories/bugs/xx-bug-affects-me-too.txt (+14/-14) lib/lp/bugs/stories/bugs/xx-bug-comment-attach-file.txt (+5/-5) lib/lp/bugs/stories/bugs/xx-bug-comments-truncated.txt (+8/-8) lib/lp/bugs/stories/bugs/xx-bug-create-question.txt (+18/-18) lib/lp/bugs/stories/bugs/xx-bug-edit.txt (+6/-6) lib/lp/bugs/stories/bugs/xx-bug-heat-on-bug-page.txt (+1/-1) lib/lp/bugs/stories/bugs/xx-bug-hidden-comments.txt (+11/-11) lib/lp/bugs/stories/bugs/xx-bug-index-lots-of-comments.txt (+9/-9) lib/lp/bugs/stories/bugs/xx-bug-index.txt (+18/-18) lib/lp/bugs/stories/bugs/xx-bug-obfuscation.txt (+2/-2) lib/lp/bugs/stories/bugs/xx-bug-personal-subscriptions-advanced-features.txt (+4/-4) lib/lp/bugs/stories/bugs/xx-bug-single-comment-view.txt (+1/-1) lib/lp/bugs/stories/bugs/xx-bug-text-pages.txt (+21/-21) lib/lp/bugs/stories/bugs/xx-bugs-advanced-search-upstream-status.txt (+9/-9) lib/lp/bugs/stories/bugs/xx-bugs.txt (+3/-3) lib/lp/bugs/stories/bugs/xx-bugtask-assignee-widget.txt (+14/-14) lib/lp/bugs/stories/bugs/xx-distribution-bugs-page.txt (+3/-3) lib/lp/bugs/stories/bugs/xx-distributionsourcepackage-bugs.txt (+1/-1) lib/lp/bugs/stories/bugs/xx-distrorelease-bugs-page.txt (+3/-3) lib/lp/bugs/stories/bugs/xx-duplicate-of-private-bug.txt (+8/-8) lib/lp/bugs/stories/bugs/xx-front-page-bug-lists.txt (+4/-4) lib/lp/bugs/stories/bugs/xx-front-page-info.txt (+7/-7) lib/lp/bugs/stories/bugs/xx-front-page-search.txt (+6/-6) lib/lp/bugs/stories/bugs/xx-front-page-statistics.txt (+1/-1) lib/lp/bugs/stories/bugs/xx-incomplete-bugs.txt (+14/-14) lib/lp/bugs/stories/bugs/xx-link-bug-to-branch.txt (+7/-7) lib/lp/bugs/stories/bugs/xx-malone-homepage.txt (+2/-2) lib/lp/bugs/stories/bugs/xx-numbered-comments.txt (+2/-2) lib/lp/bugs/stories/bugs/xx-portlets-bug-milestones.txt (+5/-5) lib/lp/bugs/stories/bugs/xx-portlets-bug-series.txt (+7/-7) lib/lp/bugs/stories/bugs/xx-product-bugs-page.txt (+4/-4) lib/lp/bugs/stories/bugs/xx-project-bugs-page.txt (+1/-1) lib/lp/bugs/stories/bugs/xx-remote-bug-comments.txt (+8/-8) lib/lp/bugs/stories/bugs/xx-switch-to-malone.txt (+2/-2) lib/lp/bugs/stories/bugs/xx-unique-ids-on-bug-page.txt (+1/-1) lib/lp/bugs/stories/bugtask-management/xx-bug-importance-change.txt (+2/-2) lib/lp/bugs/stories/bugtask-management/xx-bug-privileged-statuses.txt (+12/-11) lib/lp/bugs/stories/bugtask-management/xx-bugtask-edit-forms.txt (+9/-9) lib/lp/bugs/stories/bugtask-management/xx-change-assignee.txt (+9/-9) lib/lp/bugs/stories/bugtask-management/xx-change-milestone.txt (+4/-4) lib/lp/bugs/stories/bugtask-management/xx-edit-email-address-bugtask.txt (+1/-1) lib/lp/bugs/stories/bugtask-management/xx-subscribe-while-editing.txt (+1/-1) lib/lp/bugs/stories/bugtask-management/xx-view-editable-bug-task.txt (+1/-1) lib/lp/bugs/stories/bugtask-searches/xx-advanced-people-filters.txt (+10/-10) lib/lp/bugs/stories/bugtask-searches/xx-distribution-statistics-portlet.txt (+10/-10) lib/lp/bugs/stories/bugtask-searches/xx-listing-basics.txt (+4/-4) lib/lp/bugs/stories/bugtask-searches/xx-old-urls-still-work.txt (+7/-7) lib/lp/bugs/stories/bugtask-searches/xx-person-bugs.txt (+18/-18) lib/lp/bugs/stories/bugtask-searches/xx-unexpected-form-data.txt (+1/-1) lib/lp/bugs/stories/bugtracker/bugtrackers-index.txt (+5/-5) lib/lp/bugs/stories/bugtracker/xx-bugtracker-remote-bug.txt (+4/-4) lib/lp/bugs/stories/bugtracker/xx-bugtracker.txt (+48/-48) lib/lp/bugs/stories/bugtracker/xx-reschedule-all-watches.txt (+5/-5) lib/lp/bugs/stories/bugwatches/xx-bugtask-bugwatch-linkage.txt (+5/-5) lib/lp/bugs/stories/bugwatches/xx-bugwatch-errors.txt (+4/-4) lib/lp/bugs/stories/bugwatches/xx-edit-bugwatch.txt (+21/-21) lib/lp/bugs/stories/cve/cve-linking.txt (+7/-7) lib/lp/bugs/stories/cve/cve-pages.txt (+13/-13) lib/lp/bugs/stories/cve/xx-cve-link-xss.txt (+3/-3) lib/lp/bugs/stories/feeds/xx-bug-atom.txt (+84/-84) lib/lp/bugs/stories/feeds/xx-bug-html.txt (+15/-15) lib/lp/bugs/stories/guided-filebug/xx-bug-reporting-guidelines.txt (+25/-25) lib/lp/bugs/stories/guided-filebug/xx-bug-reporting-tools.txt (+12/-12) lib/lp/bugs/stories/guided-filebug/xx-displaying-similar-bugs.txt (+3/-3) lib/lp/bugs/stories/guided-filebug/xx-distro-guided-filebug-tags.txt (+1/-1) lib/lp/bugs/stories/guided-filebug/xx-distro-guided-filebug.txt (+5/-5) lib/lp/bugs/stories/guided-filebug/xx-distro-sourcepackage-guided-filebug.txt (+2/-2) lib/lp/bugs/stories/guided-filebug/xx-filebug-attachments.txt (+3/-3) lib/lp/bugs/stories/guided-filebug/xx-no-launchpadder.txt (+11/-11) lib/lp/bugs/stories/guided-filebug/xx-options-for-bug-supervisors.txt (+4/-4) lib/lp/bugs/stories/guided-filebug/xx-product-guided-filebug.txt (+10/-10) lib/lp/bugs/stories/guided-filebug/xx-productseries-guided-filebug.txt (+1/-1) lib/lp/bugs/stories/guided-filebug/xx-project-guided-filebug.txt (+2/-2) lib/lp/bugs/stories/guided-filebug/xx-ubuntu-filebug.txt (+8/-8) lib/lp/bugs/stories/patches-view/patches-view.txt (+2/-2) lib/lp/bugs/stories/standalone/xx-filebug-package-chooser-radio-buttons.txt (+5/-5) lib/lp/bugs/stories/standalone/xx-nonexistent-bugid-raises-404.txt (+4/-4) lib/lp/bugs/stories/standalone/xx-obsolete-bug-and-task-urls.txt (+4/-4) lib/lp/bugs/stories/standalone/xx-show-distribution-cve-report.txt (+3/-3) lib/lp/bugs/stories/standalone/xx-show-distrorelease-cve-report.txt (+2/-2) lib/lp/bugs/stories/standalone/xx-slash-malone-slash-assigned.txt (+4/-4) lib/lp/bugs/stories/structural-subscriptions/xx-bug-subscriptions.txt (+15/-15) lib/lp/bugs/stories/upstream-bugprivacy/xx-upstream-bug-privacy.txt (+20/-20) lib/lp/bugs/stories/webservice/xx-bug-target.txt (+29/-29) lib/lp/bugs/stories/webservice/xx-bug-tracker.txt (+4/-4) lib/lp/bugs/stories/webservice/xx-bug.txt (+173/-171) lib/lp/bugs/stories/webservice/xx-hide-comments.txt (+6/-6) lib/lp/bugs/stories/xx-bugs-statistics-portlet.txt (+6/-6) lib/lp/bugs/tests/test_buglinktarget.py (+4/-4) lib/lp/bugs/tests/test_bugtarget.py (+6/-6) lib/lp/bugs/tests/test_doc.py (+8/-3) lib/lp/bugs/tests/test_structuralsubscriptiontarget.py (+5/-5) lib/lp/testing/factory.py (+2/-1) |
To merge this branch: | bzr merge lp:~cjwatson/launchpad/bugs-pagetests-future-imports |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Colin Watson (community) | Approve | ||
Review via email: mp+348788@code.launchpad.net |
Commit message
Convert pagetests under lp.bugs to Launchpad's preferred __future__ imports.
Description of the change
To post a comment you must log in.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'lib/lp/bugs/browser/tests/bug-nomination-views.txt' |
2 | --- lib/lp/bugs/browser/tests/bug-nomination-views.txt 2014-11-28 22:07:05 +0000 |
3 | +++ lib/lp/bugs/browser/tests/bug-nomination-views.txt 2018-06-30 16:32:46 +0000 |
4 | @@ -30,9 +30,9 @@ |
5 | >>> ignored = login_person(nominator) |
6 | >>> request = LaunchpadTestRequest() |
7 | >>> bug_one_in_ubuntu_firefox = getUtility(IBugTaskSet).get(17) |
8 | - >>> print bug_one_in_ubuntu_firefox.bug.id |
9 | + >>> print(bug_one_in_ubuntu_firefox.bug.id) |
10 | 1 |
11 | - >>> print bug_one_in_ubuntu_firefox.target.bugtargetdisplayname |
12 | + >>> print(bug_one_in_ubuntu_firefox.target.bugtargetdisplayname) |
13 | mozilla-firefox (Ubuntu) |
14 | |
15 | >>> nomination_view = getMultiAdapter( |
16 | @@ -80,15 +80,15 @@ |
17 | >>> len(request.response.notifications) |
18 | 1 |
19 | |
20 | - >>> print request.response.notifications[0].message |
21 | + >>> print(request.response.notifications[0].message) |
22 | Added nominations for: Ubuntu Warty |
23 | |
24 | Here's an example of nominating a bug for a productseries. |
25 | |
26 | >>> bug_one_in_firefox = getUtility(IBugTaskSet).get(2) |
27 | - >>> print bug_one_in_firefox.bug.id |
28 | + >>> print(bug_one_in_firefox.bug.id) |
29 | 1 |
30 | - >>> print bug_one_in_firefox.target.bugtargetdisplayname |
31 | + >>> print(bug_one_in_firefox.target.bugtargetdisplayname) |
32 | Mozilla Firefox |
33 | |
34 | >>> firefox = bug_one_in_firefox.target |
35 | @@ -121,7 +121,7 @@ |
36 | >>> len(request.response.notifications) |
37 | 1 |
38 | |
39 | - >>> print request.response.notifications[0].message |
40 | + >>> print(request.response.notifications[0].message) |
41 | Added nominations for: Mozilla Firefox trunk |
42 | |
43 | |
44 | @@ -158,7 +158,7 @@ |
45 | approval. |
46 | |
47 | >>> hoary_nomination.decline(launchbag.user) |
48 | - >>> print hoary_nomination.status.title |
49 | + >>> print(hoary_nomination.status.title) |
50 | Declined |
51 | |
52 | >>> hoary_nomination_edit_form.shouldShowApproveButton(None) |
53 | @@ -179,14 +179,14 @@ |
54 | |
55 | >>> ubuntu_nominations = bug_one.getNominations(ubuntu) |
56 | >>> for nomination in ubuntu_nominations: |
57 | - ... print nomination.target.bugtargetdisplayname |
58 | + ... print(nomination.target.bugtargetdisplayname) |
59 | Ubuntu Hoary |
60 | Ubuntu Warty |
61 | |
62 | Bug #1 currently has three tasks. |
63 | |
64 | >>> for bugtask in bug_one.bugtasks: |
65 | - ... print bugtask.bugtargetdisplayname |
66 | + ... print(bugtask.bugtargetdisplayname) |
67 | Mozilla Firefox |
68 | mozilla-firefox (Ubuntu) |
69 | mozilla-firefox (Debian) |
70 | @@ -201,7 +201,7 @@ |
71 | >>> login("celso.providelo@canonical.com") |
72 | |
73 | >>> cprov = launchbag.user |
74 | - >>> print cprov.name |
75 | + >>> print(cprov.name) |
76 | cprov |
77 | |
78 | >>> cprov.inTeam(ubuntu_team) |
79 | @@ -220,9 +220,9 @@ |
80 | |
81 | >>> def print_nominations(nominations): |
82 | ... for nomination in nominations: |
83 | - ... print "%s, %s" % ( |
84 | + ... print("%s, %s" % ( |
85 | ... nomination.target.bugtargetdisplayname, |
86 | - ... nomination.status.title) |
87 | + ... nomination.status.title)) |
88 | >>> print_nominations(bug_one.getNominations(ubuntu)) |
89 | Ubuntu Hoary, Declined |
90 | Ubuntu Warty, Nominated |
91 | @@ -240,7 +240,7 @@ |
92 | Ubuntu Warty, Nominated |
93 | |
94 | >>> for bugtask in bug_one.bugtasks: |
95 | - ... print bugtask.bugtargetdisplayname |
96 | + ... print(bugtask.bugtargetdisplayname) |
97 | Mozilla Firefox |
98 | mozilla-firefox (Ubuntu) |
99 | mozilla-firefox (Ubuntu Grumpy) |
100 | @@ -248,5 +248,5 @@ |
101 | |
102 | The notification message also changes slightly. |
103 | |
104 | - >>> print request.response.notifications[0].message |
105 | + >>> print(request.response.notifications[0].message) |
106 | Targeted bug to: Ubuntu Grumpy |
107 | |
108 | === modified file 'lib/lp/bugs/browser/tests/bug-views.txt' |
109 | --- lib/lp/bugs/browser/tests/bug-views.txt 2015-10-06 06:48:01 +0000 |
110 | +++ lib/lp/bugs/browser/tests/bug-views.txt 2018-06-30 16:32:46 +0000 |
111 | @@ -15,7 +15,7 @@ |
112 | >>> from lazr.lifecycle.event import IObjectCreatedEvent |
113 | >>> from lp.bugs.interfaces.bug import IBug |
114 | >>> def on_created_event(object, event): |
115 | - ... print "ObjectCreatedEvent: %r" % object |
116 | + ... print("ObjectCreatedEvent: %r" % object) |
117 | >>> on_created_listener = TestEventListener( |
118 | ... IBug, IObjectCreatedEvent, on_created_event) |
119 | |
120 | @@ -71,13 +71,13 @@ |
121 | The user specified a binary package name, so that's been added to the |
122 | bug description and the first comment: |
123 | |
124 | - >>> print latest_ubuntu_bugtask.bug.description |
125 | + >>> print(latest_ubuntu_bugtask.bug.description) |
126 | a bug in a bin pkg |
127 | |
128 | the source package from which the binary was built has been set on |
129 | the bugtask. |
130 | |
131 | - >>> print latest_ubuntu_bugtask.sourcepackagename.name |
132 | + >>> print(latest_ubuntu_bugtask.sourcepackagename.name) |
133 | linux-source-2.6.15 |
134 | |
135 | 2. Filing a bug on a product. |
136 | @@ -157,7 +157,7 @@ |
137 | |
138 | >>> ubuntu_bugview = getMultiAdapter( |
139 | ... (latest_ubuntu_bugtask, request), name="+index") |
140 | - >>> print len(ubuntu_bugview.comments) |
141 | + >>> print(len(ubuntu_bugview.comments)) |
142 | 3 |
143 | >>> [ (c.index, c.owner.name, c.text_contents) |
144 | ... for c in ubuntu_bugview.comments ] |
145 | @@ -172,12 +172,12 @@ |
146 | When a user posts a new bug, the first comment and the description are |
147 | identical. Take as an example the first bug posted above: |
148 | |
149 | - >>> print latest_ubuntu_bugtask.bug.description |
150 | + >>> print(latest_ubuntu_bugtask.bug.description) |
151 | a bug in a bin pkg |
152 | |
153 | Its description has the same contents as the bug's first comment: |
154 | |
155 | - >>> print latest_ubuntu_bugtask.bug.messages[0].text_contents |
156 | + >>> print(latest_ubuntu_bugtask.bug.messages[0].text_contents) |
157 | a bug in a bin pkg |
158 | |
159 | The view class offers a method to check exactly that: |
160 | @@ -203,7 +203,7 @@ |
161 | Because we omit the first comment, and because the third comment is |
162 | indentical to the second, we really only display one comment: |
163 | |
164 | - >>> print len(comments) |
165 | + >>> print(len(comments)) |
166 | 1 |
167 | >>> [(c.index, c.owner.name, c.text_contents) for c in comments] |
168 | [(1, u'name16', u'I can reproduce this bug.')] |
169 | @@ -233,9 +233,9 @@ |
170 | |
171 | >>> bug_five_in_firefox = bugtaskset.get(14) |
172 | |
173 | - >>> print bug_five_in_firefox.bug.id |
174 | + >>> print(bug_five_in_firefox.bug.id) |
175 | 5 |
176 | - >>> print bug_five_in_firefox.product.name |
177 | + >>> print(bug_five_in_firefox.product.name) |
178 | firefox |
179 | |
180 | |
181 | @@ -247,7 +247,7 @@ |
182 | >>> getUtility(IOpenLaunchBag).add(bug_five_in_firefox) |
183 | |
184 | >>> for dupe in bug_page_view.duplicates(): |
185 | - ... print dupe['url'] |
186 | + ... print(dupe['url']) |
187 | http://.../firefox/+bug/6 |
188 | |
189 | Bug 2 is not reported in Firefox. Let's mark bug 2 as a dupe of bug 5, |
190 | @@ -261,7 +261,7 @@ |
191 | ... (bug_five_in_firefox.bug, request), name="+portlet-duplicates") |
192 | |
193 | >>> for dupe in bug_page_view.duplicates(): |
194 | - ... print dupe['url'] |
195 | + ... print(dupe['url']) |
196 | http://.../bugs/2 |
197 | ... |
198 | |
199 | @@ -476,10 +476,10 @@ |
200 | >>> def print_tasks_and_nominations(task_and_nomination_views): |
201 | ... for task_or_nomination_view in task_and_nomination_views: |
202 | ... task_or_nomination = task_or_nomination_view.context |
203 | - ... print "%s, %s, %s" % ( |
204 | + ... print("%s, %s, %s" % ( |
205 | ... get_object_type(task_or_nomination), |
206 | ... task_or_nomination.status.title, |
207 | - ... task_or_nomination.target.bugtargetdisplayname) |
208 | + ... task_or_nomination.target.bugtargetdisplayname)) |
209 | |
210 | >>> task_and_nomination_views = ( |
211 | ... bugtasks_and_nominations_view.getBugTaskAndNominationViews()) |
212 | @@ -604,7 +604,7 @@ |
213 | >>> from lp.bugs.browser.bug import BugEditView |
214 | >>> class BugEditViewTest(BugEditView): |
215 | ... def index(self): |
216 | - ... print 'EDIT BUG' |
217 | + ... print('EDIT BUG') |
218 | |
219 | >>> firefox_task = bug_one.bugtasks[0] |
220 | >>> firefox_task.bugtargetdisplayname |
221 | @@ -737,23 +737,23 @@ |
222 | ... for activity in activities: |
223 | ... target_name = activity['target'] |
224 | ... if target_name is None: |
225 | - ... print "Changed:" |
226 | + ... print("Changed:") |
227 | ... else: |
228 | - ... print "Changed in %s:" % target_name |
229 | + ... print("Changed in %s:" % target_name) |
230 | ... activity_items = activity['activity'] |
231 | ... for activity_item in activity_items: |
232 | - ... print "* %s: %s => %s" % ( |
233 | + ... print("* %s: %s => %s" % ( |
234 | ... activity_item.change_summary, |
235 | ... activity_item.oldvalue, |
236 | - ... activity_item.newvalue) |
237 | + ... activity_item.newvalue)) |
238 | |
239 | >>> def print_comment(comment): |
240 | - ... print comment.text_for_display |
241 | + ... print(comment.text_for_display) |
242 | ... print_activities(comment.activity) |
243 | |
244 | >>> def print_activity_and_comments(activity_and_comments): |
245 | ... for activity_or_comment in activity_and_comments: |
246 | - ... print "-- {person.name} --".format(**activity_or_comment) |
247 | + ... print("-- {person.name} --".format(**activity_or_comment)) |
248 | ... if 'activity' in activity_or_comment: |
249 | ... print_activities(activity_or_comment["activity"]) |
250 | ... if 'comment' in activity_or_comment: |
251 | @@ -826,7 +826,7 @@ |
252 | searched for. |
253 | |
254 | >>> for bug in view.similar_bugs: |
255 | - ... print bug.title |
256 | + ... print(bug.title) |
257 | New title |
258 | Reflow problems with complex page layouts |
259 | Firefox install instructions should be complete |
260 | @@ -841,5 +841,5 @@ |
261 | ... (firefox, request), name="+filebug-show-similar") |
262 | >>> view.initialize() |
263 | >>> for bug in view.similar_bugs: |
264 | - ... print bug.title |
265 | + ... print(bug.title) |
266 | Reflow problems with complex page layouts |
267 | |
268 | === modified file 'lib/lp/bugs/browser/tests/buglinktarget-views.txt' |
269 | --- lib/lp/bugs/browser/tests/buglinktarget-views.txt 2012-12-10 13:43:47 +0000 |
270 | +++ lib/lp/bugs/browser/tests/buglinktarget-views.txt 2018-06-30 16:32:46 +0000 |
271 | @@ -28,10 +28,10 @@ |
272 | The +linkbug view is used to link bugs to IBugLinkTarget. |
273 | |
274 | >>> view = create_view(cve, name='+linkbug') |
275 | - >>> print view.label |
276 | + >>> print(view.label) |
277 | Link a bug report |
278 | |
279 | - >>> print view.cancel_url |
280 | + >>> print(view.cancel_url) |
281 | http://bugs.launchpad.dev/bugs/cve/2005-2730 |
282 | |
283 | It has a simple widget to enter the bug number or nickname of the bug to link |
284 | @@ -50,7 +50,7 @@ |
285 | |
286 | Bug #1 was added to the object: |
287 | |
288 | - >>> print [bug.id for bug in cve.bugs] |
289 | + >>> print([bug.id for bug in cve.bugs]) |
290 | [1] |
291 | |
292 | A ObjectModifiedEvent was sent: |
293 | @@ -82,10 +82,10 @@ |
294 | IBugLinkTarget. |
295 | |
296 | >>> view = create_view(cve, name='+unlinkbug') |
297 | - >>> print view.label |
298 | + >>> print(view.label) |
299 | Remove links to bug reports |
300 | |
301 | - >>> print view.cancel_url |
302 | + >>> print(view.cancel_url) |
303 | http://bugs.launchpad.dev/bugs/cve/2005-2730 |
304 | |
305 | After removing the bugs, it sends a SQLObjectModified event. |
306 | @@ -103,7 +103,7 @@ |
307 | |
308 | The two bugs were removed and only bug #3 should still be present: |
309 | |
310 | - >>> print [bug.id for bug in cve.bugs] |
311 | + >>> print([bug.id for bug in cve.bugs]) |
312 | [3] |
313 | |
314 | A ObjectModifiedEvent was sent: |
315 | @@ -117,7 +117,7 @@ |
316 | True |
317 | >>> event.edited_fields |
318 | ['bugs'] |
319 | - >>> print [bug.id for bug in event.object_before_modification.bugs] |
320 | + >>> print([bug.id for bug in event.object_before_modification.bugs]) |
321 | [1, 2, 3] |
322 | |
323 | |
324 | @@ -143,7 +143,7 @@ |
325 | The notification contains the escaped bug title. |
326 | |
327 | >>> for notification in request.response.notifications: |
328 | - ... print notification.message.encode('utf8') |
329 | + ... print(notification.message.encode('utf8')) |
330 | Added link to bug #2: |
331 | ...<script>window.alert("Hello!")</script>.... |
332 | |
333 | |
334 | === modified file 'lib/lp/bugs/browser/tests/bugs-views.txt' |
335 | --- lib/lp/bugs/browser/tests/bugs-views.txt 2016-01-26 15:47:37 +0000 |
336 | +++ lib/lp/bugs/browser/tests/bugs-views.txt 2018-06-30 16:32:46 +0000 |
337 | @@ -26,7 +26,7 @@ |
338 | ... for bugtask in BugTask.selectBy(_status=BugTaskStatus.FIXRELEASED)] |
339 | [8] |
340 | >>> for bug in bugs_view.most_recently_fixed_bugs: |
341 | - ... print "%s: %s" % (bug.id, bug.title) |
342 | + ... print("%s: %s" % (bug.id, bug.title)) |
343 | 8: Printing doesn't work |
344 | |
345 | Let's reopen it and close it again, to ensure that the date closed isn't |
346 | @@ -53,7 +53,7 @@ |
347 | >>> fix_bug(4) |
348 | |
349 | >>> for bug in bugs_view.most_recently_fixed_bugs: |
350 | - ... print "%s: %s" % (bug.id, bug.title) |
351 | + ... print("%s: %s" % (bug.id, bug.title)) |
352 | 4: Reflow problems with complex page layouts |
353 | 2: Blackhole Trash folder |
354 | 1: Firefox does not support SVG |
355 | @@ -66,7 +66,7 @@ |
356 | >>> fix_bug(1, bugtask_index=1) |
357 | |
358 | >>> for bug in bugs_view.most_recently_fixed_bugs: |
359 | - ... print "%s: %s" % (bug.id, bug.title) |
360 | + ... print("%s: %s" % (bug.id, bug.title)) |
361 | 1: Firefox does not support SVG |
362 | 4: Reflow problems with complex page layouts |
363 | 2: Blackhole Trash folder |
364 | @@ -84,7 +84,7 @@ |
365 | >>> bugs_view = MaloneView(MaloneApplication(), LaunchpadTestRequest()) |
366 | >>> bugs_view.initialize() |
367 | >>> for bug in bugs_view.most_recently_fixed_bugs: |
368 | - ... print "%s: %s" % (bug.id, bug.title) |
369 | + ... print("%s: %s" % (bug.id, bug.title)) |
370 | 1: Firefox does not support SVG |
371 | 2: Blackhole Trash folder |
372 | 8: Printing doesn't work |
373 | @@ -102,7 +102,7 @@ |
374 | >>> bugs_view = MaloneView(MaloneApplication(), LaunchpadTestRequest()) |
375 | >>> bugs_view.initialize() |
376 | >>> for bug in bugs_view.most_recently_fixed_bugs: |
377 | - ... print "%s: %s" % (bug.id, bug.title) |
378 | + ... print("%s: %s" % (bug.id, bug.title)) |
379 | 1: Firefox does not support SVG |
380 | 4: Reflow problems with complex page layouts |
381 | 2: Blackhole Trash folder |
382 | |
383 | === modified file 'lib/lp/bugs/browser/tests/bugtarget-filebug-views.txt' |
384 | --- lib/lp/bugs/browser/tests/bugtarget-filebug-views.txt 2017-07-21 14:06:38 +0000 |
385 | +++ lib/lp/bugs/browser/tests/bugtarget-filebug-views.txt 2018-06-30 16:32:46 +0000 |
386 | @@ -60,14 +60,14 @@ |
387 | The inline_filebug_form_url property returns the URL of the inline |
388 | filebug form so that it may be loaded asynchronously. |
389 | |
390 | - >>> print filebug_view.inline_filebug_form_url |
391 | + >>> print(filebug_view.inline_filebug_form_url) |
392 | http://launchpad.dev/firefox/+filebug-inline-form |
393 | |
394 | Similarly, the duplicate_search_url property returns the base URL for |
395 | the duplicate search view, which can be used to load the list of |
396 | possible duplicates for a bug asynchronously. |
397 | |
398 | - >>> print filebug_view.duplicate_search_url |
399 | + >>> print(filebug_view.duplicate_search_url) |
400 | http://launchpad.dev/firefox/+filebug-show-similar |
401 | |
402 | |
403 | @@ -95,7 +95,7 @@ |
404 | u'Test description.' |
405 | |
406 | >>> for tag in filebug_view.added_bug.tags: |
407 | - ... print tag |
408 | + ... print(tag) |
409 | bar |
410 | foo |
411 | |
412 | @@ -150,7 +150,7 @@ |
413 | True |
414 | |
415 | >>> for field in sorted(supervisor_fields - normal_fields): |
416 | - ... print field |
417 | + ... print(field) |
418 | assignee |
419 | importance |
420 | information_type |
421 | @@ -169,20 +169,20 @@ |
422 | ... title=u'Extra Fields Bug', comment=u'Test description.', |
423 | ... assignee=owner, importance=BugTaskImportance.HIGH, |
424 | ... milestone=milestone, status=BugTaskStatus.TRIAGED) |
425 | - >>> print filebug_view.validate(bug_data) |
426 | + >>> print(filebug_view.validate(bug_data)) |
427 | None |
428 | |
429 | >>> filebug_view.submit_bug_action.success(bug_data) |
430 | >>> [added_bugtask] = filebug_view.added_bug.bugtasks |
431 | |
432 | - >>> print added_bugtask.status.title |
433 | + >>> print(added_bugtask.status.title) |
434 | Triaged |
435 | |
436 | - >>> print added_bugtask.importance.title |
437 | + >>> print(added_bugtask.importance.title) |
438 | High |
439 | |
440 | - >>> print added_bugtask.assignee.name |
441 | + >>> print(added_bugtask.assignee.name) |
442 | bug-superdude |
443 | |
444 | - >>> print added_bugtask.milestone.name |
445 | + >>> print(added_bugtask.milestone.name) |
446 | bug-superdude-milestone |
447 | |
448 | === modified file 'lib/lp/bugs/browser/tests/bugtask-adding-views.txt' |
449 | --- lib/lp/bugs/browser/tests/bugtask-adding-views.txt 2016-01-26 15:47:37 +0000 |
450 | +++ lib/lp/bugs/browser/tests/bugtask-adding-views.txt 2018-06-30 16:32:46 +0000 |
451 | @@ -39,7 +39,7 @@ |
452 | Since we gave the view an upstream product as its context, it can't |
453 | guess which product we want to add, so it will ask us to specify it. |
454 | |
455 | - >>> print add_task_view.widgets['product']._getFormInput() |
456 | + >>> print(add_task_view.widgets['product']._getFormInput()) |
457 | None |
458 | >>> add_task_view.step_name |
459 | 'choose_product' |
460 | @@ -140,7 +140,7 @@ |
461 | >>> add_task_view.field_names |
462 | ['product', 'add_packaging', '__visited_steps__'] |
463 | |
464 | - >>> print add_task_view.widgets['product']._getFormInput() |
465 | + >>> print(add_task_view.widgets['product']._getFormInput()) |
466 | None |
467 | |
468 | Sometimes the distribution won't have any series, though. In that |
469 | @@ -159,7 +159,7 @@ |
470 | ... method='GET') |
471 | >>> add_task_view.step_name |
472 | 'choose_product' |
473 | - >>> print add_task_view.widgets['product']._getFormInput() |
474 | + >>> print(add_task_view.widgets['product']._getFormInput()) |
475 | None |
476 | |
477 | >>> len(add_task_view.request.response.notifications) |
478 | @@ -175,7 +175,7 @@ |
479 | >>> from lazr.lifecycle.interfaces import IObjectCreatedEvent |
480 | |
481 | >>> def on_created_event(object, event): |
482 | - ... print "ObjectCreatedEvent: %r" % object |
483 | + ... print("ObjectCreatedEvent: %r" % object) |
484 | |
485 | >>> on_created_listener = TestEventListener( |
486 | ... Interface, IObjectCreatedEvent, on_created_event) |
487 | @@ -199,7 +199,7 @@ |
488 | ... firefox_task, '+choose-affected-product', form) |
489 | >>> add_task_view.step_name |
490 | 'choose_product' |
491 | - >>> print add_task_view.widgets['product']._getFormInput() |
492 | + >>> print(add_task_view.widgets['product']._getFormInput()) |
493 | no-such-product |
494 | |
495 | >>> form['field.product'] = u'firefox' |
496 | @@ -207,7 +207,7 @@ |
497 | ... firefox_task, '+choose-affected-product', form) |
498 | >>> add_task_view.step_name |
499 | 'choose_product' |
500 | - >>> print add_task_view.widgets['product']._getFormInput() |
501 | + >>> print(add_task_view.widgets['product']._getFormInput()) |
502 | firefox |
503 | |
504 | If we specify a valid product, no errors will occur, and a bugtask will |
505 | @@ -219,7 +219,7 @@ |
506 | ObjectCreatedEvent: <BugTask ...> |
507 | |
508 | >>> for bugtask in bug_four.bugtasks: |
509 | - ... print bugtask.bugtargetdisplayname |
510 | + ... print(bugtask.bugtargetdisplayname) |
511 | Evolution |
512 | Mozilla Firefox |
513 | |
514 | @@ -243,7 +243,7 @@ |
515 | |
516 | >>> add_task_view.step_name |
517 | 'specify_remote_bug_url' |
518 | - >>> print add_task_view.widgets['product']._getFormInput() |
519 | + >>> print(add_task_view.widgets['product']._getFormInput()) |
520 | alsa-utils |
521 | |
522 | As you can see, we're still in the second step, because the user has |
523 | @@ -263,13 +263,13 @@ |
524 | >>> add_task_view = get_and_setup_view( |
525 | ... firefox_task, '+choose-affected-product', form) |
526 | ObjectCreatedEvent: <BugTask ...> |
527 | - >>> print add_task_view.notifications |
528 | + >>> print(add_task_view.notifications) |
529 | [] |
530 | >>> add_task_view.next_url is not None |
531 | True |
532 | |
533 | >>> for bugtask in bug_four.bugtasks: |
534 | - ... print bugtask.bugtargetdisplayname |
535 | + ... print(bugtask.bugtargetdisplayname) |
536 | alsa-utils |
537 | Evolution |
538 | Mozilla Firefox |
539 | @@ -295,14 +295,14 @@ |
540 | ... firefox_task, '+choose-affected-product', form) |
541 | >>> add_task_view.step_name |
542 | 'specify_remote_bug_url' |
543 | - >>> print add_task_view.getFieldError('bug_url') |
544 | + >>> print(add_task_view.getFieldError('bug_url')) |
545 | Launchpad does not recognize the bug tracker at this URL. |
546 | |
547 | Note that this caused the transaction to be aborted, thus the |
548 | alsa-utils bugtask added earlier is now gone: |
549 | |
550 | >>> for bugtask in bug_four.bugtasks: |
551 | - ... print bugtask.bugtargetdisplayname |
552 | + ... print(bugtask.bugtargetdisplayname) |
553 | Evolution |
554 | Mozilla Firefox |
555 | |
556 | @@ -327,13 +327,13 @@ |
557 | ObjectCreatedEvent: <BugTask ...> |
558 | |
559 | >>> for bugtask in bug_four.bugtasks: |
560 | - ... print bugtask.bugtargetdisplayname |
561 | + ... print(bugtask.bugtargetdisplayname) |
562 | APTonCD |
563 | Evolution |
564 | Mozilla Firefox |
565 | |
566 | >>> for bugwatch in bug_four.watches: |
567 | - ... print "%s: %s" % (bugwatch.bugtracker.title, bugwatch.remotebug) |
568 | + ... print("%s: %s" % (bugwatch.bugtracker.title, bugwatch.remotebug)) |
569 | bugzilla.somewhere.org/bugs/: 84 |
570 | |
571 | If we specify a URL of an already registered bug tracker, both the task |
572 | @@ -349,18 +349,18 @@ |
573 | ObjectCreatedEvent: <BugWatch at ...> |
574 | ObjectCreatedEvent: <BugTask ...> |
575 | |
576 | - >>> print add_task_view.notifications |
577 | + >>> print(add_task_view.notifications) |
578 | [] |
579 | |
580 | >>> for bugtask in bug_four.bugtasks: |
581 | - ... print bugtask.bugtargetdisplayname |
582 | + ... print(bugtask.bugtargetdisplayname) |
583 | alsa-utils |
584 | APTonCD |
585 | Evolution |
586 | Mozilla Firefox |
587 | |
588 | >>> for bugwatch in bug_four.watches: |
589 | - ... print "%s: %s" % (bugwatch.bugtracker.title, bugwatch.remotebug) |
590 | + ... print("%s: %s" % (bugwatch.bugtracker.title, bugwatch.remotebug)) |
591 | GnomeGBug GTracker: 84 |
592 | bugzilla.somewhere.org/bugs/: 84 |
593 | |
594 | @@ -396,12 +396,12 @@ |
595 | 'http://.../+bug/5' |
596 | |
597 | >>> for notification in add_task_view.request.response.notifications: |
598 | - ... print notification.message |
599 | + ... print(notification.message) |
600 | <a href="...">Bug #4</a> also links to the added bug watch |
601 | (gnome-bugzilla #84). |
602 | |
603 | >>> for bugwatch in bug_five.watches: |
604 | - ... print "%s: %s" % (bugwatch.bugtracker.title, bugwatch.remotebug) |
605 | + ... print("%s: %s" % (bugwatch.bugtracker.title, bugwatch.remotebug)) |
606 | GnomeGBug GTracker: 84 |
607 | |
608 | There's a property for easily retrieving the target for use on the |
609 | @@ -444,7 +444,7 @@ |
610 | [] |
611 | |
612 | >>> for bugtask in bug_four.bugtasks: |
613 | - ... print bugtask.bugtargetdisplayname |
614 | + ... print(bugtask.bugtargetdisplayname) |
615 | alsa-utils |
616 | ... |
617 | mozilla-firefox (Ubuntu) |
618 | @@ -473,7 +473,7 @@ |
619 | We have no products using http://bugs.foo.org as its bug tracker, so we have |
620 | nothing to present to the user. |
621 | |
622 | - >>> print add_task_view.existing_products |
623 | + >>> print(add_task_view.existing_products) |
624 | None |
625 | |
626 | Since the user is just creating the product in Launchpad to link to an |
627 | @@ -483,9 +483,9 @@ |
628 | |
629 | >>> from lp.registry.interfaces.product import IProductSet |
630 | >>> foo_product = getUtility(IProductSet).getByName('foo-product') |
631 | - >>> print foo_product.owner.displayname |
632 | + >>> print(foo_product.owner.displayname) |
633 | Registry Administrators |
634 | - >>> print foo_product.registrant.displayname |
635 | + >>> print(foo_product.registrant.displayname) |
636 | Sample Person |
637 | |
638 | The licence is set to DONT_KNOW for now. |
639 | @@ -599,11 +599,11 @@ |
640 | |
641 | >>> def print_links(links_dict): |
642 | ... if links_dict is None: |
643 | - ... print None |
644 | + ... print(None) |
645 | ... return |
646 | ... |
647 | ... for key in sorted(links_dict): |
648 | - ... print "%s: %s" % (key, links_dict[key]) |
649 | + ... print("%s: %s" % (key, links_dict[key])) |
650 | |
651 | upstream_bugtracker_links is a dict of `bug_filing_url` and `bug_search_url`. |
652 | The bug filing link includes the summary and description of the bug; the |
653 | |
654 | === modified file 'lib/lp/bugs/browser/tests/bugtask-edit-views.txt' |
655 | --- lib/lp/bugs/browser/tests/bugtask-edit-views.txt 2013-04-11 04:54:04 +0000 |
656 | +++ lib/lp/bugs/browser/tests/bugtask-edit-views.txt 2018-06-30 16:32:46 +0000 |
657 | @@ -59,7 +59,7 @@ |
658 | changed to the corresponding source package. |
659 | |
660 | >>> for notification in edit_view.request.response.notifications: |
661 | - ... print notification.message |
662 | + ... print(notification.message) |
663 | 'linux-2.6.12' is a binary package. This bug has been |
664 | assigned to its source package 'linux-source-2.6.15' |
665 | instead. |
666 | @@ -83,7 +83,7 @@ |
667 | ... (ubuntu_thunderbird_task, request), name='+editstatus') |
668 | >>> edit_view.initialize() |
669 | >>> for error in edit_view.errors: |
670 | - ... print error |
671 | + ... print(error) |
672 | (u'ubuntu_thunderbird.target', u'Target', |
673 | LaunchpadValidationError(u'There is no package named |
674 | 'no-such-package' published in Ubuntu.')) |
675 | @@ -137,7 +137,7 @@ |
676 | ... (product_task, request), name='+editstatus') |
677 | >>> edit_view.initialize() |
678 | >>> for error in edit_view.errors: |
679 | - ... print error |
680 | + ... print(error) |
681 | ('product', u'Project', RequiredMissing('product')) |
682 | |
683 | |
684 | |
685 | === modified file 'lib/lp/bugs/browser/tests/bugtask-search-views.txt' |
686 | --- lib/lp/bugs/browser/tests/bugtask-search-views.txt 2014-11-29 01:33:59 +0000 |
687 | +++ lib/lp/bugs/browser/tests/bugtask-search-views.txt 2018-06-30 16:32:46 +0000 |
688 | @@ -67,7 +67,7 @@ |
689 | >>> milestones = ( |
690 | ... distro_advanced_search_listingview.getMilestoneWidgetValues()) |
691 | >>> for value in milestones: |
692 | - ... print value['title'] |
693 | + ... print(value['title']) |
694 | Debian 3.1 (2056-05-16) |
695 | Debian 3.1-rc1 (2056-02-16) |
696 | |
697 | @@ -81,7 +81,7 @@ |
698 | >>> milestones = ( |
699 | ... package_advanced_search_listingview.getMilestoneWidgetValues()) |
700 | >>> for value in milestones: |
701 | - ... print value['title'] |
702 | + ... print(value['title']) |
703 | Debian 3.1 (2056-05-16) |
704 | Debian 3.1-rc1 (2056-02-16) |
705 | |
706 | @@ -302,7 +302,7 @@ |
707 | |
708 | >>> open_bugtasks = list(mozilla_search_listingview.search().batch) |
709 | >>> for bugtask in open_bugtasks: |
710 | - ... print bugtask.bug.id, bugtask.product.name, bugtask.status.name |
711 | + ... print(bugtask.bug.id, bugtask.product.name, bugtask.status.name) |
712 | 15 thunderbird NEW |
713 | 5 firefox NEW |
714 | 4 firefox NEW |
715 | @@ -328,7 +328,7 @@ |
716 | >>> mozilla_search_listingview = create_view(mozilla, '+bugs', form_values) |
717 | >>> invalid_bugtasks = list(mozilla_search_listingview.search().batch) |
718 | >>> for bugtask in invalid_bugtasks: |
719 | - ... print bugtask.bug.id, bugtask.product.name, bugtask.status.name |
720 | + ... print(bugtask.bug.id, bugtask.product.name, bugtask.status.name) |
721 | 15 thunderbird INVALID |
722 | |
723 | >>> open_bugtasks[0].transitionToStatus( |
724 | @@ -348,7 +348,7 @@ |
725 | >>> advanced_search_view = create_view( |
726 | ... mozilla, '+bugs', form_values) |
727 | >>> for value in advanced_search_view.getMilestoneWidgetValues(): |
728 | - ... print value['title'] |
729 | + ... print(value['title']) |
730 | Mozilla Firefox 1.0 (2056-10-16) |
731 | |
732 | |
733 | @@ -379,7 +379,8 @@ |
734 | >>> mozilla_search_listingview = create_view(mozilla, '+bugs', form_values) |
735 | >>> userdata_bugtasks = list(mozilla_search_listingview.search().batch) |
736 | >>> for bugtask in userdata_bugtasks: |
737 | - ... print bugtask.bug.id, bugtask.product.name, bugtask.bug.information_type.name |
738 | + ... print(bugtask.bug.id, bugtask.product.name, |
739 | + ... bugtask.bug.information_type.name) |
740 | 15 thunderbird USERDATA |
741 | |
742 | >>> open_bugtasks[0].bug.transitionToInformationType( |
743 | @@ -406,49 +407,49 @@ |
744 | return a plain search URL which, when visited, will display all open |
745 | bugs. |
746 | |
747 | - >>> print get_buglisting_search_filter_url() |
748 | + >>> print(get_buglisting_search_filter_url()) |
749 | +bugs?search=Search |
750 | |
751 | Passing an assignee will add an assignee field to the query string. Not |
752 | that get_buglisting_search_filter_url() doesn't check any of the data |
753 | that's passed to it; that's for the target search to do. |
754 | |
755 | - >>> print get_buglisting_search_filter_url(assignee='gmb') |
756 | + >>> print(get_buglisting_search_filter_url(assignee='gmb')) |
757 | +bugs?search=Search&field.assignee=gmb |
758 | |
759 | Passing an importance will add an importance field to the query string. |
760 | |
761 | - >>> print get_buglisting_search_filter_url(importance='UNDECIDED') |
762 | + >>> print(get_buglisting_search_filter_url(importance='UNDECIDED')) |
763 | +bugs?search=Search&field.importance=UNDECIDED |
764 | |
765 | Importance can be a single item or a list of items: |
766 | |
767 | - >>> print get_buglisting_search_filter_url(importance=['LOW', 'HIGH']) |
768 | + >>> print(get_buglisting_search_filter_url(importance=['LOW', 'HIGH'])) |
769 | +bugs?search=Search&field.importance=LOW&field.importance=HIGH |
770 | |
771 | Passing a status will add a status field to the query string: |
772 | |
773 | - >>> print get_buglisting_search_filter_url(status='TRIAGED') |
774 | + >>> print(get_buglisting_search_filter_url(status='TRIAGED')) |
775 | +bugs?search=Search&field.status=TRIAGED |
776 | |
777 | Status, like importance, can be a list: |
778 | |
779 | - >>> print get_buglisting_search_filter_url(status=['NEW', 'INCOMPLETE']) |
780 | + >>> print(get_buglisting_search_filter_url(status=['NEW', 'INCOMPLETE'])) |
781 | +bugs?search=Search&field.status=NEW&field.status=INCOMPLETE |
782 | |
783 | Passing a status_upstream parameter will add a status_upstream field to |
784 | the query string. |
785 | |
786 | - >>> print get_buglisting_search_filter_url( |
787 | - ... status_upstream='open_upstream') |
788 | + >>> print(get_buglisting_search_filter_url( |
789 | + ... status_upstream='open_upstream')) |
790 | +bugs?search=Search&field.status_upstream=open_upstream |
791 | |
792 | The fields will always be rendered in the order assignee, importance, |
793 | status, status_upstream, regardless of what order they're passed to |
794 | get_buglisting_search_filter_url(). |
795 | |
796 | - >>> print get_buglisting_search_filter_url( |
797 | + >>> print(get_buglisting_search_filter_url( |
798 | ... status_upstream='open_upstream', status='NEW', |
799 | - ... importance='WISHLIST', assignee='mark') |
800 | + ... importance='WISHLIST', assignee='mark')) |
801 | +bugs?search=Search&field.assignee=mark&field.importance=WISHLIST&field.status=NEW&field.status_upstream=open_upstream |
802 | |
803 | |
804 | === modified file 'lib/lp/bugs/browser/tests/bugwatch-views.txt' |
805 | --- lib/lp/bugs/browser/tests/bugwatch-views.txt 2011-12-24 17:49:30 +0000 |
806 | +++ lib/lp/bugs/browser/tests/bugwatch-views.txt 2018-06-30 16:32:46 +0000 |
807 | @@ -57,7 +57,7 @@ |
808 | |
809 | >>> new_watch_edit_view = create_initialized_view( |
810 | ... new_watch, '+edit') |
811 | - >>> print new_watch_edit_view.watch_has_activity |
812 | + >>> print(new_watch_edit_view.watch_has_activity) |
813 | False |
814 | |
815 | Adding a successful activity entry for the watch will cause it to show |
816 | @@ -72,7 +72,7 @@ |
817 | |
818 | >>> new_watch_edit_view = create_initialized_view( |
819 | ... new_watch, '+edit') |
820 | - >>> print new_watch_edit_view.watch_has_activity |
821 | + >>> print(new_watch_edit_view.watch_has_activity) |
822 | True |
823 | |
824 | Each entry in the recent_watch_activity list is a dict containing data |
825 | |
826 | === modified file 'lib/lp/bugs/browser/tests/person-bug-views.txt' |
827 | --- lib/lp/bugs/browser/tests/person-bug-views.txt 2016-01-26 15:47:37 +0000 |
828 | +++ lib/lp/bugs/browser/tests/person-bug-views.txt 2018-06-30 16:32:46 +0000 |
829 | @@ -99,9 +99,9 @@ |
830 | |
831 | >>> from lp.bugs.interfaces.bugtask import BugTaskStatus |
832 | >>> bug_task = reported_bugtasks[1] |
833 | - >>> print bug_task.distribution.name |
834 | + >>> print(bug_task.distribution.name) |
835 | ubuntu |
836 | - >>> print bug_task.sourcepackagename.name |
837 | + >>> print(bug_task.sourcepackagename.name) |
838 | thunderbird |
839 | >>> bug_task.bug.id |
840 | 9 |
841 | @@ -192,13 +192,13 @@ |
842 | >>> ubuntu_firefox_bugcounts['package_search_url'] |
843 | u'http://bugs.launchpad.dev/ubuntu/+source/mozilla-firefox?field.status=New&field.status=Incomplete&field.status=Confirmed&field.status=Triaged&field.status=In+Progress&field.status=Fix+Committed&search=Search' |
844 | |
845 | - >>> print ubuntu_firefox_bugcounts['open_bugs_count'] |
846 | + >>> print(ubuntu_firefox_bugcounts['open_bugs_count']) |
847 | 1 |
848 | - >>> print ubuntu_firefox_bugcounts['critical_bugs_count'] |
849 | + >>> print(ubuntu_firefox_bugcounts['critical_bugs_count']) |
850 | 0 |
851 | - >>> print ubuntu_firefox_bugcounts['unassigned_bugs_count'] |
852 | + >>> print(ubuntu_firefox_bugcounts['unassigned_bugs_count']) |
853 | 1 |
854 | - >>> print ubuntu_firefox_bugcounts['inprogress_bugs_count'] |
855 | + >>> print(ubuntu_firefox_bugcounts['inprogress_bugs_count']) |
856 | 0 |
857 | |
858 | >>> ubuntu_firefox_bugcounts['open_bugs_url'] |
859 | @@ -214,13 +214,13 @@ |
860 | bug counts, is also available. |
861 | |
862 | >>> total_counts = packagebugs_search_view.total_bug_counts |
863 | - >>> print total_counts['open_bugs_count'] |
864 | + >>> print(total_counts['open_bugs_count']) |
865 | 1 |
866 | - >>> print total_counts['critical_bugs_count'] |
867 | + >>> print(total_counts['critical_bugs_count']) |
868 | 0 |
869 | - >>> print total_counts['unassigned_bugs_count'] |
870 | + >>> print(total_counts['unassigned_bugs_count']) |
871 | 1 |
872 | - >>> print total_counts['inprogress_bugs_count'] |
873 | + >>> print(total_counts['inprogress_bugs_count']) |
874 | 0 |
875 | |
876 | Adding another bug will update the totals returned by |
877 | @@ -251,25 +251,25 @@ |
878 | We can see that the firefox bug counts have been altered: |
879 | |
880 | >>> firefox_bug_counts = packagebugs_search_view.package_bug_counts[0] |
881 | - >>> print firefox_bug_counts['open_bugs_count'] |
882 | + >>> print(firefox_bug_counts['open_bugs_count']) |
883 | 2 |
884 | - >>> print firefox_bug_counts['critical_bugs_count'] |
885 | + >>> print(firefox_bug_counts['critical_bugs_count']) |
886 | 1 |
887 | - >>> print firefox_bug_counts['unassigned_bugs_count'] |
888 | + >>> print(firefox_bug_counts['unassigned_bugs_count']) |
889 | 2 |
890 | - >>> print firefox_bug_counts['inprogress_bugs_count'] |
891 | + >>> print(firefox_bug_counts['inprogress_bugs_count']) |
892 | 0 |
893 | |
894 | And the total bug counts reflect this: |
895 | |
896 | >>> total_counts = packagebugs_search_view.total_bug_counts |
897 | - >>> print total_counts['open_bugs_count'] |
898 | + >>> print(total_counts['open_bugs_count']) |
899 | 2 |
900 | - >>> print total_counts['critical_bugs_count'] |
901 | + >>> print(total_counts['critical_bugs_count']) |
902 | 1 |
903 | - >>> print total_counts['unassigned_bugs_count'] |
904 | + >>> print(total_counts['unassigned_bugs_count']) |
905 | 2 |
906 | - >>> print total_counts['inprogress_bugs_count'] |
907 | + >>> print(total_counts['inprogress_bugs_count']) |
908 | 0 |
909 | |
910 | Adding a new bug to a package other than Ubuntu Firefox will naturally |
911 | @@ -292,37 +292,37 @@ |
912 | So the total counts will have changed: |
913 | |
914 | >>> total_counts = packagebugs_search_view.total_bug_counts |
915 | - >>> print total_counts['open_bugs_count'] |
916 | + >>> print(total_counts['open_bugs_count']) |
917 | 3 |
918 | - >>> print total_counts['critical_bugs_count'] |
919 | + >>> print(total_counts['critical_bugs_count']) |
920 | 1 |
921 | - >>> print total_counts['unassigned_bugs_count'] |
922 | + >>> print(total_counts['unassigned_bugs_count']) |
923 | 3 |
924 | - >>> print total_counts['inprogress_bugs_count'] |
925 | + >>> print(total_counts['inprogress_bugs_count']) |
926 | 1 |
927 | |
928 | Whilst the firefox ones remain static: |
929 | |
930 | >>> firefox_bug_counts = packagebugs_search_view.package_bug_counts[0] |
931 | - >>> print firefox_bug_counts['open_bugs_count'] |
932 | + >>> print(firefox_bug_counts['open_bugs_count']) |
933 | 2 |
934 | - >>> print firefox_bug_counts['critical_bugs_count'] |
935 | + >>> print(firefox_bug_counts['critical_bugs_count']) |
936 | 1 |
937 | - >>> print firefox_bug_counts['unassigned_bugs_count'] |
938 | + >>> print(firefox_bug_counts['unassigned_bugs_count']) |
939 | 2 |
940 | - >>> print firefox_bug_counts['inprogress_bugs_count'] |
941 | + >>> print(firefox_bug_counts['inprogress_bugs_count']) |
942 | 0 |
943 | |
944 | And the pmount counts make up the difference between the two: |
945 | |
946 | >>> pmount_bug_counts = packagebugs_search_view.package_bug_counts[1] |
947 | - >>> print pmount_bug_counts['open_bugs_count'] |
948 | + >>> print(pmount_bug_counts['open_bugs_count']) |
949 | 1 |
950 | - >>> print pmount_bug_counts['critical_bugs_count'] |
951 | + >>> print(pmount_bug_counts['critical_bugs_count']) |
952 | 0 |
953 | - >>> print pmount_bug_counts['unassigned_bugs_count'] |
954 | + >>> print(pmount_bug_counts['unassigned_bugs_count']) |
955 | 1 |
956 | - >>> print pmount_bug_counts['inprogress_bugs_count'] |
957 | + >>> print(pmount_bug_counts['inprogress_bugs_count']) |
958 | 1 |
959 | |
960 | >>> transaction.abort() |
961 | @@ -378,9 +378,9 @@ |
962 | A new user will have no related bugs, and therefore no related |
963 | milestones. |
964 | |
965 | - >>> print pretty(list(related_bugs_view.searchUnbatched())) |
966 | + >>> print(pretty(list(related_bugs_view.searchUnbatched()))) |
967 | [] |
968 | - >>> print pretty(related_bugs_view.getMilestoneWidgetValues()) |
969 | + >>> print(pretty(related_bugs_view.getMilestoneWidgetValues())) |
970 | [] |
971 | |
972 | Even if the user registers a product with a milestone, the list of |
973 | @@ -389,7 +389,7 @@ |
974 | >>> product = factory.makeProduct(owner=user, displayname='Coughing Bob') |
975 | >>> milestone09 = factory.makeMilestone(product=product, name="0.9") |
976 | |
977 | - >>> print pretty(related_bugs_view.getMilestoneWidgetValues()) |
978 | + >>> print(pretty(related_bugs_view.getMilestoneWidgetValues())) |
979 | [] |
980 | |
981 | Even if the user files a bug against a product with a milestone, the |
982 | @@ -398,9 +398,9 @@ |
983 | >>> bug = factory.makeBug(target=product, owner=user) |
984 | >>> transaction.commit() |
985 | |
986 | - >>> print pretty(list(related_bugs_view.searchUnbatched())) |
987 | + >>> print(pretty(list(related_bugs_view.searchUnbatched()))) |
988 | [<BugTask ...>] |
989 | - >>> print pretty(related_bugs_view.getMilestoneWidgetValues()) |
990 | + >>> print(pretty(related_bugs_view.getMilestoneWidgetValues())) |
991 | [] |
992 | |
993 | Only when a milestone is set for a related bug task does the advanced |
994 | @@ -409,7 +409,7 @@ |
995 | >>> bug.bugtasks[0].milestone = milestone09 |
996 | >>> transaction.commit() |
997 | |
998 | - >>> print pretty(related_bugs_view.getMilestoneWidgetValues()) |
999 | + >>> print(pretty(related_bugs_view.getMilestoneWidgetValues())) |
1000 | [{'checked': False, |
1001 | 'title': u'Coughing Bob 0.9', |
1002 | 'value': ...}] |
1003 | @@ -426,7 +426,7 @@ |
1004 | The earlier bug was reported by our user, so the assigned milestone |
1005 | will already appear. |
1006 | |
1007 | - >>> print pretty(reported_bugs_view.getMilestoneWidgetValues()) |
1008 | + >>> print(pretty(reported_bugs_view.getMilestoneWidgetValues())) |
1009 | [{'checked': False, |
1010 | 'title': u'Coughing Bob 0.9', |
1011 | 'value': ...}] |
1012 | @@ -438,7 +438,7 @@ |
1013 | >>> bug = factory.makeBug(target=product, owner=user) |
1014 | >>> bug.bugtasks[0].milestone = milestone10 |
1015 | |
1016 | - >>> print pretty(reported_bugs_view.getMilestoneWidgetValues()) |
1017 | + >>> print(pretty(reported_bugs_view.getMilestoneWidgetValues())) |
1018 | [{'checked': False, |
1019 | 'title': u'Coughing Bob 1.0', |
1020 | 'value': ...}, |
1021 | @@ -456,14 +456,14 @@ |
1022 | No bugs have been assigned to our user, so no relevant milestones are |
1023 | found. |
1024 | |
1025 | - >>> print pretty(assigned_bugs_view.getMilestoneWidgetValues()) |
1026 | + >>> print(pretty(assigned_bugs_view.getMilestoneWidgetValues())) |
1027 | [] |
1028 | |
1029 | Once a bug has been assigned, the milestone appears. |
1030 | |
1031 | >>> bug.bugtasks[0].transitionToAssignee(user) |
1032 | |
1033 | - >>> print pretty(assigned_bugs_view.getMilestoneWidgetValues()) |
1034 | + >>> print(pretty(assigned_bugs_view.getMilestoneWidgetValues())) |
1035 | [{'checked': False, |
1036 | 'title': u'Coughing Bob 1.0', |
1037 | 'value': ...}] |
1038 | @@ -478,7 +478,7 @@ |
1039 | Our user has not commented on any bugs, so no relevant milestones are |
1040 | found. |
1041 | |
1042 | - >>> print pretty(commented_bugs_view.getMilestoneWidgetValues()) |
1043 | + >>> print(pretty(commented_bugs_view.getMilestoneWidgetValues())) |
1044 | [] |
1045 | |
1046 | Once the user has commented, the related milestone does appear. |
1047 | @@ -486,7 +486,7 @@ |
1048 | >>> bug.newMessage(user) |
1049 | <Message at ...> |
1050 | |
1051 | - >>> print pretty(commented_bugs_view.getMilestoneWidgetValues()) |
1052 | + >>> print(pretty(commented_bugs_view.getMilestoneWidgetValues())) |
1053 | [{'checked': False, |
1054 | 'title': u'Coughing Bob 1.0', |
1055 | 'value': ...}] |
1056 | @@ -502,7 +502,7 @@ |
1057 | Our new_user is not subscribed to any bugs, so no relevant milestones |
1058 | are found. |
1059 | |
1060 | - >>> print pretty(subscribed_bugs_view.getMilestoneWidgetValues()) |
1061 | + >>> print(pretty(subscribed_bugs_view.getMilestoneWidgetValues())) |
1062 | [] |
1063 | |
1064 | Once new_user has subscribed, the related milestones appear. |
1065 | @@ -510,7 +510,7 @@ |
1066 | >>> bug.subscribe(new_user, new_user) |
1067 | <lp.bugs.model.bugsubscription.BugSubscription ...> |
1068 | |
1069 | - >>> print pretty(subscribed_bugs_view.getMilestoneWidgetValues()) |
1070 | + >>> print(pretty(subscribed_bugs_view.getMilestoneWidgetValues())) |
1071 | [{'checked': False, |
1072 | 'title': u'Coughing Bob 1.0', |
1073 | 'value': ...}] |
1074 | |
1075 | === modified file 'lib/lp/bugs/browser/tests/test_views.py' |
1076 | --- lib/lp/bugs/browser/tests/test_views.py 2011-12-28 17:03:06 +0000 |
1077 | +++ lib/lp/bugs/browser/tests/test_views.py 2018-06-30 16:32:46 +0000 |
1078 | @@ -44,8 +44,9 @@ |
1079 | path = filename |
1080 | layer = special_test_layer.get(path, DatabaseFunctionalLayer) |
1081 | one_test = LayeredDocFileSuite( |
1082 | - path, setUp=setUp, tearDown=tearDown, layer=layer, |
1083 | - stdout_logging_level=logging.WARNING) |
1084 | + path, |
1085 | + setUp=lambda test: setUp(test, future=True), tearDown=tearDown, |
1086 | + layer=layer, stdout_logging_level=logging.WARNING) |
1087 | suite.addTest(one_test) |
1088 | |
1089 | return suite |
1090 | |
1091 | === modified file 'lib/lp/bugs/stories/bug-also-affects/xx-also-affects-new-upstream.txt' |
1092 | --- lib/lp/bugs/stories/bug-also-affects/xx-also-affects-new-upstream.txt 2016-01-26 15:47:37 +0000 |
1093 | +++ lib/lp/bugs/stories/bug-also-affects/xx-also-affects-new-upstream.txt 2018-06-30 16:32:46 +0000 |
1094 | @@ -30,7 +30,7 @@ |
1095 | |
1096 | >>> user_browser.open( |
1097 | ... 'http://bugs.launchpad.dev/tomcat/+bug/2/+affects-new-product') |
1098 | - >>> print user_browser.title |
1099 | + >>> print(user_browser.title) |
1100 | Register project affected by... |
1101 | >>> user_browser.getControl('Bug URL').value = ( |
1102 | ... 'http://bugs.foo.org/bugs/show_bug.cgi?id=421') |
1103 | @@ -39,7 +39,7 @@ |
1104 | >>> user_browser.getControl('Project summary').value = 'The Bar Project' |
1105 | >>> user_browser.getControl('Continue').click() |
1106 | |
1107 | - >>> print user_browser.title |
1108 | + >>> print(user_browser.title) |
1109 | Register project affected by... |
1110 | |
1111 | >>> print_feedback_messages(user_browser.contents) |
1112 | @@ -73,7 +73,7 @@ |
1113 | |
1114 | >>> user_browser.goBack() |
1115 | >>> user_browser.getControl('Use Existing Project').click() |
1116 | - >>> print user_browser.title |
1117 | + >>> print(user_browser.title) |
1118 | Register project affected by... |
1119 | >>> print_feedback_messages(user_browser.contents) |
1120 | There is 1 error. |
1121 | @@ -106,7 +106,7 @@ |
1122 | >>> user_browser.getControl('Project ID').value = 'bazfoo' |
1123 | >>> user_browser.getControl('Project summary').value = 'The Foo Project' |
1124 | >>> user_browser.getControl('Continue').click() |
1125 | - >>> print user_browser.title |
1126 | + >>> print(user_browser.title) |
1127 | Register project affected by... |
1128 | >>> print_feedback_messages(user_browser.contents) |
1129 | There is 1 error. |
1130 | |
1131 | === modified file 'lib/lp/bugs/stories/bug-also-affects/xx-bug-also-affects.txt' |
1132 | --- lib/lp/bugs/stories/bug-also-affects/xx-bug-also-affects.txt 2016-01-26 15:47:37 +0000 |
1133 | +++ lib/lp/bugs/stories/bug-also-affects/xx-bug-also-affects.txt 2018-06-30 16:32:46 +0000 |
1134 | @@ -87,7 +87,7 @@ |
1135 | |
1136 | >>> browser.open('http://localhost/firefox/+bug/1') |
1137 | >>> browser.getLink(url='+distrotask').click() |
1138 | - >>> print browser.url |
1139 | + >>> print(browser.url) |
1140 | http://bugs.launchpad.dev/firefox/+bug/1/+distrotask |
1141 | |
1142 | >>> browser.getControl(name='field.distribution').value = ['debian'] |
1143 | @@ -95,7 +95,7 @@ |
1144 | >>> browser.getControl('URL').value = ( |
1145 | ... 'http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=123') |
1146 | >>> browser.getControl('Continue').click() |
1147 | - >>> print browser.url |
1148 | + >>> print(browser.url) |
1149 | http://bugs.launchpad.dev/debian/+source/alsa-utils/+bug/1 |
1150 | |
1151 | If we try to add an Ubuntu task together with a bug watch we get an |
1152 | @@ -107,7 +107,7 @@ |
1153 | >>> browser.getControl('URL').value = ( |
1154 | ... 'https://bugzilla.mozilla.org/show_bug.cgi?id=84') |
1155 | >>> browser.getControl('Continue').click() |
1156 | - >>> print browser.url |
1157 | + >>> print(browser.url) |
1158 | http://bugs.launchpad.dev/debian/+source/alsa-utils/+bug/1/+distrotask |
1159 | |
1160 | >>> print_feedback_messages(browser.contents) |
1161 | @@ -121,20 +121,20 @@ |
1162 | |
1163 | >>> browser.getControl('URL').value = '' |
1164 | >>> browser.getControl('Continue').click() |
1165 | - >>> print browser.url |
1166 | + >>> print(browser.url) |
1167 | http://bugs.launchpad.dev/ubuntu/+source/alsa-utils/+bug/1 |
1168 | |
1169 | It's not possible to change a bugtask to a existing one. |
1170 | |
1171 | >>> browser.getLink( |
1172 | ... url='ubuntu/+source/mozilla-firefox/+bug/1/+editstatus').click() |
1173 | - >>> print browser.url |
1174 | + >>> print(browser.url) |
1175 | http://bugs.../ubuntu/+source/mozilla-firefox/+bug/1/+editstatus |
1176 | |
1177 | >>> browser.getControl(name="ubuntu_mozilla-firefox.target.package" |
1178 | ... ).value = 'alsa-utils' |
1179 | >>> browser.getControl('Save Changes').click() |
1180 | - >>> print browser.url |
1181 | + >>> print(browser.url) |
1182 | http://bugs.../ubuntu/+source/mozilla-firefox/+bug/1/+editstatus |
1183 | |
1184 | >>> print_feedback_messages(browser.contents) |
1185 | @@ -144,7 +144,7 @@ |
1186 | >>> browser.getControl(name="ubuntu_mozilla-firefox.target.package" |
1187 | ... ).value = 'pmount' |
1188 | >>> browser.getControl('Save Changes').click() |
1189 | - >>> print browser.url |
1190 | + >>> print(browser.url) |
1191 | http://bugs.launchpad.dev/ubuntu/+source/pmount/+bug/1 |
1192 | |
1193 | We want to make people aware of that they should link bugtasks to bug |
1194 | @@ -165,7 +165,7 @@ |
1195 | >>> browser.getControl('Distribution').value = ['debian'] |
1196 | >>> browser.getControl('Source Package Name').value = 'pmount' |
1197 | >>> browser.getControl('Continue').click() |
1198 | - >>> print browser.url |
1199 | + >>> print(browser.url) |
1200 | http://bugs.launchpad.dev/ubuntu/+source/pmount/+bug/1/+distrotask |
1201 | |
1202 | >>> print_feedback_messages(browser.contents) |
1203 | @@ -181,7 +181,7 @@ |
1204 | notification will still be displayed. |
1205 | |
1206 | >>> browser.getControl('Continue').click() |
1207 | - >>> print browser.url |
1208 | + >>> print(browser.url) |
1209 | http://bugs.launchpad.dev/ubuntu/+source/pmount/+bug/1/+distrotask |
1210 | |
1211 | >>> print_feedback_messages(browser.contents) |
1212 | @@ -191,10 +191,10 @@ |
1213 | redirected to the bug page. |
1214 | |
1215 | >>> browser.getControl('Add Anyway').click() |
1216 | - >>> print browser.url |
1217 | + >>> print(browser.url) |
1218 | http://bugs.launchpad.dev/debian/+source/pmount/+bug/1 |
1219 | |
1220 | - >>> print browser.contents |
1221 | + >>> print(browser.contents) |
1222 | <... |
1223 | ...>pmount (Debian)</a>... |
1224 | ... |
1225 | @@ -230,7 +230,7 @@ |
1226 | >>> browser.getLink(url='+choose-affected-product').click() |
1227 | >>> browser.getControl(name='field.product').value = other_product_name |
1228 | >>> browser.getControl('Continue').click() |
1229 | - >>> print browser.url |
1230 | + >>> print(browser.url) |
1231 | http://bugs.launchpad.dev/proprietary-product/+bug/.../+choose-affected-product |
1232 | |
1233 | >>> print_feedback_messages(browser.contents) |
1234 | @@ -257,7 +257,7 @@ |
1235 | >>> user_browser.getControl('Project').value |
1236 | Traceback (most recent call last): |
1237 | ... |
1238 | - LookupError: label 'Project' |
1239 | + LookupError: label u'Project' |
1240 | |
1241 | >>> user_browser.getControl(name='field.product').value |
1242 | 'evolution' |
1243 | @@ -266,7 +266,7 @@ |
1244 | product, though. |
1245 | |
1246 | >>> user_browser.getLink('Choose another project').click() |
1247 | - >>> print user_browser.url |
1248 | + >>> print(user_browser.url) |
1249 | http://bugs.launchpad.dev/ubuntu/+source/evolution/+bug/6/+choose-affected-product?field.product=evolution |
1250 | |
1251 | >>> user_browser.getControl('Project').value |
1252 | @@ -276,7 +276,7 @@ |
1253 | to the bug page: |
1254 | |
1255 | >>> cancel_link = user_browser.getLink('Cancel') |
1256 | - >>> print cancel_link.url |
1257 | + >>> print(cancel_link.url) |
1258 | http://bugs.launchpad.dev/ubuntu/+source/evolution/+bug/6 |
1259 | |
1260 | But we'll choose Thunderbird. |
1261 | @@ -311,7 +311,7 @@ |
1262 | tracker. |
1263 | |
1264 | >>> user_browser.getControl('Add to Bug Report').click() |
1265 | - >>> print user_browser.url |
1266 | + >>> print(user_browser.url) |
1267 | http://bugs.launchpad.dev/thunderbird/+bug/6 |
1268 | |
1269 | Let's add the evolution task as well. |
1270 | @@ -319,12 +319,12 @@ |
1271 | >>> user_browser.open( |
1272 | ... 'http://launchpad.dev/ubuntu/+source/evolution/+bug/6') |
1273 | >>> user_browser.getLink(url='+choose-affected-product').click() |
1274 | - >>> print user_browser.url |
1275 | + >>> print(user_browser.url) |
1276 | http://.../ubuntu/+source/evolution/+bug/6/+choose-affected-product |
1277 | |
1278 | >>> user_browser.getControl('Add to Bug Report').click() |
1279 | |
1280 | - >>> print user_browser.url |
1281 | + >>> print(user_browser.url) |
1282 | http://bugs.launchpad.dev/evolution/+bug/6 |
1283 | |
1284 | |
1285 | @@ -336,14 +336,14 @@ |
1286 | >>> user_browser.open( |
1287 | ... 'http://launchpad.dev/debian/+source/mozilla-firefox/+bug/3') |
1288 | >>> user_browser.getLink(url='+choose-affected-product').click() |
1289 | - >>> print user_browser.url |
1290 | + >>> print(user_browser.url) |
1291 | http://.../debian/+source/mozilla-firefox/+bug/3/+choose-affected-product |
1292 | |
1293 | >>> user_browser.getControl('Project').value |
1294 | '' |
1295 | |
1296 | >>> user_browser.getControl('Continue').click() |
1297 | - >>> print user_browser.url |
1298 | + >>> print(user_browser.url) |
1299 | http://.../debian/+source/mozilla-firefox/+bug/3/+choose-affected-product |
1300 | |
1301 | We get a nice error message. |
1302 | @@ -357,7 +357,7 @@ |
1303 | |
1304 | >>> user_browser.getControl('Project').value = 'no-such-product' |
1305 | >>> user_browser.getControl('Continue').click() |
1306 | - >>> print user_browser.url |
1307 | + >>> print(user_browser.url) |
1308 | http://.../debian/+source/mozilla-firefox/+bug/3/+choose-affected-product |
1309 | |
1310 | >>> print_feedback_messages(user_browser.contents) |
1311 | @@ -365,7 +365,7 @@ |
1312 | There is no project in Launchpad named "no-such-product"... |
1313 | |
1314 | >>> search_link = user_browser.getLink('search for it') |
1315 | - >>> print search_link.url |
1316 | + >>> print(search_link.url) |
1317 | http://bugs.launchpad.dev/projects |
1318 | |
1319 | Since we don't restrict the input, the user can write anything, so we |
1320 | @@ -375,9 +375,9 @@ |
1321 | ... 'http://launchpad.dev/debian/+source/mozilla-firefox/+bug/3' |
1322 | ... '/+choose-affected-product') |
1323 | |
1324 | - >>> user_browser.getControl('Project').value = 'N\xc3\xb6 Such Product&<>' |
1325 | + >>> user_browser.getControl('Project').value = b'N\xc3\xb6 Such Product&<>' |
1326 | >>> user_browser.getControl('Continue').click() |
1327 | - >>> print user_browser.url |
1328 | + >>> print(user_browser.url) |
1329 | http://.../debian/+source/mozilla-firefox/+bug/3/+choose-affected-product |
1330 | |
1331 | >>> print_feedback_messages(user_browser.contents) |
1332 | @@ -406,7 +406,7 @@ |
1333 | Launchpad redirects to the newly created bugtask page, with a row for |
1334 | the new bug watch. |
1335 | |
1336 | - >>> print user_browser.url |
1337 | + >>> print(user_browser.url) |
1338 | http://bugs.launchpad.dev/alsa-utils/+bug/3 |
1339 | |
1340 | >>> affects_table = find_tags_by_class( |
1341 | @@ -427,12 +427,12 @@ |
1342 | And now we try to add the same upstream again. |
1343 | |
1344 | >>> user_browser.getLink(url='+choose-affected-product').click() |
1345 | - >>> print user_browser.url |
1346 | + >>> print(user_browser.url) |
1347 | http://bugs.launchpad.dev/alsa-utils/+bug/3/+choose-affected-product |
1348 | |
1349 | >>> user_browser.getControl('Project').value = 'alsa-utils' |
1350 | >>> user_browser.getControl('Continue').click() |
1351 | - >>> print user_browser.url |
1352 | + >>> print(user_browser.url) |
1353 | http://bugs.launchpad.dev/alsa-utils/+bug/3/+choose-affected-product |
1354 | |
1355 | We get a nice error message. |
1356 | @@ -446,20 +446,20 @@ |
1357 | >>> user_browser.getControl('Project').value = 'evolution' |
1358 | >>> user_browser.getControl('Continue').click() |
1359 | >>> user_browser.getControl('Add to Bug Report').click() |
1360 | - >>> print user_browser.url |
1361 | + >>> print(user_browser.url) |
1362 | http://bugs.launchpad.dev/evolution/+bug/3 |
1363 | |
1364 | But if we try to change it to the target of an existing upstream |
1365 | bugtask, our validator springs into action. |
1366 | |
1367 | >>> user_browser.getLink(url='evolution/+bug/3/+editstatus').click() |
1368 | - >>> print user_browser.url |
1369 | + >>> print(user_browser.url) |
1370 | http://bugs.launchpad.dev/evolution/+bug/3/+editstatus |
1371 | |
1372 | >>> user_browser.getControl(name='evolution.target.product').value = ( |
1373 | ... 'alsa-utils') |
1374 | >>> user_browser.getControl('Save Changes').click() |
1375 | - >>> print user_browser.url |
1376 | + >>> print(user_browser.url) |
1377 | http://bugs.launchpad.dev/evolution/+bug/3/+editstatus |
1378 | |
1379 | >>> print_feedback_messages(user_browser.contents) |
1380 | @@ -482,7 +482,7 @@ |
1381 | ... '+choose-affected-product') |
1382 | >>> user_browser.getControl('Project').value = 'gnome-terminal' |
1383 | >>> user_browser.getControl('Continue').click() |
1384 | - >>> print user_browser.url |
1385 | + >>> print(user_browser.url) |
1386 | http://bugs.launchpad.dev/firefox/+bug/4/+choose-affected-product |
1387 | |
1388 | >>> user_browser.getControl('I have the URL').selected = True |
1389 | @@ -493,19 +493,19 @@ |
1390 | that points back to the bug page: |
1391 | |
1392 | >>> cancel_link = user_browser.getLink('Cancel') |
1393 | - >>> print cancel_link.url |
1394 | + >>> print(cancel_link.url) |
1395 | http://bugs.launchpad.dev/firefox/+bug/4 |
1396 | |
1397 | But we're happy, so we add the bug watch. |
1398 | |
1399 | >>> user_browser.getControl('Add to Bug Report').click() |
1400 | - >>> print user_browser.url |
1401 | + >>> print(user_browser.url) |
1402 | http://bugs.launchpad.dev/gnome-terminal/+bug/4 |
1403 | |
1404 | >>> bug_watches = find_portlet( |
1405 | ... user_browser.contents, 'Remote bug watches') |
1406 | >>> for li in bug_watches('li'): |
1407 | - ... print li.findAll('a')[0].renderContents() |
1408 | + ... print(li.findAll('a')[0].renderContents()) |
1409 | gnome-bugzilla #42 |
1410 | |
1411 | It's possible to supply an HTTPS URL, even though the bug tracker's base |
1412 | @@ -516,14 +516,14 @@ |
1413 | ... '+choose-affected-product') |
1414 | >>> user_browser.getControl('Project').value = 'netapplet' |
1415 | >>> user_browser.getControl('Continue').click() |
1416 | - >>> print user_browser.url |
1417 | + >>> print(user_browser.url) |
1418 | http://bugs.launchpad.dev/firefox/+bug/4/+choose-affected-product |
1419 | |
1420 | >>> user_browser.getControl('I have the URL').selected = True |
1421 | >>> user_browser.getControl(name='field.bug_url').value = ( |
1422 | ... u'https://bugzilla.gnome.org/bugs/show_bug.cgi?id=84') |
1423 | >>> user_browser.getControl('Add to Bug Report').click() |
1424 | - >>> print user_browser.url |
1425 | + >>> print(user_browser.url) |
1426 | http://bugs.launchpad.dev/netapplet/+bug/4 |
1427 | |
1428 | The URL was automatically converted to HTTP: |
1429 | @@ -531,7 +531,7 @@ |
1430 | >>> bug_watches = find_portlet( |
1431 | ... user_browser.contents, 'Remote bug watches') |
1432 | >>> for li in bug_watches('li'): |
1433 | - ... print li.findAll('a')[0]['href'] |
1434 | + ... print(li.findAll('a')[0]['href']) |
1435 | http://bugzilla.gnome.org/bugs/show_bug.cgi?id=42 |
1436 | http://bugzilla.gnome.org/bugs/show_bug.cgi?id=84 |
1437 | |
1438 | @@ -543,18 +543,18 @@ |
1439 | ... '+choose-affected-product') |
1440 | >>> user_browser.getControl('Project').value = 'alsa-utils' |
1441 | >>> user_browser.getControl('Continue').click() |
1442 | - >>> print user_browser.url |
1443 | + >>> print(user_browser.url) |
1444 | http://bugs.launchpad.dev/firefox/+bug/4/+choose-affected-product |
1445 | |
1446 | >>> user_browser.getControl('I have the URL').selected = True |
1447 | >>> user_browser.getControl(name='field.bug_url').value = ( |
1448 | ... u'http://bugs.unknown/42') |
1449 | >>> user_browser.getControl('Add to Bug Report').click() |
1450 | - >>> print user_browser.url |
1451 | + >>> print(user_browser.url) |
1452 | http://bugs.launchpad.dev/firefox/+bug/4/+choose-affected-product |
1453 | |
1454 | >>> for message in find_tags_by_class(user_browser.contents, 'message'): |
1455 | - ... print message.renderContents() |
1456 | + ... print(message.renderContents()) |
1457 | There is 1 error. |
1458 | Launchpad does not recognize the bug tracker at this URL. |
1459 | |
1460 | @@ -565,7 +565,7 @@ |
1461 | >>> user_browser.getControl(name='field.bug_url').value = ( |
1462 | ... u"http://new.trac/ticket/42") |
1463 | >>> user_browser.getControl('Add to Bug Report').click() |
1464 | - >>> print user_browser.url |
1465 | + >>> print(user_browser.url) |
1466 | http://bugs.launchpad.dev/firefox/+bug/4/+choose-affected-product |
1467 | |
1468 | >>> print_feedback_messages(user_browser.contents) |
1469 | @@ -576,7 +576,7 @@ |
1470 | As before, if we change our mind, we can back out if we want. |
1471 | |
1472 | >>> cancel_link = user_browser.getLink('Cancel') |
1473 | - >>> print cancel_link.url |
1474 | + >>> print(cancel_link.url) |
1475 | http://bugs.launchpad.dev/firefox/+bug/4 |
1476 | |
1477 | Now the user confirms they want us to register the bug tracker for them |
1478 | @@ -586,7 +586,7 @@ |
1479 | |
1480 | The bug watch is linked, and we're redirected to the bug's page. |
1481 | |
1482 | - >>> print user_browser.url |
1483 | + >>> print(user_browser.url) |
1484 | http://bugs.launchpad.dev/alsa-utils/+bug/4 |
1485 | |
1486 | The bug tracker and bug watch were added. We can see that the bugtracker |
1487 | @@ -596,7 +596,7 @@ |
1488 | >>> bug_watches = find_portlet( |
1489 | ... user_browser.contents, 'Remote bug watches') |
1490 | >>> for li in bug_watches('li'): |
1491 | - ... print li.findAll('a')[0].renderContents() |
1492 | + ... print(li.findAll('a')[0].renderContents()) |
1493 | gnome-bugzilla #42 |
1494 | gnome-bugzilla #84 |
1495 | auto-new.trac #42 |
1496 | @@ -609,20 +609,20 @@ |
1497 | ... '+choose-affected-product') |
1498 | >>> user_browser.getControl('Project').value = 'thunderbird' |
1499 | >>> user_browser.getControl('Continue').click() |
1500 | - >>> print user_browser.url |
1501 | + >>> print(user_browser.url) |
1502 | http://bugs.launchpad.dev/firefox/+bug/4/+choose-affected-product |
1503 | |
1504 | >>> user_browser.getControl('I have the URL').selected = True |
1505 | >>> user_browser.getControl(name='field.bug_url').value = ( |
1506 | ... u'bugzilla.gnome.org/bugs/show_bug.cgi?id=168') |
1507 | >>> user_browser.getControl('Add to Bug Report').click() |
1508 | - >>> print user_browser.url |
1509 | + >>> print(user_browser.url) |
1510 | http://bugs.launchpad.dev/thunderbird/+bug/4 |
1511 | |
1512 | >>> bug_watches = find_portlet( |
1513 | ... user_browser.contents, 'Remote bug watches') |
1514 | >>> for li in bug_watches('li'): |
1515 | - ... print li.findAll('a')[0]['href'] |
1516 | + ... print(li.findAll('a')[0]['href']) |
1517 | http://bugzilla.gnome.org/bugs/show_bug.cgi?id=168 |
1518 | http://bugzilla.gnome.org/bugs/show_bug.cgi?id=42 |
1519 | http://bugzilla.gnome.org/bugs/show_bug.cgi?id=84 |
1520 | @@ -659,19 +659,19 @@ |
1521 | confirmation. |
1522 | |
1523 | >>> user_browser.getControl('Add to Bug Report').click() |
1524 | - >>> print user_browser.url |
1525 | + >>> print(user_browser.url) |
1526 | http://bugs.launchpad.dev/gnome-terminal/+bug/12 |
1527 | |
1528 | >>> def print_remote_bug_watches_portlet(browser): |
1529 | ... bug_watches = find_portlet( |
1530 | ... browser.contents, 'Remote bug watches') |
1531 | ... for li in bug_watches('li'): |
1532 | - ... print ' '.join(extract_text(li).splitlines()) |
1533 | + ... print(' '.join(extract_text(li).splitlines())) |
1534 | ... bug_watch_link = li.find('a', {'class': 'link-external'}) |
1535 | ... if bug_watch_link is None: |
1536 | - ... print ' --> None' |
1537 | + ... print(' --> None') |
1538 | ... else: |
1539 | - ... print ' --> %s' % bug_watch_link.get('href') |
1540 | + ... print(' --> %s' % bug_watch_link.get('href')) |
1541 | |
1542 | >>> import re |
1543 | >>> def print_assigned_bugtasks(browser): |
1544 | @@ -687,10 +687,10 @@ |
1545 | ... if assignee and not 'Unassigned' in assignee: |
1546 | ... assignee_link = cells[-2].a |
1547 | ... if assignee_link is None: |
1548 | - ... print '%s -->\n %s' % (affects, assignee) |
1549 | + ... print('%s -->\n %s' % (affects, assignee)) |
1550 | ... else: |
1551 | - ... print '%s -->\n %s\n %s' % ( |
1552 | - ... affects, assignee, assignee_link['href']) |
1553 | + ... print('%s -->\n %s\n %s' % ( |
1554 | + ... affects, assignee, assignee_link['href'])) |
1555 | |
1556 | >>> print_remote_bug_watches_portlet(user_browser) |
1557 | auto-dark-master-o-bugs... |
1558 | @@ -702,7 +702,7 @@ |
1559 | mailto:dark-master-o-bugs@mylittlepony.com |
1560 | |
1561 | >>> user_browser.contents.count( |
1562 | - ... 'mailto:dark-master-o-bugs@mylittlepony.com') |
1563 | + ... b'mailto:dark-master-o-bugs@mylittlepony.com') |
1564 | 3 |
1565 | |
1566 | To evade harvesting, the email address above is obfuscated if you're not |
1567 | @@ -718,5 +718,5 @@ |
1568 | auto-dark-master-o-bugs |
1569 | |
1570 | >>> anon_browser.contents.count( |
1571 | - ... 'mailto:dark-master-o-bugs@mylittlepony.com') |
1572 | + ... b'mailto:dark-master-o-bugs@mylittlepony.com') |
1573 | 0 |
1574 | |
1575 | === modified file 'lib/lp/bugs/stories/bug-also-affects/xx-bugtracker-information.txt' |
1576 | --- lib/lp/bugs/stories/bug-also-affects/xx-bugtracker-information.txt 2012-06-12 16:09:33 +0000 |
1577 | +++ lib/lp/bugs/stories/bug-also-affects/xx-bugtracker-information.txt 2018-06-30 16:32:46 +0000 |
1578 | @@ -8,7 +8,7 @@ |
1579 | ... 'http://launchpad.dev/firefox/+bug/1/+choose-affected-product') |
1580 | >>> user_browser.getControl('Project').value = 'gnome-terminal' |
1581 | >>> user_browser.getControl('Continue').click() |
1582 | - >>> print user_browser.contents.decode('ascii', 'ignore') |
1583 | + >>> print(user_browser.contents.decode('ascii', 'ignore')) |
1584 | <...GNOME Terminal uses |
1585 | <a href="http://bugzilla.gnome.org/bugs">GnomeGBug GTracker</a> |
1586 | to track its bugs... |
1587 | @@ -30,7 +30,7 @@ |
1588 | ... 'http://launchpad.dev/firefox/+bug/1/+choose-affected-product') |
1589 | >>> user_browser.getControl('Project').value = 'thunderbird' |
1590 | >>> user_browser.getControl('Continue').click() |
1591 | - >>> print user_browser.contents.decode('ascii', 'ignore') |
1592 | + >>> print(user_browser.contents.decode('ascii', 'ignore')) |
1593 | <...Mozilla Thunderbird doesn't use Launchpad to track its bugs... |
1594 | |
1595 | >>> print_upstream_linking_form(user_browser) |
1596 | |
1597 | === modified file 'lib/lp/bugs/stories/bug-also-affects/xx-duplicate-bugwatches.txt' |
1598 | --- lib/lp/bugs/stories/bug-also-affects/xx-duplicate-bugwatches.txt 2017-10-23 00:16:39 +0000 |
1599 | +++ lib/lp/bugs/stories/bug-also-affects/xx-duplicate-bugwatches.txt 2018-06-30 16:32:46 +0000 |
1600 | @@ -21,7 +21,7 @@ |
1601 | >>> bugwatch_portlet = find_portlet( |
1602 | ... user_browser.contents, 'Remote bug watches') |
1603 | >>> for li_tag in bugwatch_portlet.findAll('li'): |
1604 | - ... print li_tag.findAll('a')[0].renderContents() |
1605 | + ... print(li_tag.findAll('a')[0].renderContents()) |
1606 | debbugs #42 |
1607 | |
1608 | If we add another bug watch, pointing to the same URL, the previous one |
1609 | @@ -42,12 +42,12 @@ |
1610 | >>> user_browser.getControl('URL').value = debian_bug |
1611 | >>> user_browser.getControl('Continue').click() |
1612 | >>> for tag in find_tags_by_class(user_browser.contents, 'message'): |
1613 | - ... print tag |
1614 | + ... print(tag) |
1615 | |
1616 | >>> bugwatch_portlet = find_portlet( |
1617 | ... user_browser.contents, 'Remote bug watches') |
1618 | >>> for li_tag in bugwatch_portlet.findAll('li'): |
1619 | - ... print li_tag.findAll('a')[0].string |
1620 | + ... print(li_tag.findAll('a')[0].string) |
1621 | debbugs #42 |
1622 | |
1623 | Both the thunderbird and gnome-terminal Debian tasks are pointing to the |
1624 | |
1625 | === modified file 'lib/lp/bugs/stories/bug-also-affects/xx-upstream-bugtracker-links.txt' |
1626 | --- lib/lp/bugs/stories/bug-also-affects/xx-upstream-bugtracker-links.txt 2010-06-18 00:46:17 +0000 |
1627 | +++ lib/lp/bugs/stories/bug-also-affects/xx-upstream-bugtracker-links.txt 2018-06-30 16:32:46 +0000 |
1628 | @@ -18,7 +18,7 @@ |
1629 | general. |
1630 | |
1631 | >>> text = find_tag_by_id(user_browser.contents, 'upstream-text') |
1632 | - >>> print extract_text(text) |
1633 | + >>> print(extract_text(text)) |
1634 | Mozilla Thunderbird |
1635 | doesn't use Launchpad to track its bugs. If you know this bug |
1636 | has been reported in another bug tracker, you can link to it; |
1637 | @@ -42,7 +42,7 @@ |
1638 | >>> user_browser.getControl('Continue').click() |
1639 | |
1640 | >>> text = find_tag_by_id(user_browser.contents, 'upstream-text') |
1641 | - >>> print extract_text(text) |
1642 | + >>> print(extract_text(text)) |
1643 | Mozilla Thunderbird |
1644 | uses The Mozilla.org Bug Tracker to |
1645 | track its bugs. If you know this bug has been reported there, |
1646 | @@ -60,7 +60,7 @@ |
1647 | >>> user_browser.getControl('Continue').click() |
1648 | |
1649 | >>> text = find_tag_by_id(user_browser.contents, 'upstream-text') |
1650 | - >>> print extract_text(text) |
1651 | + >>> print(extract_text(text)) |
1652 | GNOME Terminal uses GnomeGBug GTracker to track its bugs. |
1653 | If you know this bug has been reported there, you can link to it; |
1654 | Launchpad will keep track of its status for you. |
1655 | @@ -80,7 +80,7 @@ |
1656 | >>> scheme, netloc, path, params, query, fragment = urlparse(url) |
1657 | >>> [long_desc] = parse_qs(query)['long_desc'] |
1658 | |
1659 | - >>> print long_desc |
1660 | + >>> print(long_desc) |
1661 | Originally reported at: |
1662 | http://bugs.launchpad.dev/bugs/13 |
1663 | <BLANKLINE> |
1664 | @@ -104,7 +104,7 @@ |
1665 | >>> user_browser.getControl('Continue').click() |
1666 | |
1667 | >>> text = find_tag_by_id(user_browser.contents, 'upstream-text') |
1668 | - >>> print extract_text(text) |
1669 | + >>> print(extract_text(text)) |
1670 | GNOME Terminal uses Debian Bug tracker to track its bugs. |
1671 | If you know this bug has been reported there, you can link to it; |
1672 | Launchpad will keep track of its status for you. |
1673 | @@ -127,5 +127,5 @@ |
1674 | |
1675 | >>> admin_browser.open( |
1676 | ... 'http://launchpad.dev/thunderbird/+configure-bugtracker') |
1677 | - >>> print admin_browser.getControl(name='field.remote_product').value |
1678 | + >>> print(admin_browser.getControl(name='field.remote_product').value) |
1679 | Thunderbird |
1680 | |
1681 | === modified file 'lib/lp/bugs/stories/bug-privacy/xx-bug-privacy.txt' |
1682 | --- lib/lp/bugs/stories/bug-privacy/xx-bug-privacy.txt 2016-01-26 15:47:37 +0000 |
1683 | +++ lib/lp/bugs/stories/bug-privacy/xx-bug-privacy.txt 2018-06-30 16:32:46 +0000 |
1684 | @@ -10,7 +10,7 @@ |
1685 | |
1686 | >>> browser.getControl("Private", index=1).selected = True |
1687 | >>> browser.getControl("Change").click() |
1688 | - >>> print browser.url |
1689 | + >>> print(browser.url) |
1690 | http://bugs.launchpad.dev/debian/+source/mozilla-firefox/+bug/2 |
1691 | |
1692 | When we go back to the secrecy form, the previously set value is pre-selected. |
1693 | @@ -40,17 +40,17 @@ |
1694 | >>> browser.getControl("Submit Bug Report").click() |
1695 | |
1696 | >>> bug_id = browser.url.split("/")[-1] |
1697 | - >>> print browser.url.replace(bug_id, "BUG-ID") |
1698 | + >>> print(browser.url.replace(bug_id, "BUG-ID")) |
1699 | http://bugs.launchpad.dev/ubuntu/+source/evolution/+bug/BUG-ID |
1700 | |
1701 | - >>> print browser.contents |
1702 | + >>> print(browser.contents) |
1703 | <!DOCTYPE... |
1704 | ...Security-related bugs are by default private... |
1705 | |
1706 | Foo Bar sees the private bug they filed. |
1707 | |
1708 | >>> browser.open("http://launchpad.dev/ubuntu/+bugs") |
1709 | - >>> print browser.contents.replace(bug_id, "BUG-ID") |
1710 | + >>> print(browser.contents.replace(bug_id, "BUG-ID")) |
1711 | <!DOCTYPE... |
1712 | ... |
1713 | ...Ubuntu... |
1714 | |
1715 | === modified file 'lib/lp/bugs/stories/bug-privacy/xx-presenting-private-bugs.txt' |
1716 | --- lib/lp/bugs/stories/bug-privacy/xx-presenting-private-bugs.txt 2012-07-17 14:29:17 +0000 |
1717 | +++ lib/lp/bugs/stories/bug-privacy/xx-presenting-private-bugs.txt 2018-06-30 16:32:46 +0000 |
1718 | @@ -5,7 +5,7 @@ |
1719 | |
1720 | >>> browser = setupBrowser(auth="Basic foo.bar@canonical.com:test") |
1721 | >>> browser.open("http://launchpad.dev/bugs/4") |
1722 | - >>> print extract_text(find_tag_by_id(browser.contents, 'privacy')) |
1723 | + >>> print(extract_text(find_tag_by_id(browser.contents, 'privacy'))) |
1724 | This report contains Public information... |
1725 | |
1726 | But when marked private, it gains the standard Launchpad presentation |
1727 | @@ -14,16 +14,16 @@ |
1728 | >>> browser.open("http://bugs.launchpad.dev/firefox/+bug/4/+secrecy") |
1729 | >>> browser.getControl("Private", index=1).selected = True |
1730 | >>> browser.getControl("Change").click() |
1731 | - >>> print browser.url |
1732 | + >>> print(browser.url) |
1733 | http://bugs.launchpad.dev/firefox/+bug/4 |
1734 | - >>> print extract_text(find_tag_by_id(browser.contents, 'privacy')) |
1735 | + >>> print(extract_text(find_tag_by_id(browser.contents, 'privacy'))) |
1736 | This report contains Private information... |
1737 | |
1738 | Bugs created before we started recording the date and time and who |
1739 | marked the bug private show only a simple message: |
1740 | |
1741 | >>> browser.open("http://launchpad.dev/bugs/14") |
1742 | - >>> print extract_text(find_tag_by_id(browser.contents, 'privacy')) |
1743 | + >>> print(extract_text(find_tag_by_id(browser.contents, 'privacy'))) |
1744 | This report contains Private Security information... |
1745 | |
1746 | But newer bugs that are filed private at creation time (like security |
1747 | @@ -39,9 +39,9 @@ |
1748 | >>> browser.getControl("Private Security").selected = True |
1749 | >>> browser.getControl("Submit Bug Report").click() |
1750 | |
1751 | - >>> print browser.url |
1752 | + >>> print(browser.url) |
1753 | http://bugs.launchpad.dev/firefox/+bug/... |
1754 | - >>> print extract_text(find_tag_by_id(browser.contents, 'privacy')) |
1755 | + >>> print(extract_text(find_tag_by_id(browser.contents, 'privacy'))) |
1756 | This report contains Private Security information... |
1757 | |
1758 | XXX 20080708 mpt: Bug 246671 again. |
1759 | |
1760 | === modified file 'lib/lp/bugs/stories/bug-release-management/xx-bug-release-management.txt' |
1761 | --- lib/lp/bugs/stories/bug-release-management/xx-bug-release-management.txt 2012-10-04 23:49:42 +0000 |
1762 | +++ lib/lp/bugs/stories/bug-release-management/xx-bug-release-management.txt 2018-06-30 16:32:46 +0000 |
1763 | @@ -29,7 +29,7 @@ |
1764 | |
1765 | >>> feedback_msg = find_tags_by_class( |
1766 | ... admin_browser.contents, "informational message")[0] |
1767 | - >>> print feedback_msg.renderContents() |
1768 | + >>> print(feedback_msg.renderContents()) |
1769 | Approved nomination for Mozilla Firefox 1.0 |
1770 | |
1771 | After a productseries task has been created, it's editable. |
1772 | @@ -58,7 +58,7 @@ |
1773 | |
1774 | >>> feedback_msg = find_tags_by_class( |
1775 | ... admin_browser.contents, "informational message")[0] |
1776 | - >>> print feedback_msg.renderContents() |
1777 | + >>> print(feedback_msg.renderContents()) |
1778 | Declined nomination for Ubuntu Hoary |
1779 | |
1780 | Nominate a bug to a distribution release |
1781 | @@ -102,7 +102,7 @@ |
1782 | >>> nominater_browser.getControl("Aqua").selected = True |
1783 | >>> nominater_browser.getControl("Nominate").click() |
1784 | >>> for tag in find_tags_by_class(nominater_browser.contents, 'message'): |
1785 | - ... print tag |
1786 | + ... print(tag) |
1787 | <div...Added nominations for: Poseidon Aqua... |
1788 | |
1789 | Now, if the nominater, having the form open in another browser window, |
1790 | @@ -114,7 +114,7 @@ |
1791 | |
1792 | >>> for tag in find_tags_by_class(nominater_other_browser.contents, |
1793 | ... 'message'): |
1794 | - ... print tag.renderContents() |
1795 | + ... print(tag.renderContents()) |
1796 | There is 1 error. |
1797 | This bug has already been nominated for these series: Aqua |
1798 | |
1799 | @@ -129,7 +129,7 @@ |
1800 | >>> admin_browser.getControl("Target").click() |
1801 | |
1802 | >>> for tag in find_tags_by_class(admin_browser.contents, 'message'): |
1803 | - ... print tag |
1804 | + ... print(tag) |
1805 | <div...Targeted bug to: Poseidon Hydro... |
1806 | |
1807 | Nominating a bug for a product series |
1808 | @@ -168,7 +168,7 @@ |
1809 | >>> nominater_browser.getControl("Nominate").click() |
1810 | |
1811 | >>> for tag in find_tags_by_class(nominater_browser.contents, 'message'): |
1812 | - ... print tag |
1813 | + ... print(tag) |
1814 | <div...Added nominations for: Widget beta... |
1815 | |
1816 | Now, if the nominater, having the form open in another browser window, |
1817 | @@ -178,7 +178,7 @@ |
1818 | |
1819 | >>> for tag in find_tags_by_class(nominater_other_browser.contents, |
1820 | ... 'message'): |
1821 | - ... print tag.renderContents() |
1822 | + ... print(tag.renderContents()) |
1823 | There is 1 error. |
1824 | This bug has already been nominated for these series: Beta |
1825 | |
1826 | @@ -192,7 +192,7 @@ |
1827 | >>> admin_browser.getControl("Target").click() |
1828 | |
1829 | >>> for tag in find_tags_by_class(admin_browser.contents, 'message'): |
1830 | - ... print tag |
1831 | + ... print(tag) |
1832 | <div...Targeted bug to: Widget trunk... |
1833 | |
1834 | When a bug is targeted to the current development release, the general |
1835 | @@ -220,8 +220,8 @@ |
1836 | >>> admin_browser.getControl('Bug Supervisor').value = 'no-priv' |
1837 | >>> admin_browser.getControl('Change').click() |
1838 | |
1839 | - >>> print extract_text( |
1840 | - ... find_tag_by_id(admin_browser.contents, 'bug-supervisor')) |
1841 | + >>> print(extract_text( |
1842 | + ... find_tag_by_id(admin_browser.contents, 'bug-supervisor'))) |
1843 | Bug supervisor: |
1844 | No Privileges Person |
1845 | |
1846 | @@ -307,8 +307,8 @@ |
1847 | >>> admin_browser.getControl('Bug Supervisor').value = 'no-priv' |
1848 | >>> admin_browser.getControl('Change').click() |
1849 | |
1850 | - >>> print extract_text(find_tag_by_id(admin_browser.contents, |
1851 | - ... 'bug-supervisor')) |
1852 | + >>> print(extract_text(find_tag_by_id(admin_browser.contents, |
1853 | + ... 'bug-supervisor'))) |
1854 | Bug supervisor: |
1855 | No Privileges Person |
1856 | |
1857 | |
1858 | === modified file 'lib/lp/bugs/stories/bug-tags/xx-official-bug-tags.txt' |
1859 | --- lib/lp/bugs/stories/bug-tags/xx-official-bug-tags.txt 2012-08-08 07:22:51 +0000 |
1860 | +++ lib/lp/bugs/stories/bug-tags/xx-official-bug-tags.txt 2018-06-30 16:32:46 +0000 |
1861 | @@ -7,7 +7,7 @@ |
1862 | >>> admin_browser.open( |
1863 | ... 'http://bugs.launchpad.dev/firefox') |
1864 | >>> admin_browser.getLink('Edit official tags').click() |
1865 | - >>> print admin_browser.url |
1866 | + >>> print(admin_browser.url) |
1867 | http://bugs.launchpad.dev/firefox/+manage-official-tags |
1868 | |
1869 | Tags are entered into a textarea as a list of white-spaces separated |
1870 | @@ -15,11 +15,11 @@ |
1871 | |
1872 | >>> admin_browser.getControl('Official Bug Tags').value = 'foo bar' |
1873 | >>> admin_browser.getControl('Save').click() |
1874 | - >>> print admin_browser.url |
1875 | + >>> print(admin_browser.url) |
1876 | http://bugs.launchpad.dev/firefox |
1877 | >>> admin_browser.open( |
1878 | ... 'http://bugs.launchpad.dev/firefox/+manage-official-tags') |
1879 | - >>> print admin_browser.getControl('Official Bug Tags').value |
1880 | + >>> print(admin_browser.getControl('Official Bug Tags').value) |
1881 | bar foo |
1882 | |
1883 | The link as well as the edit form is only available for products and |
1884 | @@ -27,7 +27,7 @@ |
1885 | |
1886 | >>> admin_browser.open( |
1887 | ... 'http://bugs.launchpad.dev/firefox/1.0') |
1888 | - >>> print admin_browser.getLink('Edit official tags') |
1889 | + >>> print(admin_browser.getLink('Edit official tags')) |
1890 | Traceback (most recent call last): |
1891 | ... |
1892 | LinkNotFoundError |
1893 | @@ -42,7 +42,7 @@ |
1894 | administrators but not for ordinary users. |
1895 | |
1896 | >>> browser.open('http://bugs.launchpad.dev/firefox') |
1897 | - >>> print browser.getLink('Edit official tags') |
1898 | + >>> print(browser.getLink('Edit official tags')) |
1899 | Traceback (most recent call last): |
1900 | ... |
1901 | LinkNotFoundError |
1902 | @@ -68,18 +68,18 @@ |
1903 | >>> bug_super_browser.open( |
1904 | ... 'http://bugs.launchpad.dev/youbuntu') |
1905 | >>> bug_super_browser.getLink('Edit official tags').click() |
1906 | - >>> print bug_super_browser.url |
1907 | + >>> print(bug_super_browser.url) |
1908 | http://bugs.launchpad.dev/youbuntu/+manage-official-tags |
1909 | |
1910 | The bug supervisor can also set the tags for the product. |
1911 | |
1912 | >>> bug_super_browser.getControl('Official Bug Tags').value = 'foo bar' |
1913 | >>> bug_super_browser.getControl('Save').click() |
1914 | - >>> print bug_super_browser.url |
1915 | + >>> print(bug_super_browser.url) |
1916 | http://bugs.launchpad.dev/youbuntu |
1917 | >>> bug_super_browser.open( |
1918 | ... 'http://bugs.launchpad.dev/youbuntu/+manage-official-tags') |
1919 | - >>> print bug_super_browser.getControl('Official Bug Tags').value |
1920 | + >>> print(bug_super_browser.getControl('Official Bug Tags').value) |
1921 | bar foo |
1922 | |
1923 | Official Tags on Bug Pages |
1924 | @@ -133,6 +133,6 @@ |
1925 | |
1926 | >>> browser.open(bug_url) |
1927 | >>> js = find_tag_by_id(browser.contents, 'available-official-tags-js') |
1928 | - >>> print js |
1929 | + >>> print(js) |
1930 | <script...>var available_official_tags = |
1931 | ["eenie", "meenie", "miney", "moe"];</script> |
1932 | |
1933 | === modified file 'lib/lp/bugs/stories/bug-tags/xx-searching-for-tags.txt' |
1934 | --- lib/lp/bugs/stories/bug-tags/xx-searching-for-tags.txt 2012-12-10 13:43:47 +0000 |
1935 | +++ lib/lp/bugs/stories/bug-tags/xx-searching-for-tags.txt 2018-06-30 16:32:46 +0000 |
1936 | @@ -32,7 +32,7 @@ |
1937 | >>> anon_browser.getControl('Search', index=0).click() |
1938 | |
1939 | >>> for tag in find_tags_by_class(anon_browser.contents, 'message'): |
1940 | - ... print tag.renderContents() |
1941 | + ... print(tag.renderContents()) |
1942 | '!!invalid!!' isn't a valid tag name. Tags must start |
1943 | with a letter or number and be lowercase. The characters |
1944 | "+", "-" and "." are also allowed |
1945 | @@ -58,7 +58,7 @@ |
1946 | |
1947 | Indeed, the markup is valid and correctly escaped: |
1948 | |
1949 | - >>> print find_tag_by_id(anon_browser.contents, 'field.tag').prettify() |
1950 | + >>> print(find_tag_by_id(anon_browser.contents, 'field.tag').prettify()) |
1951 | <input class="textType" id="field.tag" |
1952 | name="field.tag" size="20" type="text" |
1953 | value='<script>alert("cheezburger");</script>' /> |
1954 | @@ -66,7 +66,7 @@ |
1955 | The error message is also valid and correctly escaped: |
1956 | |
1957 | >>> for tag in find_tags_by_class(anon_browser.contents, 'message'): |
1958 | - ... print tag.prettify() |
1959 | + ... print(tag.prettify()) |
1960 | <div class="message"> |
1961 | '<script>alert("cheezburger");</script>' isn't ... |
1962 | </div> |
1963 | |
1964 | === modified file 'lib/lp/bugs/stories/bug-tags/xx-tags-on-bug-listings-page.txt' |
1965 | --- lib/lp/bugs/stories/bug-tags/xx-tags-on-bug-listings-page.txt 2012-10-02 06:36:44 +0000 |
1966 | +++ lib/lp/bugs/stories/bug-tags/xx-tags-on-bug-listings-page.txt 2018-06-30 16:32:46 +0000 |
1967 | @@ -4,11 +4,11 @@ |
1968 | |
1969 | >>> anon_browser.open('http://launchpad.dev/ubuntu/+bugs') |
1970 | >>> anon_browser.getLink(id='tags-content-link').click() |
1971 | - >>> print anon_browser.url |
1972 | + >>> print(anon_browser.url) |
1973 | http://launchpad.dev/ubuntu/+bugtarget-portlet-tags-content |
1974 | >>> tags_portlet = find_tags_by_class(anon_browser.contents, 'data-list')[0] |
1975 | >>> for a_tag in tags_portlet('a'): |
1976 | - ... print a_tag.renderContents() |
1977 | + ... print(a_tag.renderContents()) |
1978 | crash |
1979 | pebcak |
1980 | dataloss |
1981 | @@ -48,5 +48,5 @@ |
1982 | |
1983 | >>> anon_browser.open( |
1984 | ... 'http://launchpad.dev/tomcat/+bugtarget-portlet-tags-content') |
1985 | - >>> print extract_text(anon_browser.contents) |
1986 | + >>> print(extract_text(anon_browser.contents)) |
1987 | Tags |
1988 | |
1989 | === modified file 'lib/lp/bugs/stories/bug-tags/xx-tags-on-bug-page.txt' |
1990 | --- lib/lp/bugs/stories/bug-tags/xx-tags-on-bug-page.txt 2012-12-10 13:43:47 +0000 |
1991 | +++ lib/lp/bugs/stories/bug-tags/xx-tags-on-bug-page.txt 2018-06-30 16:32:46 +0000 |
1992 | @@ -3,7 +3,7 @@ |
1993 | >>> user_browser.open('http://bugs.launchpad.dev/firefox/+bug/1') |
1994 | >>> user_browser.url |
1995 | 'http://bugs.launchpad.dev/firefox/+bug/1' |
1996 | - >>> print extract_text(find_tag_by_id(user_browser.contents, 'bug-tags')) |
1997 | + >>> print(extract_text(find_tag_by_id(user_browser.contents, 'bug-tags'))) |
1998 | Add tags Tag help |
1999 | |
2000 | Let's specify some tags: |
2001 | @@ -19,7 +19,7 @@ |
2002 | >>> user_browser.getControl('Change').click() |
2003 | |
2004 | >>> for tag in find_tags_by_class(user_browser.contents, 'message'): |
2005 | - ... print tag.renderContents() |
2006 | + ... print(tag.renderContents()) |
2007 | There is 1 error. |
2008 | '!!invalid!!' isn't a valid tag name. Tags must start |
2009 | with a letter or number and be lowercase. The characters |
2010 | @@ -35,11 +35,11 @@ |
2011 | |
2012 | Now the tags will be displayed on the bug page: |
2013 | |
2014 | - >>> 'Tags:' in user_browser.contents |
2015 | - True |
2016 | - >>> 'foo' in user_browser.contents |
2017 | - True |
2018 | - >>> 'bar' in user_browser.contents |
2019 | + >>> b'Tags:' in user_browser.contents |
2020 | + True |
2021 | + >>> b'foo' in user_browser.contents |
2022 | + True |
2023 | + >>> b'bar' in user_browser.contents |
2024 | True |
2025 | |
2026 | Simply changing the ordering of the bug tags won't cause anything to |
2027 | |
2028 | === modified file 'lib/lp/bugs/stories/bugattachments/xx-attachments-to-bug-report.txt' |
2029 | --- lib/lp/bugs/stories/bugattachments/xx-attachments-to-bug-report.txt 2015-10-06 06:48:01 +0000 |
2030 | +++ lib/lp/bugs/stories/bugattachments/xx-attachments-to-bug-report.txt 2018-06-30 16:32:46 +0000 |
2031 | @@ -11,7 +11,7 @@ |
2032 | |
2033 | >>> browser.open("http://bugs.launchpad.dev/redfish/+bug/11") |
2034 | >>> comment_1 = find_tags_by_class(browser.contents, 'boardComment')[0] |
2035 | - >>> print extract_text(comment_1) |
2036 | + >>> print(extract_text(comment_1)) |
2037 | Valentina Commissari (tsukimi) |
2038 | wrote |
2039 | on 2007-03-15: |
2040 | @@ -42,7 +42,7 @@ |
2041 | |
2042 | >>> browser.open("http://bugs.launchpad.dev/redfish/+bug/11") |
2043 | >>> comment_0 = find_tags_by_class(browser.contents, 'boardComment')[0] |
2044 | - >>> print extract_text(comment_0) |
2045 | + >>> print(extract_text(comment_0)) |
2046 | Daniel Silverstone (kinnison) |
2047 | wrote |
2048 | on 2007-03-15: |
2049 | @@ -51,9 +51,9 @@ |
2050 | (8 bytes, |
2051 | text/plain) |
2052 | >>> link = browser.getLink('sample data') |
2053 | - >>> print link.url |
2054 | + >>> print(link.url) |
2055 | http://bugs.launchpad.dev/jokosher/+bug/11/+attachment/.../+files/test.txt |
2056 | - >>> print comment_0.find('a', text='Edit').parent |
2057 | + >>> print(comment_0.find('a', text='Edit').parent) |
2058 | <a class="sprite edit action-icon" |
2059 | href="/jokosher/+bug/11/+attachment/...">Edit</a> |
2060 | |
2061 | @@ -70,7 +70,7 @@ |
2062 | ... description='a patch') |
2063 | >>> logout() |
2064 | >>> browser.open("http://bugs.launchpad.dev/redfish/+bug/11") |
2065 | - >>> print extract_text(browser.contents) |
2066 | + >>> print(extract_text(browser.contents)) |
2067 | Bug #11 ... |
2068 | ...Patches... |
2069 | ...a patch... |
2070 | |
2071 | === modified file 'lib/lp/bugs/stories/bugattachments/xx-bugattachments.txt' |
2072 | --- lib/lp/bugs/stories/bugattachments/xx-bugattachments.txt 2015-10-06 06:48:01 +0000 |
2073 | +++ lib/lp/bugs/stories/bugattachments/xx-bugattachments.txt 2018-06-30 16:32:46 +0000 |
2074 | @@ -36,21 +36,21 @@ |
2075 | |
2076 | >>> attachments = find_portlet(user_browser.contents, 'Bug attachments') |
2077 | >>> for li_tag in attachments.findAll('li', 'download-attachment'): |
2078 | - ... print li_tag.a.renderContents() |
2079 | + ... print(li_tag.a.renderContents()) |
2080 | Some information |
2081 | |
2082 | >>> link = user_browser.getLink('Some information') |
2083 | >>> link.url |
2084 | 'http://bugs.launchpad.dev/firefox/+bug/1/+attachment/.../+files/foo.txt' |
2085 | |
2086 | - >>> 'Added some information' in user_browser.contents |
2087 | + >>> b'Added some information' in user_browser.contents |
2088 | True |
2089 | |
2090 | And that we stripped the leading and trailing whitespace correctly |
2091 | |
2092 | - >>> ' Some information ' in user_browser.contents |
2093 | + >>> b' Some information ' in user_browser.contents |
2094 | False |
2095 | - >>> 'Some information' in user_browser.contents |
2096 | + >>> b'Some information' in user_browser.contents |
2097 | True |
2098 | |
2099 | If no description is given it gets set to the attachment filename. It's |
2100 | @@ -69,7 +69,7 @@ |
2101 | |
2102 | >>> attachments = find_portlet(user_browser.contents, 'Bug attachments') |
2103 | >>> for li_tag in attachments.findAll('li', 'download-attachment'): |
2104 | - ... print li_tag.a.renderContents() |
2105 | + ... print(li_tag.a.renderContents()) |
2106 | Some information |
2107 | bar.txt |
2108 | |
2109 | @@ -118,8 +118,8 @@ |
2110 | ...where we see a message that we should double-check if this file |
2111 | is indeed not a patch. |
2112 | |
2113 | - >>> print extract_text(find_tags_by_class( |
2114 | - ... user_browser.contents, 'documentDescription')[0]) |
2115 | + >>> print(extract_text(find_tags_by_class( |
2116 | + ... user_browser.contents, 'documentDescription')[0])) |
2117 | This file looks like a patch. |
2118 | What is a patch? |
2119 | |
2120 | @@ -146,7 +146,7 @@ |
2121 | 'http://bugs.launchpad.dev/firefox/+bug/1' |
2122 | >>> attachments = find_portlet(user_browser.contents, 'Bug attachments') |
2123 | >>> for li_tag in attachments.findAll('li', 'download-attachment'): |
2124 | - ... print li_tag.a.renderContents() |
2125 | + ... print(li_tag.a.renderContents()) |
2126 | Some information |
2127 | bar.txt |
2128 | More data |
2129 | @@ -174,8 +174,8 @@ |
2130 | ...where we see a message asking us if we really ant to declare this file |
2131 | as a patch. |
2132 | |
2133 | - >>> print extract_text(find_tags_by_class( |
2134 | - ... user_browser.contents, 'documentDescription')[0]) |
2135 | + >>> print(extract_text(find_tags_by_class( |
2136 | + ... user_browser.contents, 'documentDescription')[0])) |
2137 | This file does not look like a patch. |
2138 | What is a patch? |
2139 | |
2140 | @@ -203,7 +203,7 @@ |
2141 | |
2142 | >>> patches = find_portlet(user_browser.contents, 'Patches') |
2143 | >>> for li_tag in patches.findAll('li', 'download-attachment'): |
2144 | - ... print li_tag.a.renderContents() |
2145 | + ... print(li_tag.a.renderContents()) |
2146 | A fix for this bug. |
2147 | A better icon for foo |
2148 | |
2149 | @@ -264,7 +264,7 @@ |
2150 | >>> user_browser.url |
2151 | 'http://bugs.launchpad.dev/firefox/+bug/1/+attachment/...' |
2152 | |
2153 | - >>> 'Edit attachment' in user_browser.contents |
2154 | + >>> b'Edit attachment' in user_browser.contents |
2155 | True |
2156 | |
2157 | There's also an option to cancel, which takes you back to the bug |
2158 | @@ -285,7 +285,7 @@ |
2159 | >>> user_browser.url |
2160 | 'http://bugs.launchpad.dev/firefox/+bug/1' |
2161 | |
2162 | - >>> 'Another title' in user_browser.contents |
2163 | + >>> b'Another title' in user_browser.contents |
2164 | True |
2165 | |
2166 | We can edit the attachment to be a patch. |
2167 | @@ -303,8 +303,8 @@ |
2168 | >>> user_browser.url |
2169 | 'http://bugs.launchpad.dev/firefox/+bug/1/+attachment/.../+confirm-is-patch' |
2170 | |
2171 | - >>> print extract_text(find_tags_by_class( |
2172 | - ... user_browser.contents, 'documentDescription')[0]) |
2173 | + >>> print(extract_text(find_tags_by_class( |
2174 | + ... user_browser.contents, 'documentDescription')[0])) |
2175 | This file does not look like a patch. |
2176 | What is a patch? |
2177 | |
2178 | @@ -331,7 +331,7 @@ |
2179 | |
2180 | >>> patches = find_portlet(user_browser.contents, 'Patches') |
2181 | >>> for li_tag in patches.findAll('li', 'download-attachment'): |
2182 | - ... print li_tag.a.renderContents() |
2183 | + ... print(li_tag.a.renderContents()) |
2184 | Another title |
2185 | A fix for this bug. |
2186 | A better icon for foo |
2187 | @@ -343,7 +343,7 @@ |
2188 | |
2189 | >>> attachments = find_portlet(user_browser.contents, 'Bug attachments') |
2190 | >>> for li_tag in attachments.findAll('li', 'download-attachment'): |
2191 | - ... print li_tag.a.renderContents() |
2192 | + ... print(li_tag.a.renderContents()) |
2193 | bar.txt |
2194 | More data |
2195 | |
2196 | @@ -406,7 +406,7 @@ |
2197 | ... "Show only bugs with patches available").selected = True |
2198 | >>> user_browser.getControl("Search", index=1).click() |
2199 | |
2200 | - >>> print user_browser.contents |
2201 | + >>> print(user_browser.contents) |
2202 | <!DOCTYPE... |
2203 | ...1... |
2204 | ...of |
2205 | |
2206 | === modified file 'lib/lp/bugs/stories/bugattachments/xx-delete-bug-attachment.txt' |
2207 | --- lib/lp/bugs/stories/bugattachments/xx-delete-bug-attachment.txt 2015-10-06 06:48:01 +0000 |
2208 | +++ lib/lp/bugs/stories/bugattachments/xx-delete-bug-attachment.txt 2018-06-30 16:32:46 +0000 |
2209 | @@ -18,7 +18,7 @@ |
2210 | >>> attachment_portlet = find_portlet( |
2211 | ... user_browser.contents, 'Bug attachments') |
2212 | >>> for li in attachment_portlet.findAll('li', 'download-attachment'): |
2213 | - ... print li.a.renderContents() |
2214 | + ... print(li.a.renderContents()) |
2215 | Great deal |
2216 | |
2217 | There will also be a comment with a link to the attachment in its body. |
2218 | @@ -37,7 +37,7 @@ |
2219 | |
2220 | >>> import re |
2221 | >>> user_browser.getLink(url=re.compile(r'[+]attachment/\d+$')).click() |
2222 | - >>> print user_browser.title |
2223 | + >>> print(user_browser.title) |
2224 | Bug #2... |
2225 | >>> user_browser.getControl('Delete Attachment') is not None |
2226 | True |
2227 | @@ -50,12 +50,12 @@ |
2228 | >>> user_browser.url |
2229 | 'http://.../+bug/2' |
2230 | >>> for message in find_tags_by_class(user_browser.contents, 'message'): |
2231 | - ... print message.renderContents() |
2232 | + ... print(message.renderContents()) |
2233 | Attachment |
2234 | "<a href="http://bugs.launchpad.dev/...+files/foo.txt">Great deal</a>" |
2235 | has been deleted. |
2236 | |
2237 | - >>> print find_portlet(user_browser.contents, 'Bug attachments') |
2238 | + >>> print(find_portlet(user_browser.contents, 'Bug attachments')) |
2239 | None |
2240 | |
2241 | Since the attachment has been deleted, the comment referencing it will no |
2242 | |
2243 | === modified file 'lib/lp/bugs/stories/bugattachments/xx-display-filesize-attachment.txt' |
2244 | --- lib/lp/bugs/stories/bugattachments/xx-display-filesize-attachment.txt 2012-06-16 13:21:23 +0000 |
2245 | +++ lib/lp/bugs/stories/bugattachments/xx-display-filesize-attachment.txt 2018-06-30 16:32:46 +0000 |
2246 | @@ -21,7 +21,7 @@ |
2247 | ... user_browser.contents, 'boardCommentBody')[-1] |
2248 | >>> fileinfo = '(270 bytes, text/plain)' |
2249 | >>> for attachment in last_comment('li', 'download-attachment'): |
2250 | - ... print extract_text(attachment) |
2251 | + ... print(extract_text(attachment)) |
2252 | description text Edit |
2253 | (270 bytes, text/plain) |
2254 | |
2255 | @@ -52,7 +52,7 @@ |
2256 | ... user_browser.contents, 'boardCommentBody')[-1] |
2257 | >>> fileinfo = '(270 bytes, text/plain)' |
2258 | >>> for attachment in last_comment('li', 'download-attachment'): |
2259 | - ... print extract_text(attachment) |
2260 | + ... print(extract_text(attachment)) |
2261 | description text Edit |
2262 | (2.6 KiB, text/plain) |
2263 | |
2264 | |
2265 | === modified file 'lib/lp/bugs/stories/bugs/bug-add-subscriber.txt' |
2266 | --- lib/lp/bugs/stories/bugs/bug-add-subscriber.txt 2016-01-26 15:47:37 +0000 |
2267 | +++ lib/lp/bugs/stories/bugs/bug-add-subscriber.txt 2018-06-30 16:32:46 +0000 |
2268 | @@ -75,7 +75,7 @@ |
2269 | >>> from lp.services.mail import stub |
2270 | >>> len(stub.test_emails) |
2271 | 1 |
2272 | - >>> print stub.test_emails[0][2] |
2273 | + >>> print(stub.test_emails[0][2]) |
2274 | MIME-Version: 1.0 |
2275 | ... |
2276 | To: david.allouche@canonical.com |
2277 | @@ -181,8 +181,8 @@ |
2278 | entry in the activity log for Private Team. |
2279 | |
2280 | >>> def print_row(row): |
2281 | - ... print ' | '.join( |
2282 | - ... extract_text(cell) for cell in row(('th', 'td'))) |
2283 | + ... print(' | '.join( |
2284 | + ... extract_text(cell) for cell in row(('th', 'td')))) |
2285 | >>> user_browser.open( |
2286 | ... 'http://bugs.launchpad.dev/firefox/+bug/1/+activity') |
2287 | >>> main_content = find_main_content(user_browser.contents) |
2288 | |
2289 | === modified file 'lib/lp/bugs/stories/bugs/xx-add-comment-bugtask-edit.txt' |
2290 | --- lib/lp/bugs/stories/bugs/xx-add-comment-bugtask-edit.txt 2009-06-12 16:36:02 +0000 |
2291 | +++ lib/lp/bugs/stories/bugs/xx-add-comment-bugtask-edit.txt 2018-06-30 16:32:46 +0000 |
2292 | @@ -20,5 +20,5 @@ |
2293 | |
2294 | >>> main_content = find_main_content(user_browser.contents) |
2295 | >>> last_comment = main_content('div', 'boardCommentBody')[-1] |
2296 | - >>> print last_comment.div.renderContents() |
2297 | + >>> print(last_comment.div.renderContents()) |
2298 | <p>A comment with no change to the bug task.</p> |
2299 | |
2300 | === modified file 'lib/lp/bugs/stories/bugs/xx-add-comment-distribution-no-current-release.txt' |
2301 | --- lib/lp/bugs/stories/bugs/xx-add-comment-distribution-no-current-release.txt 2011-04-20 14:56:23 +0000 |
2302 | +++ lib/lp/bugs/stories/bugs/xx-add-comment-distribution-no-current-release.txt 2018-06-30 16:32:46 +0000 |
2303 | @@ -16,5 +16,5 @@ |
2304 | |
2305 | >>> for comment_div in find_tags_by_class( |
2306 | ... user_browser.contents, 'boardCommentBody'): |
2307 | - ... print comment_div.div.renderContents() |
2308 | + ... print(comment_div.div.renderContents()) |
2309 | <p>A new comment.</p> |
2310 | |
2311 | === modified file 'lib/lp/bugs/stories/bugs/xx-add-comment-with-bugwatch-and-cve.txt' |
2312 | --- lib/lp/bugs/stories/bugs/xx-add-comment-with-bugwatch-and-cve.txt 2010-09-29 11:15:46 +0000 |
2313 | +++ lib/lp/bugs/stories/bugs/xx-add-comment-with-bugwatch-and-cve.txt 2018-06-30 16:32:46 +0000 |
2314 | @@ -17,16 +17,16 @@ |
2315 | 'http://bugs.launchpad.dev/debian/+source/mozilla-firefox/+bug/1' |
2316 | |
2317 | >>> added_cve_link = user_browser.getLink('1991-9911') |
2318 | - >>> print added_cve_link |
2319 | + >>> print(added_cve_link) |
2320 | <.../bugs/cve/1991-9911'> |
2321 | |
2322 | >>> bugwatch_portlet = find_portlet(user_browser.contents, |
2323 | ... 'Remote bug watches') |
2324 | >>> added_bugwatch_link = bugwatch_portlet('a')[-2] |
2325 | - >>> print added_bugwatch_link['href'] |
2326 | + >>> print(added_bugwatch_link['href']) |
2327 | http://some.bugzilla/show_bug.cgi?id=9876 |
2328 | |
2329 | - >>> print extract_text(added_bugwatch_link) |
2330 | + >>> print(extract_text(added_bugwatch_link)) |
2331 | auto-some.bugzilla #9876 |
2332 | |
2333 | When extracting the remote bug URLs, we can use whatever text we want and |
2334 | @@ -47,7 +47,7 @@ |
2335 | >>> bugwatch_portlet = find_portlet(user_browser.contents, |
2336 | ... 'Remote bug watches') |
2337 | >>> added_bugwatch_link = bugwatch_portlet('a')[-2] |
2338 | - >>> print extract_text(added_bugwatch_link) |
2339 | + >>> print(extract_text(added_bugwatch_link)) |
2340 | auto-bugzilla.example.org #1235555 |
2341 | >>> 'answers.launchpad.net' in extract_text(bugwatch_portlet) |
2342 | False |
2343 | |
2344 | === modified file 'lib/lp/bugs/stories/bugs/xx-bug-activity.txt' |
2345 | --- lib/lp/bugs/stories/bugs/xx-bug-activity.txt 2015-06-27 04:10:49 +0000 |
2346 | +++ lib/lp/bugs/stories/bugs/xx-bug-activity.txt 2018-06-30 16:32:46 +0000 |
2347 | @@ -25,8 +25,8 @@ |
2348 | The activity log itself is presented as a table. |
2349 | |
2350 | >>> def print_row(row): |
2351 | - ... print ' | '.join( |
2352 | - ... extract_text(cell) for cell in row(('th', 'td'))) |
2353 | + ... print(' | '.join( |
2354 | + ... extract_text(cell) for cell in row(('th', 'td')))) |
2355 | |
2356 | >>> for row in main_content.table('tr'): |
2357 | ... print_row(row) |
2358 | @@ -40,7 +40,7 @@ |
2359 | >>> anon_browser.open( |
2360 | ... 'http://bugs.launchpad.dev/debian/+source/' |
2361 | ... 'mozilla-firefox/+bug/3') |
2362 | - >>> print anon_browser.getLink('See full activity log').url |
2363 | + >>> print(anon_browser.getLink('See full activity log').url) |
2364 | http://.../+bug/3/+activity |
2365 | |
2366 | |
2367 | @@ -54,8 +54,8 @@ |
2368 | ... """Print all the comments on the page.""" |
2369 | ... comment_divs = find_tags_by_class(page, 'boardComment') |
2370 | ... for div_tag in comment_divs[subset]: |
2371 | - ... print extract_text(div_tag).replace("→", "=>") |
2372 | - ... print '-' * 8 |
2373 | + ... print(extract_text(div_tag).replace("→", "=>")) |
2374 | + ... print('-' * 8) |
2375 | |
2376 | >>> user_browser.open( |
2377 | ... 'http://bugs.launchpad.dev/redfish/+bug/15/+addcomment') |
2378 | |
2379 | === modified file 'lib/lp/bugs/stories/bugs/xx-bug-affects-me-too.txt' |
2380 | --- lib/lp/bugs/stories/bugs/xx-bug-affects-me-too.txt 2016-01-26 15:47:37 +0000 |
2381 | +++ lib/lp/bugs/stories/bugs/xx-bug-affects-me-too.txt 2018-06-30 16:32:46 +0000 |
2382 | @@ -14,24 +14,24 @@ |
2383 | the bug). |
2384 | |
2385 | >>> user_browser.open(test_bug_url) |
2386 | - >>> print extract_text(find_tag_by_id( |
2387 | + >>> print(extract_text(find_tag_by_id( |
2388 | ... user_browser.contents, 'affectsmetoo').find( |
2389 | - ... None, 'static')) |
2390 | + ... None, 'static'))) |
2391 | This bug affects 1 person. Does this bug affect you? |
2392 | |
2393 | Next to the statement is a link containing an edit icon. |
2394 | |
2395 | >>> edit_link = find_tag_by_id( |
2396 | ... user_browser.contents, 'affectsmetoo').a |
2397 | - >>> print edit_link['href'] |
2398 | + >>> print(edit_link['href']) |
2399 | +affectsmetoo |
2400 | - >>> print edit_link.img['src'] |
2401 | + >>> print(edit_link.img['src']) |
2402 | /@@/edit |
2403 | |
2404 | The user is affected by this bug, so clicks the link. |
2405 | |
2406 | >>> user_browser.getLink(url='+affectsmetoo').click() |
2407 | - >>> print user_browser.url |
2408 | + >>> print(user_browser.url) |
2409 | http://bugs.launchpad.dev/.../+bug/.../+affectsmetoo |
2410 | >>> user_browser.getControl(name='field.affects').value |
2411 | ['YES'] |
2412 | @@ -43,9 +43,9 @@ |
2413 | The bug page loads again, and now the text is changed, to make it |
2414 | clear to the user that they have marked this bug as affecting them. |
2415 | |
2416 | - >>> print extract_text(find_tag_by_id( |
2417 | + >>> print(extract_text(find_tag_by_id( |
2418 | ... user_browser.contents, 'affectsmetoo').find( |
2419 | - ... None, 'static')) |
2420 | + ... None, 'static'))) |
2421 | This bug affects you and 1 other person |
2422 | |
2423 | On second thoughts, the user realises that this bug does not affect |
2424 | @@ -60,9 +60,9 @@ |
2425 | |
2426 | Back at the bug page, the text changes once again. |
2427 | |
2428 | - >>> print extract_text(find_tag_by_id( |
2429 | + >>> print(extract_text(find_tag_by_id( |
2430 | ... user_browser.contents, 'affectsmetoo').find( |
2431 | - ... None, 'static')) |
2432 | + ... None, 'static'))) |
2433 | This bug affects 1 person, but not you |
2434 | |
2435 | |
2436 | @@ -71,8 +71,8 @@ |
2437 | Anonymous users just see the number of affected users. |
2438 | |
2439 | >>> anon_browser.open(test_bug_url) |
2440 | - >>> print extract_text(find_tag_by_id( |
2441 | - ... anon_browser.contents, 'affectsmetoo')) |
2442 | + >>> print(extract_text(find_tag_by_id( |
2443 | + ... anon_browser.contents, 'affectsmetoo'))) |
2444 | This bug affects 1 person |
2445 | |
2446 | If no one is marked as affected by the bug, the message does not |
2447 | @@ -83,7 +83,7 @@ |
2448 | >>> logout() |
2449 | |
2450 | >>> anon_browser.open(test_bug_url) |
2451 | - >>> print find_tag_by_id(anon_browser.contents, 'affectsmetoo') |
2452 | + >>> print(find_tag_by_id(anon_browser.contents, 'affectsmetoo')) |
2453 | None |
2454 | |
2455 | |
2456 | @@ -114,10 +114,10 @@ |
2457 | The dynamic content is hidden by the presence of the "hidden" CSS |
2458 | class. |
2459 | |
2460 | - >>> print static_content.get('class') |
2461 | + >>> print(static_content.get('class')) |
2462 | static |
2463 | |
2464 | - >>> print dynamic_content.get('class') |
2465 | + >>> print(dynamic_content.get('class')) |
2466 | dynamic hidden |
2467 | |
2468 | It is the responsibilty of Javascript running in the page to unhide |
2469 | |
2470 | === modified file 'lib/lp/bugs/stories/bugs/xx-bug-comment-attach-file.txt' |
2471 | --- lib/lp/bugs/stories/bugs/xx-bug-comment-attach-file.txt 2013-09-27 04:13:23 +0000 |
2472 | +++ lib/lp/bugs/stories/bugs/xx-bug-comment-attach-file.txt 2018-06-30 16:32:46 +0000 |
2473 | @@ -17,7 +17,7 @@ |
2474 | >>> user_browser.getControl(name='field.comment').value = "a test comment" |
2475 | >>> user_browser.getControl("Post Comment").click() |
2476 | |
2477 | - >>> print user_browser.url |
2478 | + >>> print(user_browser.url) |
2479 | http://bugs.launchpad.dev/firefox/+bug/1 |
2480 | |
2481 | >>> print_feedback_messages(user_browser.contents) |
2482 | @@ -47,7 +47,7 @@ |
2483 | >>> user_browser.getControl("Description").value = "some file" |
2484 | >>> user_browser.getControl("Post Comment").click() |
2485 | |
2486 | - >>> print user_browser.url |
2487 | + >>> print(user_browser.url) |
2488 | http://bugs.launchpad.dev/firefox/+bug/1 |
2489 | |
2490 | >>> print_feedback_messages(user_browser.contents) |
2491 | @@ -62,7 +62,7 @@ |
2492 | ... StringIO(""), "text/plain", "foo.txt") |
2493 | >>> user_browser.getControl("Post Comment").click() |
2494 | |
2495 | - >>> print user_browser.url |
2496 | + >>> print(user_browser.url) |
2497 | http://bugs.launchpad.dev/firefox/+bug/1/+addcomment |
2498 | |
2499 | >>> print_feedback_messages(user_browser.contents) |
2500 | @@ -74,7 +74,7 @@ |
2501 | |
2502 | >>> from lp.services.config import config |
2503 | |
2504 | - >>> print config.launchpad.max_attachment_size |
2505 | + >>> print(config.launchpad.max_attachment_size) |
2506 | 1024 |
2507 | |
2508 | >>> user_browser.open( |
2509 | @@ -96,7 +96,7 @@ |
2510 | >>> user_browser.getControl("Description").value = "some file" |
2511 | >>> user_browser.getControl("Post Comment").click() |
2512 | |
2513 | - >>> print user_browser.url |
2514 | + >>> print(user_browser.url) |
2515 | http://bugs.launchpad.dev/firefox/+bug/1 |
2516 | |
2517 | >>> print_feedback_messages(user_browser.contents) |
2518 | |
2519 | === modified file 'lib/lp/bugs/stories/bugs/xx-bug-comments-truncated.txt' |
2520 | --- lib/lp/bugs/stories/bugs/xx-bug-comments-truncated.txt 2016-01-26 15:47:37 +0000 |
2521 | +++ lib/lp/bugs/stories/bugs/xx-bug-comments-truncated.txt 2018-06-30 16:32:46 +0000 |
2522 | @@ -29,7 +29,7 @@ |
2523 | ... soup = find_main_content(page) |
2524 | ... comment_divs = soup('div', 'boardCommentBody') |
2525 | ... for div_tag in comment_divs: |
2526 | - ... print div_tag |
2527 | + ... print(div_tag) |
2528 | >>> print_comments(browser.contents) #doctest: -ELLIPSIS |
2529 | <div class="boardCommentBody"> |
2530 | <a href="http://bugs.launchpad.dev/tomcat/+bug/2/comments/1/+download">Download |
2531 | @@ -58,7 +58,7 @@ |
2532 | |
2533 | The whole comment is visible on this page: |
2534 | |
2535 | - >>> print browser.title |
2536 | + >>> print(browser.title) |
2537 | Comment #1 : Bug #2 (blackhole) : Bugs : Tomcat |
2538 | |
2539 | >>> print_comments(browser.contents) #doctest: -ELLIPSIS |
2540 | @@ -123,7 +123,7 @@ |
2541 | u'Bug #2 (blackhole) ... : Bugs : Tomcat' |
2542 | >>> text = find_tags_by_class( |
2543 | ... user_browser.contents, 'boardCommentBody')[-1] |
2544 | - >>> print extract_text(text.findAll('p')[-2]) |
2545 | + >>> print(extract_text(text.findAll('p')[-2])) |
2546 | -- |
2547 | ______________________ |
2548 | human@example.org |
2549 | @@ -138,7 +138,7 @@ |
2550 | u'Bug #2 (blackhole) ... : Bugs : Tomcat' |
2551 | >>> text = find_tags_by_class( |
2552 | ... anon_browser.contents, 'boardCommentBody')[-1] |
2553 | - >>> print extract_text(text.findAll('p')[-2]) |
2554 | + >>> print(extract_text(text.findAll('p')[-2])) |
2555 | -- |
2556 | ______________________ |
2557 | <email address hidden> |
2558 | @@ -155,7 +155,7 @@ |
2559 | Pagetests cannot test CSS and JS behaviour. We can only check that the markup |
2560 | includes the hooks for the style and script. |
2561 | |
2562 | - >>> print text.findAll('p')[-2] |
2563 | + >>> print(text.findAll('p')[-2]) |
2564 | <p><span class="foldable">--... |
2565 | <email address hidden><br /> |
2566 | Witty signatures rock! |
2567 | @@ -169,7 +169,7 @@ |
2568 | always displayed. Again we can continue with the anonymous user to |
2569 | see the markup. |
2570 | |
2571 | - >>> print text.findAll('p')[-3] |
2572 | + >>> print(text.findAll('p')[-3]) |
2573 | <p>Somebody said sometime ago:<br /> |
2574 | <span class="foldable-quoted"> |
2575 | > 1. Remove the letters c, j, q, x, w<br /> |
2576 | @@ -181,12 +181,12 @@ |
2577 | starts with '-----BEGIN PGP'. There are two kinds of PGP blocks, |
2578 | the notice that the message is signed, and the signature. |
2579 | |
2580 | - >>> print text.findAll('p')[0] |
2581 | + >>> print(text.findAll('p')[0]) |
2582 | <p><span class="foldable">-----BEGIN PGP SIGNED MESSAGE-----<br /> |
2583 | Hash: SHA1 |
2584 | </span></p> |
2585 | |
2586 | - >>> print text.findAll('p')[-1] |
2587 | + >>> print(text.findAll('p')[-1]) |
2588 | <p><span class="foldable">-----BEGIN PGP SIGNATURE-----<br /> |
2589 | Version: GnuPG v1.4.1 (GNU/Linux)<br /> |
2590 | Comment: Using GnuPG with Thunderbird<br /> |
2591 | |
2592 | === modified file 'lib/lp/bugs/stories/bugs/xx-bug-create-question.txt' |
2593 | --- lib/lp/bugs/stories/bugs/xx-bug-create-question.txt 2016-01-26 15:47:37 +0000 |
2594 | +++ lib/lp/bugs/stories/bugs/xx-bug-create-question.txt 2018-06-30 16:32:46 +0000 |
2595 | @@ -60,7 +60,7 @@ |
2596 | The bug status is Invalid for 'linux-source-2.6.15 (Ubuntu)'--It cannot |
2597 | be edited. |
2598 | |
2599 | - >>> print extract_text(content(['table'], {'class' : 'listing'})[0]) |
2600 | + >>> print(extract_text(content(['table'], {'class' : 'listing'})[0])) |
2601 | Affects Status Importance Assigned to Milestone |
2602 | linux-source-2.6.15 (Ubuntu) ... Invalid Medium Unassigned ... |
2603 | |
2604 | @@ -82,15 +82,15 @@ |
2605 | |
2606 | They see their comment was appended to the bug report's messages. |
2607 | |
2608 | - >>> print extract_text( |
2609 | - ... find_tags_by_class(str(content), 'boardCommentBody')[-1]) |
2610 | + >>> print(extract_text( |
2611 | + ... find_tags_by_class(str(content), 'boardCommentBody')[-1])) |
2612 | This bug is a question. |
2613 | |
2614 | No Privileges Person looks at the page heading and sees that Foo Bar is |
2615 | the bug owner. They see the link to the question in the 'Related |
2616 | questions' portlet, and uses it to go to the question page. |
2617 | |
2618 | - >>> print user_browser.url |
2619 | + >>> print(user_browser.url) |
2620 | http://bugs.launchpad.dev/ubuntu/.../+bug/10 |
2621 | |
2622 | >>> portlet = find_portlet(user_browser.contents, 'Related questions') |
2623 | @@ -104,11 +104,11 @@ |
2624 | No Privileges Person case see that the question was created from a bug. |
2625 | They use the link to Related bug to return to the bug. |
2626 | |
2627 | - >>> print user_browser.title |
2628 | + >>> print(user_browser.title) |
2629 | Question #... : Questions : linux-source-2.6.15 package : Ubuntu |
2630 | |
2631 | - >>> print extract_text( |
2632 | - ... find_tag_by_id(user_browser.contents, 'original-bug')) |
2633 | + >>> print(extract_text( |
2634 | + ... find_tag_by_id(user_browser.contents, 'original-bug'))) |
2635 | This question was originally filed as bug #10. |
2636 | |
2637 | >>> user_browser.getLink('#10: another test bug').click() |
2638 | @@ -129,7 +129,7 @@ |
2639 | 'Bug #9 ...' |
2640 | |
2641 | >>> user_browser.getLink('Convert to a question').click() |
2642 | - >>> print user_browser.title |
2643 | + >>> print(user_browser.title) |
2644 | Convert this bug to a question... |
2645 | |
2646 | >>> find_main_content(user_browser.contents).p |
2647 | @@ -199,7 +199,7 @@ |
2648 | 'Bug #12 ...' |
2649 | |
2650 | >>> message = find_tag_by_id(user_browser.contents, 'bug-is-question') |
2651 | - >>> print extract_text(message) |
2652 | + >>> print(extract_text(message)) |
2653 | This bug report was converted into a question:...question #... |
2654 | |
2655 | |
2656 | @@ -214,7 +214,7 @@ |
2657 | 'Bug #12 ... : Bugs : Jokosher' |
2658 | |
2659 | >>> user_browser.getLink('Convert back to a bug').click() |
2660 | - >>> print user_browser.title |
2661 | + >>> print(user_browser.title) |
2662 | Bug #12 - Convert this... |
2663 | |
2664 | The 'Convert back to a bug' page explains what will happen if No |
2665 | @@ -242,17 +242,17 @@ |
2666 | Copy, Cut and Delete operations should work... |
2667 | |
2668 | >>> portlet = find_portlet(user_browser.contents, 'Related questions') |
2669 | - >>> print portlet |
2670 | + >>> print(portlet) |
2671 | None |
2672 | |
2673 | >>> user_browser.getLink( |
2674 | ... 'Copy, Cut and Delete operations should work on ' |
2675 | ... 'selections').click() |
2676 | - >>> print user_browser.title |
2677 | + >>> print(user_browser.title) |
2678 | Question #... : Questions : Jokosher |
2679 | |
2680 | - >>> print extract_text( |
2681 | - ... find_tag_by_id(user_browser.contents, 'question-status')) |
2682 | + >>> print(extract_text( |
2683 | + ... find_tag_by_id(user_browser.contents, 'question-status'))) |
2684 | Status: Open |
2685 | |
2686 | No Privileges Person uses their browser's back button to view the bug |
2687 | @@ -260,7 +260,7 @@ |
2688 | |
2689 | >>> user_browser.goBack(count=1) |
2690 | >>> content = find_main_content(user_browser.contents) |
2691 | - >>> print extract_text(content(['table'], {'class' : 'listing'})[0]) |
2692 | + >>> print(extract_text(content(['table'], {'class' : 'listing'})[0])) |
2693 | Affects Status Importance Assigned to Milestone |
2694 | ... Jokosher ... Invalid Critical Unassigned ... |
2695 | Affecting: Jokosher |
2696 | @@ -268,8 +268,8 @@ |
2697 | |
2698 | They read their comment that was appended to the bug report's messages. |
2699 | |
2700 | - >>> print extract_text( |
2701 | - ... find_tags_by_class(str(content), 'boardComment')[-1]) |
2702 | + >>> print(extract_text( |
2703 | + ... find_tags_by_class(str(content), 'boardComment')[-1])) |
2704 | No Privileges Person (no-priv) |
2705 | wrote |
2706 | ... |
2707 | @@ -284,7 +284,7 @@ |
2708 | |
2709 | >>> user_browser.open( |
2710 | ... 'http://bugs.launchpad.dev/jokosher/+bug/12/+remove-question') |
2711 | - >>> print user_browser.title |
2712 | + >>> print(user_browser.title) |
2713 | Bug #12 - Convert this... |
2714 | |
2715 | >>> find_main_content(user_browser.contents).p |
2716 | |
2717 | === modified file 'lib/lp/bugs/stories/bugs/xx-bug-edit.txt' |
2718 | --- lib/lp/bugs/stories/bugs/xx-bug-edit.txt 2012-08-03 01:42:13 +0000 |
2719 | +++ lib/lp/bugs/stories/bugs/xx-bug-edit.txt 2018-06-30 16:32:46 +0000 |
2720 | @@ -6,10 +6,10 @@ |
2721 | |
2722 | >>> user_browser.open( |
2723 | ... 'http://bugs.launchpad.dev/jokosher/+bug/11/+edit') |
2724 | - >>> print user_browser.title |
2725 | + >>> print(user_browser.title) |
2726 | Edit details for bug #11 ... |
2727 | >>> main = find_main_content(user_browser.contents) |
2728 | - >>> print extract_text(main.h1) |
2729 | + >>> print(extract_text(main.h1)) |
2730 | Edit details for bug #11 |
2731 | |
2732 | And now we show that any logged-in user can edit public bugs. |
2733 | @@ -26,9 +26,9 @@ |
2734 | >>> browser.url |
2735 | 'http://.../debian/+source/mozilla-firefox/+bug/3' |
2736 | >>> content = find_main_content(browser.contents) |
2737 | - >>> print extract_text(content.h1) |
2738 | + >>> print(extract_text(content.h1)) |
2739 | New Summary Edit |
2740 | - >>> print extract_text(find_tag_by_id(content, 'maincontentsub')) |
2741 | + >>> print(extract_text(find_tag_by_id(content, 'maincontentsub'))) |
2742 | Edit Bug Description New description. ... |
2743 | |
2744 | |
2745 | @@ -72,9 +72,9 @@ |
2746 | |
2747 | >>> user_browser.url |
2748 | 'http://bugs.launchpad.dev/firefox/+bug/1' |
2749 | - >>> 'layout-test' in user_browser.contents |
2750 | + >>> b'layout-test' in user_browser.contents |
2751 | True |
2752 | - >>> 'new-tag' in user_browser.contents |
2753 | + >>> b'new-tag' in user_browser.contents |
2754 | False |
2755 | |
2756 | Now, let's add 'new-tag' again, and confirm it this time. |
2757 | |
2758 | === modified file 'lib/lp/bugs/stories/bugs/xx-bug-heat-on-bug-page.txt' |
2759 | --- lib/lp/bugs/stories/bugs/xx-bug-heat-on-bug-page.txt 2012-02-07 07:20:50 +0000 |
2760 | +++ lib/lp/bugs/stories/bugs/xx-bug-heat-on-bug-page.txt 2018-06-30 16:32:46 +0000 |
2761 | @@ -4,5 +4,5 @@ |
2762 | |
2763 | >>> anon_browser.open('http://bugs.launchpad.dev/firefox/+bug/1') |
2764 | >>> content = find_main_content(anon_browser.contents) |
2765 | - >>> print content.find('a', href='/+help-bugs/bug-heat.html') |
2766 | + >>> print(content.find('a', href='/+help-bugs/bug-heat.html')) |
2767 | <a href="/+help-bugs/bug-heat.html" target="help" class="sprite flame">0</a> |
2768 | |
2769 | === modified file 'lib/lp/bugs/stories/bugs/xx-bug-hidden-comments.txt' |
2770 | --- lib/lp/bugs/stories/bugs/xx-bug-hidden-comments.txt 2015-09-14 16:38:15 +0000 |
2771 | +++ lib/lp/bugs/stories/bugs/xx-bug-hidden-comments.txt 2018-06-30 16:32:46 +0000 |
2772 | @@ -13,7 +13,7 @@ |
2773 | >>> main_content = find_main_content(user_browser.contents) |
2774 | >>> new_comment = main_content('div', 'boardCommentBody')[-1] |
2775 | >>> new_comment_text = extract_text(new_comment.div) |
2776 | - >>> print new_comment_text |
2777 | + >>> print(new_comment_text) |
2778 | This comment will not be visible when the test completes. |
2779 | |
2780 | Admin users can set a message's visible attribute to False. |
2781 | @@ -26,7 +26,7 @@ |
2782 | >>> login('foo.bar@canonical.com') |
2783 | >>> bug_11 = getUtility(IBugSet).get(11) |
2784 | >>> message = bug_11.messages[-1] |
2785 | - >>> print message.text_contents |
2786 | + >>> print(message.text_contents) |
2787 | This comment will not be visible when the test completes. |
2788 | >>> bug_message = getUtility(IBugMessageSet).getByBugAndMessage( |
2789 | ... bug_11, message) |
2790 | @@ -44,7 +44,7 @@ |
2791 | >>> main_content = find_main_content(test_browser.contents) |
2792 | >>> last_comment = main_content('div', 'boardCommentBody')[-1] |
2793 | >>> last_comment_text = extract_text(last_comment.div) |
2794 | - >>> print last_comment_text |
2795 | + >>> print(last_comment_text) |
2796 | This title, however, is the same as the bug title and so it will |
2797 | be suppressed in the UI. |
2798 | |
2799 | @@ -70,13 +70,13 @@ |
2800 | >>> main_content = find_main_content(admin_browser.contents) |
2801 | >>> last_comment = main_content('div', 'boardCommentBody')[-1] |
2802 | >>> last_comment_text = extract_text(last_comment.div) |
2803 | - >>> print last_comment_text |
2804 | + >>> print(last_comment_text) |
2805 | This comment will not be visible when the test completes. |
2806 | |
2807 | Admin users will see the hidden message highlighted with an |
2808 | 'adminHiddenComment' style. |
2809 | |
2810 | - >>> print last_comment.parent['class'] |
2811 | + >>> print(last_comment.parent['class']) |
2812 | boardComment adminHiddenComment |
2813 | |
2814 | Admin users can also reach the message via direct link, and it is |
2815 | @@ -86,14 +86,14 @@ |
2816 | ... 'http://bugs.launchpad.dev' |
2817 | ... '/jokosher/+bug/11/comments/%d' % (int(latest_index[1:]) + 1)) |
2818 | >>> contents = extract_text(admin_browser.contents) |
2819 | - >>> print contents |
2820 | + >>> print(contents) |
2821 | Comment #7 : Bug #11 ... |
2822 | This comment will not be visible when the test completes. |
2823 | ... |
2824 | >>> main_content = find_main_content(admin_browser.contents) |
2825 | >>> last_comment = main_content('div', 'boardCommentBody')[-1] |
2826 | >>> last_comment_text = extract_text(last_comment.div) |
2827 | - >>> print last_comment.parent['class'] |
2828 | + >>> print(last_comment.parent['class']) |
2829 | boardComment adminHiddenComment |
2830 | |
2831 | Also for the owner of comment the message is still visible in the bug page. |
2832 | @@ -104,13 +104,13 @@ |
2833 | >>> main_content = find_main_content(user_browser.contents) |
2834 | >>> last_comment = main_content('div', 'boardCommentBody')[-1] |
2835 | >>> last_comment_text = extract_text(last_comment.div) |
2836 | - >>> print last_comment_text |
2837 | + >>> print(last_comment_text) |
2838 | This comment will not be visible when the test completes. |
2839 | |
2840 | Owner of the comment will see the hidden message highlighted with an |
2841 | 'adminHiddenComment' style. |
2842 | |
2843 | - >>> print last_comment.parent['class'] |
2844 | + >>> print(last_comment.parent['class']) |
2845 | boardComment adminHiddenComment |
2846 | |
2847 | Owner of the comment can also reach the message via direct link, and it is |
2848 | @@ -120,12 +120,12 @@ |
2849 | ... 'http://bugs.launchpad.dev' |
2850 | ... '/jokosher/+bug/11/comments/%d' % (int(latest_index[1:]) + 1)) |
2851 | >>> contents = extract_text(user_browser.contents) |
2852 | - >>> print contents |
2853 | + >>> print(contents) |
2854 | Comment #7 : Bug #11 ... |
2855 | This comment will not be visible when the test completes. |
2856 | ... |
2857 | >>> main_content = find_main_content(user_browser.contents) |
2858 | >>> last_comment = main_content('div', 'boardCommentBody')[-1] |
2859 | >>> last_comment_text = extract_text(last_comment.div) |
2860 | - >>> print last_comment.parent['class'] |
2861 | + >>> print(last_comment.parent['class']) |
2862 | boardComment adminHiddenComment |
2863 | |
2864 | === modified file 'lib/lp/bugs/stories/bugs/xx-bug-index-lots-of-comments.txt' |
2865 | --- lib/lp/bugs/stories/bugs/xx-bug-index-lots-of-comments.txt 2016-04-29 13:25:26 +0000 |
2866 | +++ lib/lp/bugs/stories/bugs/xx-bug-index-lots-of-comments.txt 2018-06-30 16:32:46 +0000 |
2867 | @@ -34,8 +34,8 @@ |
2868 | |
2869 | With a warning telling the user where the comments have gone: |
2870 | |
2871 | - >>> print extract_text(first_tag_by_class( |
2872 | - ... user_browser.contents, 'informational message')) |
2873 | + >>> print(extract_text(first_tag_by_class( |
2874 | + ... user_browser.contents, 'informational message'))) |
2875 | Displaying first 1 |
2876 | and last 2 |
2877 | comments. |
2878 | @@ -45,8 +45,8 @@ |
2879 | The add comment box is present but hidden so people don't accidentally |
2880 | reply to the wrong message. |
2881 | |
2882 | - >>> print find_tag_by_id( |
2883 | - ... user_browser.contents, 'add-comment-form-container') |
2884 | + >>> print(find_tag_by_id( |
2885 | + ... user_browser.contents, 'add-comment-form-container')) |
2886 | <div id="add-comment-form-container" class="hidden">... |
2887 | <div id="add-comment-form">...</div>... |
2888 | </div> |
2889 | @@ -65,7 +65,7 @@ |
2890 | >>> len(comments) |
2891 | 7 |
2892 | |
2893 | - >>> print find_tag_by_id(user_browser.contents, 'add-comment-form').name |
2894 | + >>> print(find_tag_by_id(user_browser.contents, 'add-comment-form').name) |
2895 | div |
2896 | |
2897 | Anonymous users have a slightly different experience. If the comment |
2898 | @@ -73,8 +73,8 @@ |
2899 | is also removed. |
2900 | |
2901 | >>> anon_browser.open('http://launchpad.dev/bugs/11') |
2902 | - >>> print find_tag_by_id( |
2903 | - ... anon_browser.contents, 'add-comment-login-first') |
2904 | + >>> print(find_tag_by_id( |
2905 | + ... anon_browser.contents, 'add-comment-login-first')) |
2906 | None |
2907 | |
2908 | When an anonymous user views all comments, the "you must log in" note |
2909 | @@ -83,9 +83,9 @@ |
2910 | >>> anon_browser.getLink('View all 6 comments').click() |
2911 | >>> add_comment_link = find_tag_by_id( |
2912 | ... anon_browser.contents, 'add-comment-login-first') |
2913 | - >>> print extract_text(add_comment_link) |
2914 | + >>> print(extract_text(add_comment_link)) |
2915 | To post a comment you must log in. |
2916 | - >>> print add_comment_link.a.get('href') |
2917 | + >>> print(add_comment_link.a.get('href')) |
2918 | +login?comments=all |
2919 | |
2920 | Restore the configuration to its previous setting. |
2921 | |
2922 | === modified file 'lib/lp/bugs/stories/bugs/xx-bug-index.txt' |
2923 | --- lib/lp/bugs/stories/bugs/xx-bug-index.txt 2015-06-27 04:10:49 +0000 |
2924 | +++ lib/lp/bugs/stories/bugs/xx-bug-index.txt 2018-06-30 16:32:46 +0000 |
2925 | @@ -30,7 +30,7 @@ |
2926 | highlighted. |
2927 | |
2928 | >>> anon_browser.open('http://launchpad.dev/firefox/+bug/1') |
2929 | - >>> print anon_browser.contents |
2930 | + >>> print(anon_browser.contents) |
2931 | <!DOCTYPE... |
2932 | ... |
2933 | ...<tr class="highlight" id="..."> |
2934 | @@ -42,12 +42,12 @@ |
2935 | ...<tr> |
2936 | ...mozilla-firefox (Ubuntu)... |
2937 | ... |
2938 | - >>> anon_browser.contents.count('<tr class="highlight"') |
2939 | + >>> anon_browser.contents.count(b'<tr class="highlight"') |
2940 | 1 |
2941 | |
2942 | >>> anon_browser.open( |
2943 | ... 'http://launchpad.dev/debian/+source/mozilla-firefox/+bug/1') |
2944 | - >>> print anon_browser.contents |
2945 | + >>> print(anon_browser.contents) |
2946 | <!DOCTYPE... |
2947 | ... |
2948 | ...<tr> |
2949 | @@ -59,17 +59,17 @@ |
2950 | ...<tr> |
2951 | ...mozilla-firefox (Ubuntu)... |
2952 | ... |
2953 | - >>> anon_browser.contents.count('<tr class="highlight"') |
2954 | + >>> anon_browser.contents.count(b'<tr class="highlight"') |
2955 | 1 |
2956 | |
2957 | If the context is a distribution package, the package name has a |
2958 | tooltip containing the package details. |
2959 | |
2960 | - >>> print anon_browser.getLink('mozilla-firefox (Ubuntu)').attrs['title'] |
2961 | + >>> print(anon_browser.getLink('mozilla-firefox (Ubuntu)').attrs['title']) |
2962 | Latest release: 0.9, uploaded to main on 2004-09-27 11:57:13+00:00... |
2963 | by Mark Shuttleworth (mark), maintained by Mark Shuttleworth (mark) |
2964 | |
2965 | - >>> print anon_browser.getLink('mozilla-firefox (Debian)').attrs['title'] |
2966 | + >>> print(anon_browser.getLink('mozilla-firefox (Debian)').attrs['title']) |
2967 | No current release for this source package in Debian |
2968 | |
2969 | (XXX 20080623 mpt: Projects and distributions should similarly have a tooltip |
2970 | @@ -80,7 +80,7 @@ |
2971 | |
2972 | >>> user_browser.open( |
2973 | ... "http://launchpad.dev/debian/+source/mozilla-firefox/+bug/2") |
2974 | - >>> print user_browser.contents |
2975 | + >>> print(user_browser.contents) |
2976 | <!DOCTYPE... |
2977 | ... |
2978 | ...Tomcat... |
2979 | @@ -100,7 +100,7 @@ |
2980 | |
2981 | >>> user_browser.open( |
2982 | ... "http://launchpad.dev/ubuntu/+source/mozilla-firefox/+bug/1") |
2983 | - >>> print extract_text(find_tag_by_id(user_browser.contents, 'task17')) |
2984 | + >>> print(extract_text(find_tag_by_id(user_browser.contents, 'task17'))) |
2985 | Affecting: mozilla-firefox (Ubuntu) |
2986 | Filed here by: Foo Bar |
2987 | When: 2004-01-17 |
2988 | @@ -110,18 +110,18 @@ |
2989 | The bug page includes a link to report another bug. |
2990 | |
2991 | >>> user_browser.open('http://bugs.launchpad.dev/firefox/+bug/1') |
2992 | - >>> print user_browser.getLink('Report a bug').url |
2993 | + >>> print(user_browser.getLink('Report a bug').url) |
2994 | http://bugs.launchpad.dev/firefox/+filebug |
2995 | |
2996 | >>> user_browser.open( |
2997 | ... 'http://launchpad.dev/ubuntu/+source/mozilla-firefox/+bug/1') |
2998 | - >>> print user_browser.getLink('Report a bug').url |
2999 | + >>> print(user_browser.getLink('Report a bug').url) |
3000 | http://launchpad.dev/ubuntu/+source/mozilla-firefox/+filebug |
3001 | |
3002 | There's also a link on the page that will take the user to the "Add |
3003 | attachment or patch" page, for use when JavaScript isn't available. |
3004 | |
3005 | - >>> print user_browser.getLink('Add attachment or patch').url |
3006 | + >>> print(user_browser.getLink('Add attachment or patch').url) |
3007 | http://bugs.launchpad.dev/ubuntu/+source/.../+bug/1/+addcomment |
3008 | |
3009 | |
3010 | @@ -132,7 +132,7 @@ |
3011 | redirected to the default context. |
3012 | |
3013 | >>> browser.open('http://bugs.launchpad.dev/jokosher/+bug/10') |
3014 | - >>> print browser.url |
3015 | + >>> print(browser.url) |
3016 | http://bugs.launchpad.dev/ubuntu/+source/linux-source-2.6.15/+bug/10 |
3017 | |
3018 | |
3019 | @@ -154,8 +154,8 @@ |
3020 | On the bug page, for every bug task there's one expander. |
3021 | |
3022 | >>> browser.open(bug_url) |
3023 | - >>> print len(find_tags_by_class( |
3024 | - ... browser.contents, 'bugtask-expander')) |
3025 | + >>> print(len(find_tags_by_class( |
3026 | + ... browser.contents, 'bugtask-expander'))) |
3027 | 1 |
3028 | |
3029 | We add four more tasks. |
3030 | @@ -168,8 +168,8 @@ |
3031 | And the expander appears five times. |
3032 | |
3033 | >>> browser.open(bug_url) |
3034 | - >>> print len(find_tags_by_class( |
3035 | - ... browser.contents, 'bugtask-expander')) |
3036 | + >>> print(len(find_tags_by_class( |
3037 | + ... browser.contents, 'bugtask-expander'))) |
3038 | 5 |
3039 | |
3040 | But on pages with more than ten bug tasks, we don't include the expander |
3041 | @@ -181,7 +181,7 @@ |
3042 | >>> logout() |
3043 | |
3044 | >>> browser.open(bug_url) |
3045 | - >>> print len(find_tags_by_class( |
3046 | - ... browser.contents, 'bugtask-expander')) |
3047 | + >>> print(len(find_tags_by_class( |
3048 | + ... browser.contents, 'bugtask-expander'))) |
3049 | 0 |
3050 | |
3051 | |
3052 | === modified file 'lib/lp/bugs/stories/bugs/xx-bug-obfuscation.txt' |
3053 | --- lib/lp/bugs/stories/bugs/xx-bug-obfuscation.txt 2012-02-21 22:30:41 +0000 |
3054 | +++ lib/lp/bugs/stories/bugs/xx-bug-obfuscation.txt 2018-06-30 16:32:46 +0000 |
3055 | @@ -25,10 +25,10 @@ |
3056 | >>> anon_browser.open( |
3057 | ... 'http://bugs.launchpad.dev' |
3058 | ... '/debian/sarge/+source/mozilla-firefox/+bug/3') |
3059 | - >>> print anon_browser.title |
3060 | + >>> print(anon_browser.title) |
3061 | Bug #3 ... |
3062 | |
3063 | - >>> 'user@domain.org' in anon_browser.contents |
3064 | + >>> b'user@domain.org' in anon_browser.contents |
3065 | False |
3066 | |
3067 | >>> description = find_tag_by_id( |
3068 | |
3069 | === modified file 'lib/lp/bugs/stories/bugs/xx-bug-personal-subscriptions-advanced-features.txt' |
3070 | --- lib/lp/bugs/stories/bugs/xx-bug-personal-subscriptions-advanced-features.txt 2012-10-09 10:28:02 +0000 |
3071 | +++ lib/lp/bugs/stories/bugs/xx-bug-personal-subscriptions-advanced-features.txt 2018-06-30 16:32:46 +0000 |
3072 | @@ -15,7 +15,7 @@ |
3073 | >>> bug_notification_level_control = user_browser.getControl( |
3074 | ... name='field.bug_notification_level') |
3075 | >>> for control in bug_notification_level_control.controls: |
3076 | - ... print control.optionValue |
3077 | + ... print(control.optionValue) |
3078 | Discussion |
3079 | Details |
3080 | Lifecycle |
3081 | @@ -24,10 +24,10 @@ |
3082 | this case, they want to subscribe to just metadata updates: |
3083 | |
3084 | >>> bug_notification_level_control.getControl( |
3085 | - ... 'any change is made to this bug, other than a new comment ' |
3086 | - ... 'being added').click() |
3087 | + ... b'any change is made to this bug, other than a new comment ' |
3088 | + ... b'being added').click() |
3089 | >>> user_browser.getControl('Continue').click() |
3090 | |
3091 | >>> for message in find_tags_by_class(user_browser.contents, 'message'): |
3092 | - ... print extract_text(message) |
3093 | + ... print(extract_text(message)) |
3094 | You have subscribed to this bug report. |
3095 | |
3096 | === modified file 'lib/lp/bugs/stories/bugs/xx-bug-single-comment-view.txt' |
3097 | --- lib/lp/bugs/stories/bugs/xx-bug-single-comment-view.txt 2017-10-23 00:16:39 +0000 |
3098 | +++ lib/lp/bugs/stories/bugs/xx-bug-single-comment-view.txt 2018-06-30 16:32:46 +0000 |
3099 | @@ -10,7 +10,7 @@ |
3100 | ... soup = find_main_content(browser.contents) |
3101 | ... comment_details = soup('div', 'boardCommentDetails') |
3102 | ... for details in comment_details: |
3103 | - ... print details.find('strong').string |
3104 | + ... print(details.find('strong').string) |
3105 | |
3106 | >>> print_comment_titles(browser.contents) |
3107 | Fantastic idea, I'd really like to see this |
3108 | |
3109 | === modified file 'lib/lp/bugs/stories/bugs/xx-bug-text-pages.txt' |
3110 | --- lib/lp/bugs/stories/bugs/xx-bug-text-pages.txt 2015-10-06 06:48:01 +0000 |
3111 | +++ lib/lp/bugs/stories/bugs/xx-bug-text-pages.txt 2018-06-30 16:32:46 +0000 |
3112 | @@ -55,14 +55,14 @@ |
3113 | >>> anon_browser.open('http://launchpad.dev/bugs/1/+text') |
3114 | >>> anon_browser.url |
3115 | 'http://launchpad.dev/bugs/1/+text' |
3116 | - >>> print anon_browser.headers['content-type'] |
3117 | + >>> print(anon_browser.headers['content-type']) |
3118 | text/plain;charset=utf-8 |
3119 | |
3120 | The textual description contains basic information about that bug, along with |
3121 | all tasks related to that bug, presented in an easy-to-digest format: |
3122 | |
3123 | - >>> text_bug = anon_browser.contents |
3124 | - >>> print text_bug |
3125 | + >>> text_bug = anon_browser.contents.decode('UTF-8') |
3126 | + >>> print(text_bug) |
3127 | bug: 1 |
3128 | title: Firefox does not support SVG |
3129 | date-reported: Thu, 01 Jan 2004 20:58:04 -0000 |
3130 | @@ -151,7 +151,7 @@ |
3131 | >>> attachments_text = text_bug[text_bug.find('attachments:'):] |
3132 | >>> attachment_2 = attachments_text.split('\n')[2] |
3133 | >>> attachment_2 |
3134 | - ' http://bugs.launchpad.dev/.../file%20with%20space.txt text/plain; |
3135 | + u' http://bugs.launchpad.dev/.../file%20with%20space.txt text/plain; |
3136 | name="file with space.txt"' |
3137 | |
3138 | |
3139 | @@ -169,14 +169,14 @@ |
3140 | >>> anon_browser.url |
3141 | 'http://launchpad.dev/firefox/+bug/1/+text' |
3142 | |
3143 | - >>> print anon_browser.headers['content-type'] |
3144 | + >>> print(anon_browser.headers['content-type']) |
3145 | text/plain;charset=utf-8 |
3146 | |
3147 | The textual report contains the same information as the report provided by the |
3148 | parent bug context: |
3149 | |
3150 | - >>> text_bug_task = anon_browser.contents |
3151 | - >>> print text_bug_task |
3152 | + >>> text_bug_task = anon_browser.contents.decode('UTF-8') |
3153 | + >>> print(text_bug_task) |
3154 | bug: 1 |
3155 | title: Firefox does not support SVG |
3156 | ... |
3157 | @@ -213,8 +213,8 @@ |
3158 | ... assert(len(bug_task_lines) == len(bug_lines)) |
3159 | ... for line_no in range(len(bug_task_lines)): |
3160 | ... if bug_lines[line_no] != bug_task_lines[line_no]: |
3161 | - ... print bug_lines[line_no] |
3162 | - ... print bug_task_lines[line_no] |
3163 | + ... print(bug_lines[line_no]) |
3164 | + ... print(bug_task_lines[line_no]) |
3165 | http://bugs.launchpad.dev/bugs/1/+attachment/.../+files/file_a.txt text/html |
3166 | http://bugs.launchpad.dev/firefox/+bug/.../+files/file_a.txt text/html |
3167 | http://bugs.launchpad.dev/bugs/1/.../+files/file%20with%20space.txt... |
3168 | @@ -230,10 +230,10 @@ |
3169 | >>> anon_browser.open('http://launchpad.dev/bugs/6/+text') |
3170 | >>> anon_browser.url |
3171 | 'http://launchpad.dev/bugs/6/+text' |
3172 | - >>> print anon_browser.headers['content-type'] |
3173 | + >>> print(anon_browser.headers['content-type']) |
3174 | text/plain;charset=utf-8 |
3175 | |
3176 | - >>> print anon_browser.contents |
3177 | + >>> print(anon_browser.contents) |
3178 | bug: 6 |
3179 | ... |
3180 | duplicate-of: 5 |
3181 | @@ -245,10 +245,10 @@ |
3182 | >>> anon_browser.open('http://launchpad.dev/bugs/5/+text') |
3183 | >>> anon_browser.url |
3184 | 'http://launchpad.dev/bugs/5/+text' |
3185 | - >>> print anon_browser.headers['content-type'] |
3186 | + >>> print(anon_browser.headers['content-type']) |
3187 | text/plain;charset=utf-8 |
3188 | |
3189 | - >>> print anon_browser.contents |
3190 | + >>> print(anon_browser.contents) |
3191 | bug: 5 |
3192 | ... |
3193 | duplicate-of: |
3194 | @@ -268,10 +268,10 @@ |
3195 | >>> anon_browser.open('http://launchpad.dev/firefox/+bugs-text') |
3196 | >>> anon_browser.url |
3197 | 'http://launchpad.dev/firefox/+bugs-text' |
3198 | - >>> print anon_browser.headers['content-type'] |
3199 | + >>> print(anon_browser.headers['content-type']) |
3200 | text/plain;charset=utf-8 |
3201 | |
3202 | - >>> print anon_browser.contents |
3203 | + >>> print(anon_browser.contents) |
3204 | 5 |
3205 | 4 |
3206 | |
3207 | @@ -283,10 +283,10 @@ |
3208 | >>> search_parameters = 'field.status:list=FIXRELEASED' |
3209 | >>> url = base_url + '?' + search_parameters |
3210 | >>> anon_browser.open(url) |
3211 | - >>> print anon_browser.headers['content-type'] |
3212 | + >>> print(anon_browser.headers['content-type']) |
3213 | text/plain;charset=utf-8 |
3214 | |
3215 | - >>> print anon_browser.contents |
3216 | + >>> print(anon_browser.contents) |
3217 | 1 |
3218 | |
3219 | Searching for bugs in a component of a distribution works too. |
3220 | @@ -295,16 +295,16 @@ |
3221 | >>> search_parameters = 'field.component=1' |
3222 | >>> url = base_url + '?' + search_parameters |
3223 | >>> anon_browser.open(url) |
3224 | - >>> print anon_browser.headers['content-type'] |
3225 | + >>> print(anon_browser.headers['content-type']) |
3226 | text/plain;charset=utf-8 |
3227 | |
3228 | - >>> print anon_browser.contents |
3229 | + >>> print(anon_browser.contents) |
3230 | 10 |
3231 | |
3232 | This page is also available for project groups. |
3233 | |
3234 | >>> anon_browser.open('http://launchpad.dev/mozilla/+bugs-text') |
3235 | - >>> print anon_browser.contents |
3236 | + >>> print(anon_browser.contents) |
3237 | 15 |
3238 | 5 |
3239 | 4 |
3240 | @@ -315,7 +315,7 @@ |
3241 | When a bug is private, the textual description reflects this: |
3242 | |
3243 | >>> admin_browser.open('http://launchpad.dev/bugs/14/+text') |
3244 | - >>> print admin_browser.contents |
3245 | + >>> print(admin_browser.contents) |
3246 | bug: 14 |
3247 | title: jokosher exposes personal details in its actions portlet |
3248 | date-reported: Thu, 09 Aug 2007 11:39:16 -0000 |
3249 | |
3250 | === modified file 'lib/lp/bugs/stories/bugs/xx-bugs-advanced-search-upstream-status.txt' |
3251 | --- lib/lp/bugs/stories/bugs/xx-bugs-advanced-search-upstream-status.txt 2012-10-02 06:36:44 +0000 |
3252 | +++ lib/lp/bugs/stories/bugs/xx-bugs-advanced-search-upstream-status.txt 2018-06-30 16:32:46 +0000 |
3253 | @@ -26,7 +26,7 @@ |
3254 | >>> upstream_status = anon_browser.getControl( |
3255 | ... name='field.status_upstream') |
3256 | >>> upstream_status.displayValue = [ |
3257 | - ... 'Show bugs that need to be forwarded to an upstream bug tracker'] |
3258 | + ... b'Show bugs that need to be forwarded to an upstream bug tracker'] |
3259 | >>> anon_browser.getControl('Search', index=0).click() |
3260 | >>> print_bugtasks(anon_browser.contents) |
3261 | 2 Blackhole Trash folder Ubuntu Medium New |
3262 | @@ -50,8 +50,8 @@ |
3263 | ... BugTaskStatus.INVALID, getUtility(ILaunchBag).user) |
3264 | |
3265 | >>> for bugtask in bug_two.bugtasks: |
3266 | - ... print "%s, %s" % ( |
3267 | - ... bugtask.target.bugtargetdisplayname, bugtask.status.title) |
3268 | + ... print("%s, %s" % ( |
3269 | + ... bugtask.target.bugtargetdisplayname, bugtask.status.title)) |
3270 | Tomcat, Invalid |
3271 | Ubuntu, New |
3272 | Ubuntu Hoary, New |
3273 | @@ -64,9 +64,9 @@ |
3274 | >>> upstream_status = anon_browser.getControl( |
3275 | ... name='field.status_upstream') |
3276 | >>> upstream_status.displayValue = [ |
3277 | - ... 'Show bugs that need to be forwarded to an upstream bug tracker'] |
3278 | + ... b'Show bugs that need to be forwarded to an upstream bug tracker'] |
3279 | >>> anon_browser.getControl('Search', index=0).click() |
3280 | - >>> print anon_browser.contents |
3281 | + >>> print(anon_browser.contents) |
3282 | <!DOCTYPE... |
3283 | ...No results... |
3284 | |
3285 | @@ -79,7 +79,7 @@ |
3286 | >>> upstream_status = anon_browser.getControl( |
3287 | ... name='field.status_upstream') |
3288 | >>> upstream_status.displayValue = [ |
3289 | - ... 'Show bugs that are not known to affect upstream'] |
3290 | + ... b'Show bugs that are not known to affect upstream'] |
3291 | >>> anon_browser.getControl('Search', index=0).click() |
3292 | >>> print_bugtasks(anon_browser.contents) |
3293 | 10 another test bug linux-source-2.6.15 (Ubuntu) Medium New |
3294 | @@ -110,7 +110,7 @@ |
3295 | >>> upstream_status = anon_browser.getControl( |
3296 | ... name='field.status_upstream') |
3297 | >>> upstream_status.displayValue = [ |
3298 | - ... 'Show bugs that are resolved upstream'] |
3299 | + ... b'Show bugs that are resolved upstream'] |
3300 | >>> anon_browser.getControl('Search', index=0).click() |
3301 | >>> print_bugtasks(anon_browser.contents) |
3302 | 1 Firefox does not support SVG mozilla-firefox (Ubuntu) Medium New |
3303 | @@ -124,8 +124,8 @@ |
3304 | >>> upstream_status = anon_browser.getControl( |
3305 | ... name='field.status_upstream') |
3306 | >>> upstream_status.displayValue = [ |
3307 | - ... 'Show bugs that are resolved upstream', |
3308 | - ... 'Show bugs that are not known to affect upstream' |
3309 | + ... b'Show bugs that are resolved upstream', |
3310 | + ... b'Show bugs that are not known to affect upstream' |
3311 | ... ] |
3312 | |
3313 | >>> anon_browser.getControl('Search', index=0).click() |
3314 | |
3315 | === modified file 'lib/lp/bugs/stories/bugs/xx-bugs.txt' |
3316 | --- lib/lp/bugs/stories/bugs/xx-bugs.txt 2014-11-24 09:16:35 +0000 |
3317 | +++ lib/lp/bugs/stories/bugs/xx-bugs.txt 2018-06-30 16:32:46 +0000 |
3318 | @@ -2,14 +2,14 @@ |
3319 | specifically Hoary. |
3320 | |
3321 | >>> browser.open('http://localhost/ubuntu/hoary/+bugs') |
3322 | - >>> print browser.title |
3323 | + >>> print(browser.title) |
3324 | Hoary (5.04) : Bugs : Ubuntu |
3325 | |
3326 | This page checks that we can see a list of bugs on the distributions, in |
3327 | this case Ubuntu. |
3328 | |
3329 | >>> browser.open('http://localhost/ubuntu/+bugs') |
3330 | - >>> print browser.title |
3331 | + >>> print(browser.title) |
3332 | Bugs : Ubuntu... |
3333 | |
3334 | Comments are intended to be contributions to a bug report that further |
3335 | @@ -33,7 +33,7 @@ |
3336 | >>> user_browser.url |
3337 | 'http://bugs.launchpad.dev/debian/+source/mozilla-firefox/+bug/2' |
3338 | |
3339 | - >>> print user_browser.contents |
3340 | + >>> print(user_browser.contents) |
3341 | <... |
3342 | ...This is a test comment... |
3343 | |
3344 | |
3345 | === modified file 'lib/lp/bugs/stories/bugs/xx-bugtask-assignee-widget.txt' |
3346 | --- lib/lp/bugs/stories/bugs/xx-bugtask-assignee-widget.txt 2013-04-11 01:27:33 +0000 |
3347 | +++ lib/lp/bugs/stories/bugs/xx-bugtask-assignee-widget.txt 2018-06-30 16:32:46 +0000 |
3348 | @@ -1,10 +1,10 @@ |
3349 | The bug task edit page now features a new and improved assignee |
3350 | widget, which makes it easier to "take" a task. |
3351 | |
3352 | - >>> print http(r""" |
3353 | + >>> print(http(br""" |
3354 | ... GET /ubuntu/+source/mozilla-firefox/+bug/1/+editstatus HTTP/1.1 |
3355 | ... Authorization: Basic Zm9vLmJhckBjYW5vbmljYWwuY29tOnRlc3Q= |
3356 | - ... """) |
3357 | + ... """)) |
3358 | HTTP/1.1 200 Ok |
3359 | ... |
3360 | ...Assigned to... |
3361 | @@ -14,7 +14,7 @@ |
3362 | So, taking the task is now as simple as selecting the "me" radio |
3363 | button: |
3364 | |
3365 | - >>> print http(r""" |
3366 | + >>> print(http(br""" |
3367 | ... POST /ubuntu/+source/mozilla-firefox/+bug/1/+editstatus HTTP/1.1 |
3368 | ... Authorization: Basic Zm9vLmJhckBjYW5vbmljYWwuY29tOnRlc3Q= |
3369 | ... Referer: https://launchpad.dev/ |
3370 | @@ -69,17 +69,17 @@ |
3371 | ... |
3372 | ... Save Changes |
3373 | ... -----------------------------19759086281403130373932339922-- |
3374 | - ... """) |
3375 | + ... """)) |
3376 | HTTP/1.1 303 See Other |
3377 | ... |
3378 | |
3379 | In this example, we were logged in as Foo Bar, so the task is now |
3380 | automagically assigned to Foo Bar. |
3381 | |
3382 | - >>> print http(r""" |
3383 | + >>> print(http(br""" |
3384 | ... GET /ubuntu/+source/mozilla-firefox/+bug/1 HTTP/1.1 |
3385 | ... Authorization: Basic Zm9vLmJhckBjYW5vbmljYWwuY29tOnRlc3Q= |
3386 | - ... """) |
3387 | + ... """)) |
3388 | HTTP/1.1 200 Ok |
3389 | ... |
3390 | ...mozilla-firefox (Ubuntu)...Foo Bar... |
3391 | @@ -87,7 +87,7 @@ |
3392 | |
3393 | But, you can also assign the task to another person, of course: |
3394 | |
3395 | - >>> print http(r""" |
3396 | + >>> print(http(br""" |
3397 | ... POST /ubuntu/+source/mozilla-firefox/+bug/1/+editstatus HTTP/1.1 |
3398 | ... Authorization: Basic Zm9vLmJhckBjYW5vbmljYWwuY29tOnRlc3Q= |
3399 | ... Referer: https://launchpad.dev/ |
3400 | @@ -143,16 +143,16 @@ |
3401 | ... |
3402 | ... Save Changes |
3403 | ... -----------------------------19759086281403130373932339922-- |
3404 | - ... """) |
3405 | + ... """)) |
3406 | HTTP/1.1 303 See Other |
3407 | ... |
3408 | |
3409 | In this case, we assigned the task to Sample Person: |
3410 | |
3411 | - >>> print http(r""" |
3412 | + >>> print(http(br""" |
3413 | ... GET /ubuntu/+source/mozilla-firefox/+bug/1 HTTP/1.1 |
3414 | ... Authorization: Basic Zm9vLmJhckBjYW5vbmljYWwuY29tOnRlc3Q= |
3415 | - ... """) |
3416 | + ... """)) |
3417 | HTTP/1.1 200 Ok |
3418 | ... |
3419 | ...mozilla-firefox (Ubuntu)...Sample Person... |
3420 | @@ -161,7 +161,7 @@ |
3421 | Lastly, the widget also allows you to simply assign the task to nobody |
3422 | (to, "give up" the task, you might say) |
3423 | |
3424 | - >>> print http(r""" |
3425 | + >>> print(http(br""" |
3426 | ... POST /ubuntu/+source/mozilla-firefox/+bug/1/+editstatus HTTP/1.1 |
3427 | ... Authorization: Basic Zm9vLmJhckBjYW5vbmljYWwuY29tOnRlc3Q= |
3428 | ... Referer: https://launchpad.dev/ |
3429 | @@ -217,16 +217,16 @@ |
3430 | ... |
3431 | ... Save Changes |
3432 | ... -----------------------------19759086281403130373932339922-- |
3433 | - ... """) |
3434 | + ... """)) |
3435 | HTTP/1.1 303 See Other |
3436 | ... |
3437 | |
3438 | And now the bug task is unassigned: |
3439 | |
3440 | - >>> print http(r""" |
3441 | + >>> print(http(br""" |
3442 | ... GET /ubuntu/+source/mozilla-firefox/+bug/1 HTTP/1.1 |
3443 | ... Authorization: Basic Zm9vLmJhckBjYW5vbmljYWwuY29tOnRlc3Q= |
3444 | - ... """) |
3445 | + ... """)) |
3446 | HTTP/1.1 200 Ok |
3447 | ... |
3448 | ...mozilla-firefox (Ubuntu)... |
3449 | |
3450 | === modified file 'lib/lp/bugs/stories/bugs/xx-distribution-bugs-page.txt' |
3451 | --- lib/lp/bugs/stories/bugs/xx-distribution-bugs-page.txt 2014-11-29 06:41:25 +0000 |
3452 | +++ lib/lp/bugs/stories/bugs/xx-distribution-bugs-page.txt 2018-06-30 16:32:46 +0000 |
3453 | @@ -22,7 +22,7 @@ |
3454 | |
3455 | >>> user_browser.open('http://bugs.launchpad.dev/ubuntu/+bugs') |
3456 | >>> user_browser.getLink('Subscribe to bug mail').click() |
3457 | - >>> print user_browser.url |
3458 | + >>> print(user_browser.url) |
3459 | http://bugs.launchpad.dev/ubuntu/+subscribe |
3460 | |
3461 | |
3462 | @@ -41,7 +41,7 @@ |
3463 | >>> anon_browser.url |
3464 | 'http://.../+bugs?field.status_upstream=resolved_upstream' |
3465 | |
3466 | - >>> print find_main_content(anon_browser.contents) |
3467 | + >>> print(find_main_content(anon_browser.contents)) |
3468 | <... |
3469 | <p>There are currently no open bugs.</p> |
3470 | ... |
3471 | @@ -78,7 +78,7 @@ |
3472 | see which bugs will expire if they are not confirmed. |
3473 | |
3474 | >>> expirable_bugs_link.click() |
3475 | - >>> print anon_browser.title |
3476 | + >>> print(anon_browser.title) |
3477 | Expirable bugs : Bugs : Ubuntu |
3478 | |
3479 | Debian does not use Launchpad to track bugs; the anonymous user cannot |
3480 | |
3481 | === modified file 'lib/lp/bugs/stories/bugs/xx-distributionsourcepackage-bugs.txt' |
3482 | --- lib/lp/bugs/stories/bugs/xx-distributionsourcepackage-bugs.txt 2009-06-12 16:36:02 +0000 |
3483 | +++ lib/lp/bugs/stories/bugs/xx-distributionsourcepackage-bugs.txt 2018-06-30 16:32:46 +0000 |
3484 | @@ -12,6 +12,6 @@ |
3485 | ... 'http://bugs.launchpad.dev/ubuntu/+source/alsa-utils/') |
3486 | >>> portlet = find_portlet(anon_browser.contents, |
3487 | ... '"alsa-utils" versions published in Ubuntu') |
3488 | - >>> print portlet |
3489 | + >>> print(portlet) |
3490 | <div class="portlet" id="portlet-publishing-details"> |
3491 | ... |
3492 | |
3493 | === modified file 'lib/lp/bugs/stories/bugs/xx-distrorelease-bugs-page.txt' |
3494 | --- lib/lp/bugs/stories/bugs/xx-distrorelease-bugs-page.txt 2014-11-29 06:41:25 +0000 |
3495 | +++ lib/lp/bugs/stories/bugs/xx-distrorelease-bugs-page.txt 2018-06-30 16:32:46 +0000 |
3496 | @@ -22,7 +22,7 @@ |
3497 | |
3498 | >>> user_browser.open('http://bugs.launchpad.dev/ubuntu/warty') |
3499 | >>> user_browser.getLink('Subscribe to bug mail').click() |
3500 | - >>> print user_browser.url |
3501 | + >>> print(user_browser.url) |
3502 | http://bugs.launchpad.dev/ubuntu/warty/+subscribe |
3503 | |
3504 | |
3505 | @@ -40,7 +40,7 @@ |
3506 | >>> anon_browser.url |
3507 | 'http://.../+bugs?field.status_upstream=resolved_upstream' |
3508 | |
3509 | - >>> print find_main_content(anon_browser.contents) |
3510 | + >>> print(find_main_content(anon_browser.contents)) |
3511 | <... |
3512 | <p>There are currently no open bugs.</p> |
3513 | ... |
3514 | @@ -58,6 +58,6 @@ |
3515 | see which bugs will expire if they are not confirmed. |
3516 | |
3517 | >>> expirable_bugs_link.click() |
3518 | - >>> print anon_browser.title |
3519 | + >>> print(anon_browser.title) |
3520 | Expirable bugs : Warty (4.10) : Bugs : Ubuntu |
3521 | |
3522 | |
3523 | === modified file 'lib/lp/bugs/stories/bugs/xx-duplicate-of-private-bug.txt' |
3524 | --- lib/lp/bugs/stories/bugs/xx-duplicate-of-private-bug.txt 2012-07-31 09:41:51 +0000 |
3525 | +++ lib/lp/bugs/stories/bugs/xx-duplicate-of-private-bug.txt 2018-06-30 16:32:46 +0000 |
3526 | @@ -11,13 +11,13 @@ |
3527 | ... 'debian/+source/mozilla-firefox/+bug/8/+secrecy') |
3528 | >>> admin_browser.getControl('Private', index=1).selected = True |
3529 | >>> admin_browser.getControl('Change').click() |
3530 | - >>> print admin_browser.url |
3531 | + >>> print(admin_browser.url) |
3532 | http://bugs.launchpad.dev/debian/+source/mozilla-firefox/+bug/8 |
3533 | |
3534 | - >>> print admin_browser.title |
3535 | + >>> print(admin_browser.title) |
3536 | Bug #8 ...Printing doesn't work... |
3537 | |
3538 | - >>> print extract_text(find_tag_by_id(admin_browser.contents, 'privacy')) |
3539 | + >>> print(extract_text(find_tag_by_id(admin_browser.contents, 'privacy'))) |
3540 | This report contains Private information... |
3541 | |
3542 | Next we mark another bug as a duplicate of the private bug: |
3543 | @@ -33,21 +33,21 @@ |
3544 | |
3545 | >>> def print_messages(browser): |
3546 | ... for tag in find_tags_by_class(browser.contents, 'message'): |
3547 | - ... print tag.renderContents() |
3548 | + ... print(tag.renderContents()) |
3549 | |
3550 | - >>> print find_tag_by_id( |
3551 | - ... admin_browser.contents, 'duplicate-of').renderContents() |
3552 | + >>> print(find_tag_by_id( |
3553 | + ... admin_browser.contents, 'duplicate-of').renderContents()) |
3554 | bug #8 |
3555 | |
3556 | But when accessing it as an unprivileged user the title of the private |
3557 | bug cannot be found in the messages on the duplicate bug page: |
3558 | |
3559 | >>> user_browser.open(admin_browser.url) |
3560 | - >>> print find_tag_by_id(user_browser.contents, 'duplicate-of') |
3561 | + >>> print(find_tag_by_id(user_browser.contents, 'duplicate-of')) |
3562 | None |
3563 | |
3564 | The same is true when viewing the duplicate bug anonymously: |
3565 | |
3566 | >>> anon_browser.open(admin_browser.url) |
3567 | - >>> print find_tag_by_id(anon_browser.contents, 'duplicate-of') |
3568 | + >>> print(find_tag_by_id(anon_browser.contents, 'duplicate-of')) |
3569 | None |
3570 | |
3571 | === modified file 'lib/lp/bugs/stories/bugs/xx-front-page-bug-lists.txt' |
3572 | --- lib/lp/bugs/stories/bugs/xx-front-page-bug-lists.txt 2012-08-08 11:48:29 +0000 |
3573 | +++ lib/lp/bugs/stories/bugs/xx-front-page-bug-lists.txt 2018-06-30 16:32:46 +0000 |
3574 | @@ -46,11 +46,11 @@ |
3575 | to the bug target and to the bug reporter's page. |
3576 | |
3577 | >>> def print_bugs_links(bug_row): |
3578 | - ... print "%s: %s" % ( |
3579 | + ... print("%s: %s" % ( |
3580 | ... bug_row.span.a.renderContents().strip(), |
3581 | - ... bug_row.a.renderContents()) |
3582 | - ... print bug_row.a['href'] |
3583 | - ... print bug_row.span.a['href'] |
3584 | + ... bug_row.a.renderContents())) |
3585 | + ... print(bug_row.a['href']) |
3586 | + ... print(bug_row.span.a['href']) |
3587 | >>> for li in reported_bugs('li'): |
3588 | ... print_bugs_links(li) |
3589 | Bigfixer: Bug #...: Summary for new bug ... |
3590 | |
3591 | === modified file 'lib/lp/bugs/stories/bugs/xx-front-page-info.txt' |
3592 | --- lib/lp/bugs/stories/bugs/xx-front-page-info.txt 2015-06-15 08:35:10 +0000 |
3593 | +++ lib/lp/bugs/stories/bugs/xx-front-page-info.txt 2018-06-30 16:32:46 +0000 |
3594 | @@ -19,7 +19,7 @@ |
3595 | >>> anon_browser.open( |
3596 | ... 'http://bugs.launchpad.dev/test-project/+bugs') |
3597 | >>> uses_malone_p = find_tag_by_id(anon_browser.contents, 'no-malone') |
3598 | - >>> print extract_text(uses_malone_p) |
3599 | + >>> print(extract_text(uses_malone_p)) |
3600 | Test-project must be configured in order for Launchpad to forward bugs to |
3601 | the project's developers. |
3602 | |
3603 | @@ -33,7 +33,7 @@ |
3604 | ... 'http://bugs.launchpad.dev/test-project/+bugs') |
3605 | >>> enable_tracker = find_tag_by_id( |
3606 | ... admin_browser.contents, 'no-malone-edit') |
3607 | - >>> print extract_text(enable_tracker) |
3608 | + >>> print(extract_text(enable_tracker)) |
3609 | Configure Bugs |
3610 | |
3611 | The +bugs page for a project using Launchpad for bug tracking |
3612 | @@ -49,13 +49,13 @@ |
3613 | >>> anon_browser.open('http://bugs.launchpad.dev/uses-malone/+bugs') |
3614 | >>> bug_supervisor = find_tag_by_id( |
3615 | ... anon_browser.contents, 'bug-supervisor') |
3616 | - >>> print extract_text(bug_supervisor) |
3617 | + >>> print(extract_text(bug_supervisor)) |
3618 | Bug supervisor: |
3619 | None set |
3620 | |
3621 | >>> bug_list = find_tag_by_id( |
3622 | ... anon_browser.contents, 'bugs-table-listing') |
3623 | - >>> print extract_text(bug_list) |
3624 | + >>> print(extract_text(bug_list)) |
3625 | There are currently no open bugs. |
3626 | |
3627 | Projects that use an external bug tracker will list the tracker on a |
3628 | @@ -69,7 +69,7 @@ |
3629 | >>> anon_browser.open( |
3630 | ... 'http://bugs.launchpad.dev/test-project/+bugs') |
3631 | >>> tracker_text = find_tag_by_id(anon_browser.contents, 'bugtracker') |
3632 | - >>> print extract_text(tracker_text) |
3633 | + >>> print(extract_text(tracker_text)) |
3634 | Bugs are tracked in tracker.example.com/. |
3635 | |
3636 | Projects that are linked to an Ubuntu distro source package and that |
3637 | @@ -84,7 +84,7 @@ |
3638 | >>> logout() |
3639 | >>> anon_browser.open( |
3640 | ... 'http://bugs.launchpad.dev/test-project/+bugs') |
3641 | - >>> print extract_text( |
3642 | - ... find_tag_by_id(anon_browser.contents, 'also-in-ubuntu')) |
3643 | + >>> print(extract_text( |
3644 | + ... find_tag_by_id(anon_browser.contents, 'also-in-ubuntu'))) |
3645 | Ubuntu also tracks bugs for packages derived from this project: |
3646 | test-project-package in Ubuntu. |
3647 | |
3648 | === modified file 'lib/lp/bugs/stories/bugs/xx-front-page-search.txt' |
3649 | --- lib/lp/bugs/stories/bugs/xx-front-page-search.txt 2016-01-26 15:47:37 +0000 |
3650 | +++ lib/lp/bugs/stories/bugs/xx-front-page-search.txt 2018-06-30 16:32:46 +0000 |
3651 | @@ -25,7 +25,7 @@ |
3652 | >>> anon_browser.getControl('All projects').selected = True |
3653 | >>> anon_browser.getControl(name='field.searchtext').value = 'test bug' |
3654 | >>> anon_browser.getControl('Search Bug Reports').click() |
3655 | - >>> print anon_browser.title |
3656 | + >>> print(anon_browser.title) |
3657 | Search all bug reports |
3658 | >>> print_bugtasks(anon_browser.contents) |
3659 | 3 Bug Title Test |
3660 | @@ -86,7 +86,7 @@ |
3661 | 'test bug' |
3662 | |
3663 | >>> for message in find_tags_by_class(anon_browser.contents, 'message'): |
3664 | - ... print message.renderContents() |
3665 | + ... print(message.renderContents()) |
3666 | Please enter a project name |
3667 | |
3668 | An error message will be displayed also if the project isn't registered |
3669 | @@ -102,7 +102,7 @@ |
3670 | >>> anon_browser.getControl(name='field.searchtext').value |
3671 | 'test bug' |
3672 | >>> for message in find_tags_by_class(anon_browser.contents, 'message'): |
3673 | - ... print message.renderContents() |
3674 | + ... print(message.renderContents()) |
3675 | There is no project named 'invalid' registered in Launchpad |
3676 | |
3677 | If the user doesn't know what name to write, they can use the 'Choose' |
3678 | @@ -123,7 +123,7 @@ |
3679 | >>> anon_browser.getControl(name='field.scope.target').value = 'evolution' |
3680 | >>> anon_browser.getControl(name='field.searchtext').value = 'test bug' |
3681 | >>> anon_browser.getControl('Search Bug Reports').click() |
3682 | - >>> print anon_browser.title |
3683 | + >>> print(anon_browser.title) |
3684 | Bugs : Evolution... |
3685 | >>> anon_browser.url |
3686 | 'http://bugs.launchpad.dev/evolution/+bugs?field.searchtext=test+bug...' |
3687 | @@ -138,7 +138,7 @@ |
3688 | >>> anon_browser.getControl(name='field.scope.target').value = 'gnome' |
3689 | >>> anon_browser.getControl(name='field.searchtext').value = 'test bug' |
3690 | >>> anon_browser.getControl('Search Bug Reports').click() |
3691 | - >>> print anon_browser.title |
3692 | + >>> print(anon_browser.title) |
3693 | Bugs : GNOME |
3694 | >>> anon_browser.url |
3695 | 'http://bugs.launchpad.dev/gnome/+bugs?field.searchtext=test+bug...' |
3696 | @@ -153,7 +153,7 @@ |
3697 | >>> anon_browser.getControl(name='field.scope.target').value = 'ubuntu' |
3698 | >>> anon_browser.getControl(name='field.searchtext').value = 'test bug' |
3699 | >>> anon_browser.getControl('Search Bug Reports').click() |
3700 | - >>> print anon_browser.title |
3701 | + >>> print(anon_browser.title) |
3702 | Bugs : Ubuntu... |
3703 | >>> anon_browser.url |
3704 | 'http://bugs.launchpad.dev/ubuntu/+bugs?field.searchtext=test+bug...' |
3705 | |
3706 | === modified file 'lib/lp/bugs/stories/bugs/xx-front-page-statistics.txt' |
3707 | --- lib/lp/bugs/stories/bugs/xx-front-page-statistics.txt 2012-05-11 12:53:36 +0000 |
3708 | +++ lib/lp/bugs/stories/bugs/xx-front-page-statistics.txt 2018-06-30 16:32:46 +0000 |
3709 | @@ -10,7 +10,7 @@ |
3710 | >>> anon_browser.open('http://bugs.launchpad.dev/') |
3711 | >>> statistics = find_portlet( |
3712 | ... anon_browser.contents, 'Statistics') |
3713 | - >>> print extract_text(statistics) |
3714 | + >>> print(extract_text(statistics)) |
3715 | Statistics |
3716 | 15 bugs reported across 7 projects |
3717 | including 12 links to 8 bug trackers |
3718 | |
3719 | === modified file 'lib/lp/bugs/stories/bugs/xx-incomplete-bugs.txt' |
3720 | --- lib/lp/bugs/stories/bugs/xx-incomplete-bugs.txt 2016-01-26 15:47:37 +0000 |
3721 | +++ lib/lp/bugs/stories/bugs/xx-incomplete-bugs.txt 2018-06-30 16:32:46 +0000 |
3722 | @@ -9,8 +9,8 @@ |
3723 | ... 'http://bugs.launchpad.dev/jokosher/+bug/11/+editstatus') |
3724 | >>> user_browser.getControl('Status').value = ['Incomplete'] |
3725 | >>> user_browser.getControl('Save Changes').click() |
3726 | - >>> print extract_text( |
3727 | - ... find_tags_by_class(user_browser.contents, 'statusINCOMPLETE')[0]) |
3728 | + >>> print(extract_text( |
3729 | + ... find_tags_by_class(user_browser.contents, 'statusINCOMPLETE')[0])) |
3730 | Incomplete |
3731 | |
3732 | No Privileges Person can now search for the bug using the advanced |
3733 | @@ -40,8 +40,8 @@ |
3734 | The bug No Privileges Person examined earlier does not have any new |
3735 | information, so they do not see it in the list. |
3736 | |
3737 | - >>> print extract_text( |
3738 | - ... find_tag_by_id(user_browser.contents, 'bugs-table-listing')) |
3739 | + >>> print(extract_text( |
3740 | + ... find_tag_by_id(user_browser.contents, 'bugs-table-listing'))) |
3741 | No results for search |
3742 | |
3743 | No Privileges Person can supply new information by posting a new |
3744 | @@ -91,8 +91,8 @@ |
3745 | stating that the bug report will be marked for expiration. |
3746 | |
3747 | >>> user_browser.open('http://bugs.launchpad.dev/jokosher/+bug/11') |
3748 | - >>> print extract_text( |
3749 | - ... find_tag_by_id(user_browser.contents, 'can-expire')) |
3750 | + >>> print(extract_text( |
3751 | + ... find_tag_by_id(user_browser.contents, 'can-expire'))) |
3752 | This bug report will be marked for expiration in 59 days if no further |
3753 | activity occurs. |
3754 | (find out why) |
3755 | @@ -121,8 +121,8 @@ |
3756 | >>> logout() |
3757 | |
3758 | >>> user_browser.open('http://bugs.launchpad.dev/jokosher/+bug/11') |
3759 | - >>> print extract_text( |
3760 | - ... find_tag_by_id(user_browser.contents, 'can-expire')) |
3761 | + >>> print(extract_text( |
3762 | + ... find_tag_by_id(user_browser.contents, 'can-expire'))) |
3763 | This bug report was marked for expiration 1 days ago. |
3764 | (find out why) |
3765 | |
3766 | @@ -153,7 +153,7 @@ |
3767 | the bug they set to Incomplete previously. |
3768 | |
3769 | >>> expirable_bugs_link.click() |
3770 | - >>> print user_browser.title |
3771 | + >>> print(user_browser.title) |
3772 | Expirable bugs : Bugs : Jokosher |
3773 | |
3774 | >>> contents = find_main_content(user_browser.contents) |
3775 | @@ -171,7 +171,7 @@ |
3776 | >>> user_browser.getControl('Search', index=0).type |
3777 | Traceback (most recent call last): |
3778 | ... |
3779 | - LookupError: label 'Search' |
3780 | + LookupError: label u'Search' |
3781 | |
3782 | The 'Report a bug' link is also not present. |
3783 | |
3784 | @@ -201,7 +201,7 @@ |
3785 | >>> user_browser.getLink('Make Jokosher use autoaudiosink').click() |
3786 | >>> user_browser.getControl('Status').value = ['Confirmed'] |
3787 | >>> user_browser.getControl('Save Changes', index=0).click() |
3788 | - >>> print find_tag_by_id(user_browser.contents, 'can-expire') |
3789 | + >>> print(find_tag_by_id(user_browser.contents, 'can-expire')) |
3790 | None |
3791 | |
3792 | >>> user_browser.getLink('Bugs').click() |
3793 | @@ -231,14 +231,14 @@ |
3794 | ... 'http://bugs.launchpad.dev/debian/+source/mozilla-firefox/+bug/8') |
3795 | >>> user_browser.getControl('Status').value = ['Incomplete'] |
3796 | >>> user_browser.getControl('Save Changes', index=0).click() |
3797 | - >>> print find_tag_by_id(user_browser.contents, 'can-expire') |
3798 | + >>> print(find_tag_by_id(user_browser.contents, 'can-expire')) |
3799 | None |
3800 | |
3801 | If No Privileges Person hacks the URL to see a listing of Debian's |
3802 | expirable bugs they read that Debian does not use bug expiration. |
3803 | |
3804 | >>> user_browser.open('http://bugs.launchpad.dev/debian/+expirable-bugs') |
3805 | - >>> print extract_text(find_main_content(user_browser.contents).p) |
3806 | + >>> print(extract_text(find_main_content(user_browser.contents).p)) |
3807 | This project has not enabled bug expiration. No bugs can expire. |
3808 | Project administrator's may choose to enable bug expiration by |
3809 | updating the project's details. See Bugs/Expiry. |
3810 | @@ -273,7 +273,7 @@ |
3811 | |
3812 | >>> user_browser.open('http://bugs.launchpad.dev/jokosher') |
3813 | >>> user_browser.getControl('Search', index=0).click() |
3814 | - >>> print user_browser.url |
3815 | + >>> print(user_browser.url) |
3816 | http://bugs.launchpad.dev/jokosher/+bugs?...&field.status%3Alist=INCOMPLETE_WITH_RESPONSE&field.status%3Alist=INCOMPLETE_WITHOUT_RESPONSE... |
3817 | >>> ('<a href="http://bugs.launchpad.dev/jokosher/+bug/11" class="bugtitle">' in |
3818 | ... str(find_tag_by_id(user_browser.contents, 'bugs-table-listing'))) |
3819 | |
3820 | === modified file 'lib/lp/bugs/stories/bugs/xx-link-bug-to-branch.txt' |
3821 | --- lib/lp/bugs/stories/bugs/xx-link-bug-to-branch.txt 2010-12-21 19:28:29 +0000 |
3822 | +++ lib/lp/bugs/stories/bugs/xx-link-bug-to-branch.txt 2018-06-30 16:32:46 +0000 |
3823 | @@ -7,10 +7,10 @@ |
3824 | >>> user_browser.open( |
3825 | ... "http://bugs.launchpad.dev/firefox/+bug/1") |
3826 | >>> user_browser.getLink('Link a related branch').click() |
3827 | - >>> print user_browser.url |
3828 | + >>> print(user_browser.url) |
3829 | http://bugs.launchpad.dev/firefox/+bug/1/+addbranch |
3830 | - >>> print extract_text(find_tag_by_id( |
3831 | - ... user_browser.contents, 'maincontent')) |
3832 | + >>> print(extract_text(find_tag_by_id( |
3833 | + ... user_browser.contents, 'maincontent'))) |
3834 | Add a branch to bug #1... |
3835 | Linking a Bazaar branch to a bug allows you to notify others of |
3836 | work to fix this bug. |
3837 | @@ -26,9 +26,9 @@ |
3838 | This takes us back to the main page where this branch is now listed as |
3839 | a related branch. |
3840 | |
3841 | - >>> print user_browser.url |
3842 | + >>> print(user_browser.url) |
3843 | http://bugs.launchpad.dev/firefox/+bug/1 |
3844 | - >>> print extract_text(user_browser.contents) |
3845 | + >>> print(extract_text(user_browser.contents)) |
3846 | Bug #1... |
3847 | Successfully registered branch main for this bug. |
3848 | ... |
3849 | @@ -42,8 +42,8 @@ |
3850 | ... 'http://code.launchpad.dev/~name12/firefox/main/+bug/1/+delete') |
3851 | >>> link = user_browser.getLink(url=delete_branch_link_url) |
3852 | >>> link.click() |
3853 | - >>> print extract_text(find_tag_by_id( |
3854 | - ... user_browser.contents, 'maincontent')) |
3855 | + >>> print(extract_text(find_tag_by_id( |
3856 | + ... user_browser.contents, 'maincontent'))) |
3857 | Remove bug branch link... |
3858 | Are you sure you want to remove the link between Bug #1: Firefox does |
3859 | not support SVG and the branch lp://dev/~name12/firefox/main? |
3860 | |
3861 | === modified file 'lib/lp/bugs/stories/bugs/xx-malone-homepage.txt' |
3862 | --- lib/lp/bugs/stories/bugs/xx-malone-homepage.txt 2010-07-27 12:42:00 +0000 |
3863 | +++ lib/lp/bugs/stories/bugs/xx-malone-homepage.txt 2018-06-30 16:32:46 +0000 |
3864 | @@ -4,14 +4,14 @@ |
3865 | >>> browser.url |
3866 | 'http://bugs.launchpad.dev/' |
3867 | |
3868 | - >>> print browser.title |
3869 | + >>> print(browser.title) |
3870 | Launchpad Bugs |
3871 | |
3872 | There are a few related pages linked in a portlet: |
3873 | |
3874 | >>> related_pages = find_portlet(browser.contents, 'Related pages') |
3875 | >>> for link in related_pages.findAll('a'): |
3876 | - ... print "%s\n --> %s" % (extract_text(link), link.get('href')) |
3877 | + ... print("%s\n --> %s" % (extract_text(link), link.get('href'))) |
3878 | Bug trackers |
3879 | --> http://bugs.launchpad.dev/bugs/bugtrackers |
3880 | CVE tracker |
3881 | |
3882 | === modified file 'lib/lp/bugs/stories/bugs/xx-numbered-comments.txt' |
3883 | --- lib/lp/bugs/stories/bugs/xx-numbered-comments.txt 2012-12-11 05:41:50 +0000 |
3884 | +++ lib/lp/bugs/stories/bugs/xx-numbered-comments.txt 2018-06-30 16:32:46 +0000 |
3885 | @@ -14,10 +14,10 @@ |
3886 | ... person_node = comment.find( |
3887 | ... lambda node: 'person' in node.get('class', '')) |
3888 | ... comment_node = comment.find(None, 'comment-text') |
3889 | - ... print "%s: %s\n %s" % ( |
3890 | + ... print("%s: %s\n %s" % ( |
3891 | ... extract_text(number_node), |
3892 | ... extract_text(person_node), |
3893 | - ... extract_text(comment_node)[:50]) |
3894 | + ... extract_text(comment_node)[:50])) |
3895 | #1: Valentina Commissari (tsukimi) |
3896 | The solution to this is to make Jokosher use autoa |
3897 | #2: Diogo Matsubara (matsubara) |
3898 | |
3899 | === modified file 'lib/lp/bugs/stories/bugs/xx-portlets-bug-milestones.txt' |
3900 | --- lib/lp/bugs/stories/bugs/xx-portlets-bug-milestones.txt 2012-07-10 01:13:08 +0000 |
3901 | +++ lib/lp/bugs/stories/bugs/xx-portlets-bug-milestones.txt 2018-06-30 16:32:46 +0000 |
3902 | @@ -12,7 +12,7 @@ |
3903 | >>> anon_browser.open("http://bugs.launchpad.dev/firefox") |
3904 | >>> portlet = find_portlet( |
3905 | ... anon_browser.contents, "Milestone-targeted bugs") |
3906 | - >>> print portlet |
3907 | + >>> print(portlet) |
3908 | None |
3909 | |
3910 | To enable the portlet, a bugtask needs to have a milestone associated with it. |
3911 | @@ -22,7 +22,7 @@ |
3912 | >>> from zope.component import getUtility |
3913 | >>> from lp.bugs.interfaces.bugtask import IBugTaskSet |
3914 | >>> ff_bugtask = getUtility(IBugTaskSet).get(13) |
3915 | - >>> print ff_bugtask.bug.id |
3916 | + >>> print(ff_bugtask.bug.id) |
3917 | 4 |
3918 | |
3919 | >>> from lp.registry.interfaces.milestone import IMilestoneSet |
3920 | @@ -30,7 +30,7 @@ |
3921 | >>> firefox = getUtility(IProductSet).getByName('firefox') |
3922 | >>> ff_milestone = getUtility(IMilestoneSet).getByNameAndProduct( |
3923 | ... "1.0", firefox) |
3924 | - >>> print ff_milestone.name |
3925 | + >>> print(ff_milestone.name) |
3926 | 1.0 |
3927 | |
3928 | The bugtask milestone is set to the Firefox 1.0 milestone. |
3929 | @@ -44,7 +44,7 @@ |
3930 | >>> anon_browser.open("http://bugs.launchpad.dev/firefox") |
3931 | >>> portlet = find_portlet( |
3932 | ... anon_browser.contents, "Milestone-targeted bugs") |
3933 | - >>> print extract_text(portlet) |
3934 | + >>> print(extract_text(portlet)) |
3935 | Milestone-targeted bugs |
3936 | 1 |
3937 | 1.0 |
3938 | @@ -61,7 +61,7 @@ |
3939 | >>> anon_browser.open("http://bugs.launchpad.dev/debian/sarge/+bugs") |
3940 | >>> portlet = find_portlet( |
3941 | ... anon_browser.contents, "Milestone-targeted bugs") |
3942 | - >>> print extract_text(portlet) |
3943 | + >>> print(extract_text(portlet)) |
3944 | Milestone-targeted bugs |
3945 | 1 |
3946 | 3.1 |
3947 | |
3948 | === modified file 'lib/lp/bugs/stories/bugs/xx-portlets-bug-series.txt' |
3949 | --- lib/lp/bugs/stories/bugs/xx-portlets-bug-series.txt 2012-07-10 01:13:08 +0000 |
3950 | +++ lib/lp/bugs/stories/bugs/xx-portlets-bug-series.txt 2018-06-30 16:32:46 +0000 |
3951 | @@ -6,7 +6,7 @@ |
3952 | |
3953 | >>> anon_browser.open("http://bugs.launchpad.dev/debian/+bugs") |
3954 | >>> portlet = find_portlet(anon_browser.contents, "Series-targeted bugs") |
3955 | - >>> print portlet |
3956 | + >>> print(portlet) |
3957 | None |
3958 | |
3959 | Change debian to track bugs in Launchpad and the portlet becomes visible. |
3960 | @@ -16,7 +16,7 @@ |
3961 | |
3962 | >>> anon_browser.open("http://bugs.launchpad.dev/debian/+bugs") |
3963 | >>> portlet = find_portlet(anon_browser.contents, "Series-targeted bugs") |
3964 | - >>> print extract_text(portlet) |
3965 | + >>> print(extract_text(portlet)) |
3966 | Series-targeted bugs |
3967 | 1 |
3968 | sarge |
3969 | @@ -25,7 +25,7 @@ |
3970 | |
3971 | >>> anon_browser.open("http://bugs.launchpad.dev/debian/sarge/+bugs") |
3972 | >>> portlet = find_portlet(anon_browser.contents, "Series-targeted bugs") |
3973 | - >>> print extract_text(portlet) |
3974 | + >>> print(extract_text(portlet)) |
3975 | Series-targeted bugs |
3976 | 1 |
3977 | sarge |
3978 | @@ -34,14 +34,14 @@ |
3979 | |
3980 | >>> anon_browser.open("http://bugs.launchpad.dev/ubuntu/+bugs") |
3981 | >>> portlet = find_portlet(anon_browser.contents, "Series-targeted bugs") |
3982 | - >>> print extract_text(portlet) |
3983 | + >>> print(extract_text(portlet)) |
3984 | Series-targeted bugs |
3985 | 1 |
3986 | hoary |
3987 | 1 |
3988 | warty |
3989 | |
3990 | - >>> print anon_browser.getLink("hoary").url |
3991 | + >>> print(anon_browser.getLink("hoary").url) |
3992 | http://bugs.launchpad.dev/ubuntu/hoary/+bugs |
3993 | |
3994 | The same portlet is also available for project and project series |
3995 | @@ -49,14 +49,14 @@ |
3996 | |
3997 | >>> anon_browser.open("http://bugs.launchpad.dev/firefox/+bugs") |
3998 | >>> portlet = find_portlet(anon_browser.contents, "Series-targeted bugs") |
3999 | - >>> print extract_text(portlet) |
4000 | + >>> print(extract_text(portlet)) |
4001 | Series-targeted bugs |
4002 | 1 |
4003 | 1.0 |
4004 | |
4005 | >>> anon_browser.open("http://bugs.launchpad.dev/firefox/1.0/+bugs") |
4006 | >>> portlet = find_portlet(anon_browser.contents, "Series-targeted bugs") |
4007 | - >>> print extract_text(portlet) |
4008 | + >>> print(extract_text(portlet)) |
4009 | Series-targeted bugs |
4010 | 1 |
4011 | 1.0 |
4012 | |
4013 | === modified file 'lib/lp/bugs/stories/bugs/xx-product-bugs-page.txt' |
4014 | --- lib/lp/bugs/stories/bugs/xx-product-bugs-page.txt 2014-11-29 06:41:25 +0000 |
4015 | +++ lib/lp/bugs/stories/bugs/xx-product-bugs-page.txt 2018-06-30 16:32:46 +0000 |
4016 | @@ -61,7 +61,7 @@ |
4017 | >>> anon_browser.url |
4018 | 'http://.../+bugs?field.status_upstream=resolved_upstream' |
4019 | |
4020 | - >>> print find_main_content(anon_browser.contents) |
4021 | + >>> print(find_main_content(anon_browser.contents)) |
4022 | <... |
4023 | <p>There are currently no open bugs.</p> |
4024 | ... |
4025 | @@ -81,7 +81,7 @@ |
4026 | see which bugs will expire if they are not confirmed. |
4027 | |
4028 | >>> expirable_bugs_link.click() |
4029 | - >>> print anon_browser.title |
4030 | + >>> print(anon_browser.title) |
4031 | Expirable bugs : Bugs : Jokosher |
4032 | |
4033 | Product series may also have a link to expirable bugs. Jokosher's trunk |
4034 | @@ -90,7 +90,7 @@ |
4035 | >>> anon_browser.open('http://bugs.launchpad.dev/jokosher/trunk') |
4036 | >>> expirable_bugs_link = anon_browser.getLink('Incomplete bugs') |
4037 | >>> expirable_bugs_link.click() |
4038 | - >>> print anon_browser.title |
4039 | + >>> print(anon_browser.title) |
4040 | Expirable bugs : Series trunk : Bugs : Jokosher |
4041 | |
4042 | Thunderbird has not enabled bug expiration; the anonymous user |
4043 | @@ -112,7 +112,7 @@ |
4044 | >>> anon_browser.open('http://bugs.launchpad.dev/firefox') |
4045 | >>> tags_portlet = find_tag_by_id(anon_browser.contents, 'portlet-tags') |
4046 | >>> anon_browser.getLink(id='tags-content-link').click() |
4047 | - >>> print extract_text(anon_browser.contents) |
4048 | + >>> print(extract_text(anon_browser.contents)) |
4049 | Tags |
4050 | 1 |
4051 | layout-test |
4052 | |
4053 | === modified file 'lib/lp/bugs/stories/bugs/xx-project-bugs-page.txt' |
4054 | --- lib/lp/bugs/stories/bugs/xx-project-bugs-page.txt 2011-01-20 20:41:30 +0000 |
4055 | +++ lib/lp/bugs/stories/bugs/xx-project-bugs-page.txt 2018-06-30 16:32:46 +0000 |
4056 | @@ -4,5 +4,5 @@ |
4057 | for the ProjectGroup. |
4058 | |
4059 | >>> anon_browser.open('http://bugs.launchpad.dev/gnome') |
4060 | - >>> print anon_browser.title |
4061 | + >>> print(anon_browser.title) |
4062 | Bugs : GNOME |
4063 | |
4064 | === modified file 'lib/lp/bugs/stories/bugs/xx-remote-bug-comments.txt' |
4065 | --- lib/lp/bugs/stories/bugs/xx-remote-bug-comments.txt 2014-05-29 22:22:36 +0000 |
4066 | +++ lib/lp/bugs/stories/bugs/xx-remote-bug-comments.txt 2018-06-30 16:32:46 +0000 |
4067 | @@ -10,7 +10,7 @@ |
4068 | ... user_browser.contents, 'remoteBugComment', only_first=True) |
4069 | >>> details = remote_bug_comment.find( |
4070 | ... attrs={'class': 'boardCommentDetails'}) |
4071 | - >>> print extract_text(details) |
4072 | + >>> print(extract_text(details)) |
4073 | In |
4074 | Debian Bug tracker #308994, |
4075 | josh (jbuhl-nospam) |
4076 | @@ -21,7 +21,7 @@ |
4077 | Remote comments are decorated with the bug watch icon, to distinguish |
4078 | them from comments posted directly by Launchpad users. |
4079 | |
4080 | - >>> print details.find('img')['src'] |
4081 | + >>> print(details.find('img')['src']) |
4082 | /@@/bug-remote |
4083 | |
4084 | Since it's possible to reply to imported comments and have them |
4085 | @@ -31,14 +31,14 @@ |
4086 | |
4087 | >>> activity = remote_bug_comment.find( |
4088 | ... attrs={'class': 'boardCommentActivity'}) |
4089 | - >>> print extract_text(activity) |
4090 | + >>> print(extract_text(activity)) |
4091 | Reply on Debian Bug tracker... |
4092 | |
4093 | When javascript is not available, the link simply takes us to the |
4094 | individual comment page, where the inline form is displayed. |
4095 | |
4096 | >>> user_browser.getLink('Reply on Debian Bug tracker').click() |
4097 | - >>> print user_browser.url |
4098 | + >>> print(user_browser.url) |
4099 | http://bugs.launchpad.dev/redfish/+bug/15/comments/1 |
4100 | |
4101 | We enter a comment, and submit the form. |
4102 | @@ -51,7 +51,7 @@ |
4103 | |
4104 | >>> new_bug_comment = find_tags_by_class( |
4105 | ... user_browser.contents, 'remoteBugComment')[-1] |
4106 | - >>> print extract_text(new_bug_comment) |
4107 | + >>> print(extract_text(new_bug_comment)) |
4108 | In |
4109 | Debian Bug tracker #308994, |
4110 | ... |
4111 | @@ -64,7 +64,7 @@ |
4112 | to the remote bug tracker. |
4113 | |
4114 | >>> activity = new_bug_comment.find(attrs={'class': 'boardCommentActivity'}) |
4115 | - >>> print extract_text(activity.findAll('td')[1]) |
4116 | + >>> print(extract_text(activity.findAll('td')[1])) |
4117 | Awaiting synchronization |
4118 | |
4119 | When the comment is synchronized, it receives a remote comment id, and |
4120 | @@ -78,7 +78,7 @@ |
4121 | >>> login('foo.bar@canonical.com') |
4122 | >>> bug_15 = getUtility(IBugSet).get(15) |
4123 | >>> message = bug_15.messages[-1] |
4124 | - >>> print message.text_contents |
4125 | + >>> print(message.text_contents) |
4126 | A reply comment. |
4127 | >>> bug_message = getUtility(IBugMessageSet).getByBugAndMessage( |
4128 | ... bug_15, message) |
4129 | @@ -90,7 +90,7 @@ |
4130 | >>> user_browser.open('http://bugs.launchpad.dev/redfish/+bug/15') |
4131 | >>> last_bug_comment = find_tags_by_class( |
4132 | ... user_browser.contents, 'remoteBugComment')[-1] |
4133 | - >>> print extract_text(last_bug_comment) |
4134 | + >>> print(extract_text(last_bug_comment)) |
4135 | In |
4136 | Debian Bug tracker #308994, |
4137 | ... |
4138 | |
4139 | === modified file 'lib/lp/bugs/stories/bugs/xx-switch-to-malone.txt' |
4140 | --- lib/lp/bugs/stories/bugs/xx-switch-to-malone.txt 2011-09-20 01:33:04 +0000 |
4141 | +++ lib/lp/bugs/stories/bugs/xx-switch-to-malone.txt 2018-06-30 16:32:46 +0000 |
4142 | @@ -16,7 +16,7 @@ |
4143 | ... '/+source/evolution/+bug/7/+editstatus') |
4144 | >>> main = find_main_content(user_browser.contents) |
4145 | >>> read_only_icon = main.find('span', {'class': 'sprite read-only'}) |
4146 | - >>> print extract_text(read_only_icon.parent) |
4147 | + >>> print(extract_text(read_only_icon.parent)) |
4148 | Unknown |
4149 | |
4150 | If the project switches to use Launchpad as its bug tracker, the |
4151 | @@ -34,5 +34,5 @@ |
4152 | ... '/debian/+source/evolution/+bug/7/+editstatus') |
4153 | >>> main = find_main_content(user_browser.contents) |
4154 | >>> read_only_icon = main.find('span', {'class': 'sprite read-only'}) |
4155 | - >>> print extract_text(read_only_icon.parent) |
4156 | + >>> print(extract_text(read_only_icon.parent)) |
4157 | Unknown |
4158 | |
4159 | === modified file 'lib/lp/bugs/stories/bugs/xx-unique-ids-on-bug-page.txt' |
4160 | --- lib/lp/bugs/stories/bugs/xx-unique-ids-on-bug-page.txt 2015-07-21 09:04:01 +0000 |
4161 | +++ lib/lp/bugs/stories/bugs/xx-unique-ids-on-bug-page.txt 2018-06-30 16:32:46 +0000 |
4162 | @@ -12,7 +12,7 @@ |
4163 | >>> user_browser.getControl('Package') |
4164 | Traceback (most recent call last): |
4165 | ... |
4166 | - AmbiguityError: label 'Package' |
4167 | + AmbiguityError: label u'Package' |
4168 | |
4169 | Still, the ids of the fields are unique. |
4170 | |
4171 | |
4172 | === modified file 'lib/lp/bugs/stories/bugtask-management/xx-bug-importance-change.txt' |
4173 | --- lib/lp/bugs/stories/bugtask-management/xx-bug-importance-change.txt 2016-01-26 15:47:37 +0000 |
4174 | +++ lib/lp/bugs/stories/bugtask-management/xx-bug-importance-change.txt 2018-06-30 16:32:46 +0000 |
4175 | @@ -5,7 +5,7 @@ |
4176 | |
4177 | >>> admin_browser.open('http://bugs.launchpad.dev/bugs/10') |
4178 | >>> importance_control = admin_browser.getControl('Importance') |
4179 | - >>> print '\n'.join(importance_control.displayOptions) |
4180 | + >>> print('\n'.join(importance_control.displayOptions)) |
4181 | Undecided |
4182 | Critical |
4183 | High |
4184 | @@ -63,7 +63,7 @@ |
4185 | For a product owner. |
4186 | |
4187 | >>> login(ANONYMOUS) |
4188 | - >>> print firefox.owner.name |
4189 | + >>> print(firefox.owner.name) |
4190 | name12 |
4191 | |
4192 | >>> login("foo.bar@canonical.com") |
4193 | |
4194 | === modified file 'lib/lp/bugs/stories/bugtask-management/xx-bug-privileged-statuses.txt' |
4195 | --- lib/lp/bugs/stories/bugtask-management/xx-bug-privileged-statuses.txt 2016-01-26 15:47:37 +0000 |
4196 | +++ lib/lp/bugs/stories/bugtask-management/xx-bug-privileged-statuses.txt 2018-06-30 16:32:46 +0000 |
4197 | @@ -14,7 +14,7 @@ |
4198 | ... 'mozilla-firefox/+bug/1/+editstatus') |
4199 | |
4200 | >>> status_control = user_browser.getControl('Status') |
4201 | - >>> print status_control.displayValue |
4202 | + >>> print(status_control.displayValue) |
4203 | ['New'] |
4204 | |
4205 | An unprivileged user can confirm the bug: |
4206 | @@ -22,7 +22,7 @@ |
4207 | >>> status_control.displayValue = ['Confirmed'] |
4208 | >>> user_browser.getControl('Save Changes').click() |
4209 | |
4210 | - >>> print user_browser.url |
4211 | + >>> print(user_browser.url) |
4212 | http://bugs.launchpad.dev/ubuntu/+source/mozilla-firefox/+bug/1 |
4213 | >>> print_highlighted_bugtask(user_browser) |
4214 | mozilla-firefox (Ubuntu) ... Confirmed Medium Unassigned ... |
4215 | @@ -35,7 +35,7 @@ |
4216 | ... 'mozilla-firefox/+bug/1/+editstatus') |
4217 | |
4218 | >>> status_control = user_browser.getControl('Status') |
4219 | - >>> print status_control.displayValue |
4220 | + >>> print(status_control.displayValue) |
4221 | ['Confirmed'] |
4222 | |
4223 | >>> status_control.displayValue = ["Won't Fix"] |
4224 | @@ -57,7 +57,8 @@ |
4225 | ... 'test@canonical.com') |
4226 | >>> admin_browser.getControl('Change').click() |
4227 | |
4228 | - >>> print extract_text(find_tag_by_id(admin_browser.contents, 'bug-supervisor')) |
4229 | + >>> print(extract_text( |
4230 | + ... find_tag_by_id(admin_browser.contents, 'bug-supervisor'))) |
4231 | Bug supervisor: |
4232 | Sample Person |
4233 | |
4234 | @@ -71,13 +72,13 @@ |
4235 | ... 'mozilla-firefox/+bug/1/+editstatus') |
4236 | |
4237 | >>> status_control = bug_supervisor_browser.getControl('Status') |
4238 | - >>> print status_control.displayValue |
4239 | + >>> print(status_control.displayValue) |
4240 | ['Confirmed'] |
4241 | |
4242 | >>> status_control.displayValue = ["Won't Fix"] |
4243 | >>> bug_supervisor_browser.getControl('Save Changes').click() |
4244 | |
4245 | - >>> print bug_supervisor_browser.url |
4246 | + >>> print(bug_supervisor_browser.url) |
4247 | http://bugs.launchpad.dev/ubuntu/+source/mozilla-firefox/+bug/1 |
4248 | >>> print_highlighted_bugtask(bug_supervisor_browser) |
4249 | mozilla-firefox (Ubuntu) ... Won't Fix Medium Unassigned ... |
4250 | @@ -90,20 +91,20 @@ |
4251 | ... 'mozilla-firefox/+bug/1/+editstatus') |
4252 | |
4253 | >>> status_control = user_browser.getControl('Status') |
4254 | - >>> print status_control.displayValue |
4255 | + >>> print(status_control.displayValue) |
4256 | ["Won't Fix"] |
4257 | |
4258 | And a regular user can change other aspects of the bug: |
4259 | |
4260 | >>> package_control = user_browser.getControl( |
4261 | ... name='ubuntu_mozilla-firefox.target.package') |
4262 | - >>> print package_control.value |
4263 | + >>> print(package_control.value) |
4264 | mozilla-firefox |
4265 | |
4266 | >>> package_control.value = 'iceweasel' |
4267 | >>> user_browser.getControl('Save Changes').click() |
4268 | |
4269 | - >>> print bug_supervisor_browser.url |
4270 | + >>> print(bug_supervisor_browser.url) |
4271 | http://bugs.launchpad.dev/ubuntu/+source/mozilla-firefox/+bug/1 |
4272 | >>> print_highlighted_bugtask(bug_supervisor_browser) |
4273 | mozilla-firefox (Ubuntu) ... Won't Fix Medium Unassigned ... |
4274 | @@ -115,13 +116,13 @@ |
4275 | ... 'iceweasel/+bug/1/+editstatus') |
4276 | |
4277 | >>> status_control = bug_supervisor_browser.getControl('Status') |
4278 | - >>> print status_control.displayValue |
4279 | + >>> print(status_control.displayValue) |
4280 | ["Won't Fix"] |
4281 | |
4282 | >>> status_control.displayValue = ["Triaged"] |
4283 | >>> bug_supervisor_browser.getControl('Save Changes').click() |
4284 | |
4285 | - >>> print bug_supervisor_browser.url |
4286 | + >>> print(bug_supervisor_browser.url) |
4287 | http://bugs.launchpad.dev/ubuntu/+source/iceweasel/+bug/1 |
4288 | >>> print_highlighted_bugtask(bug_supervisor_browser) |
4289 | iceweasel (Ubuntu) ... Triaged Medium Unassigned ... |
4290 | |
4291 | === modified file 'lib/lp/bugs/stories/bugtask-management/xx-bugtask-edit-forms.txt' |
4292 | --- lib/lp/bugs/stories/bugtask-management/xx-bugtask-edit-forms.txt 2016-01-26 15:47:37 +0000 |
4293 | +++ lib/lp/bugs/stories/bugtask-management/xx-bugtask-edit-forms.txt 2018-06-30 16:32:46 +0000 |
4294 | @@ -12,33 +12,33 @@ |
4295 | respective bug task. |
4296 | |
4297 | >>> admin_browser.open('http://bugs.launchpad.dev/firefox/+bug/1') |
4298 | - >>> print extract_text( |
4299 | - ... find_tag_by_id(admin_browser.contents, 'affected-software')) |
4300 | + >>> print(extract_text( |
4301 | + ... find_tag_by_id(admin_browser.contents, 'affected-software'))) |
4302 | Affects Status Importance Assigned to... |
4303 | Mozilla Firefox... New Low Mark Shuttleworth... |
4304 | mozilla-firefox (Debian)... Confirmed Low debbugs #304014... |
4305 | mozilla-firefox (Ubuntu)... New Medium Unassigned |
4306 | ... |
4307 | |
4308 | - >>> print admin_browser.getLink('New', index=0).url |
4309 | + >>> print(admin_browser.getLink('New', index=0).url) |
4310 | http://bugs.launchpad.dev/firefox/+bug/1/+editstatus |
4311 | - >>> print admin_browser.getLink('Low', index=0).url |
4312 | + >>> print(admin_browser.getLink('Low', index=0).url) |
4313 | http://bugs.launchpad.dev/firefox/+bug/1/+editstatus |
4314 | |
4315 | - >>> print admin_browser.getLink('Confirmed').url |
4316 | + >>> print(admin_browser.getLink('Confirmed').url) |
4317 | Traceback (most recent call last): |
4318 | ... |
4319 | LinkNotFoundError |
4320 | |
4321 | - >>> print admin_browser.getLink('Low', index=1).url |
4322 | + >>> print(admin_browser.getLink('Low', index=1).url) |
4323 | http://bugs.launchpad.dev/debian/+source/mozilla-firefox/+bug/1/+editstatus |
4324 | - >>> print admin_browser.getLink('New', index=1).url |
4325 | + >>> print(admin_browser.getLink('New', index=1).url) |
4326 | http://bugs...dev/ubuntu/+source/mozilla-firefox/+bug/1/+editstatus |
4327 | - >>> print admin_browser.getLink('Medium').url |
4328 | + >>> print(admin_browser.getLink('Medium').url) |
4329 | http://bugs...dev/ubuntu/+source/mozilla-firefox/+bug/1/+editstatus |
4330 | |
4331 | >>> admin_browser.getLink('New').click() |
4332 | - >>> print extract_text(admin_browser.contents) |
4333 | + >>> print(extract_text(admin_browser.contents)) |
4334 | Edit status... |
4335 | ... |
4336 | Affecting: Mozilla Firefox |
4337 | |
4338 | === modified file 'lib/lp/bugs/stories/bugtask-management/xx-change-assignee.txt' |
4339 | --- lib/lp/bugs/stories/bugtask-management/xx-change-assignee.txt 2016-01-26 15:47:37 +0000 |
4340 | +++ lib/lp/bugs/stories/bugtask-management/xx-change-assignee.txt 2018-06-30 16:32:46 +0000 |
4341 | @@ -39,8 +39,8 @@ |
4342 | ... name="firefox.assignee", index=0) |
4343 | >>> assign_to_control.value = "cprov" |
4344 | >>> admin_browser.getControl("Save Changes", index=0).click() |
4345 | - >>> print extract_text( |
4346 | - ... first_tag_by_class(admin_browser.contents, 'warning message')) |
4347 | + >>> print(extract_text( |
4348 | + ... first_tag_by_class(admin_browser.contents, 'warning message'))) |
4349 | Celso Providelo |
4350 | did not previously have any assigned bugs in |
4351 | Mozilla Firefox. |
4352 | @@ -58,8 +58,8 @@ |
4353 | ... name="jokosher.assignee", index=0) |
4354 | >>> assign_to_control.value = "cprov" |
4355 | >>> admin_browser.getControl("Save Changes", index=0).click() |
4356 | - >>> print extract_text( |
4357 | - ... first_tag_by_class(admin_browser.contents, 'warning message')) |
4358 | + >>> print(extract_text( |
4359 | + ... first_tag_by_class(admin_browser.contents, 'warning message'))) |
4360 | Celso Providelo |
4361 | did not previously have any assigned bugs in Jokosher. |
4362 | If this bug was assigned by mistake, you may change the assignment. |
4363 | @@ -82,10 +82,10 @@ |
4364 | ... name="jokosher.assignee.option", index=0) |
4365 | >>> assignee_control.value = ["jokosher.assignee.assign_to_me"] |
4366 | >>> user_browser.getControl("Save Changes", index=0).click() |
4367 | - >>> print user_browser.url |
4368 | + >>> print(user_browser.url) |
4369 | http://bugs.launchpad.dev/jokosher/+bug/11 |
4370 | - >>> print first_tag_by_class( |
4371 | - ... user_browser.contents, 'warning message') |
4372 | + >>> print(first_tag_by_class( |
4373 | + ... user_browser.contents, 'warning message')) |
4374 | None |
4375 | |
4376 | |
4377 | @@ -120,11 +120,11 @@ |
4378 | Traceback (most recent call last): |
4379 | ... |
4380 | ItemNotFoundError: insufficient items with name |
4381 | - 'jokosher.assignee.assign_to' |
4382 | + u'jokosher.assignee.assign_to' |
4383 | >>> user_browser.getControl(name="jokosher.assignee", index=0) |
4384 | Traceback (most recent call last): |
4385 | ... |
4386 | - LookupError: name 'jokosher.assignee' |
4387 | + LookupError: name u'jokosher.assignee' |
4388 | |
4389 | Once no_priv is a member of a team, the option is shown. |
4390 | |
4391 | |
4392 | === modified file 'lib/lp/bugs/stories/bugtask-management/xx-change-milestone.txt' |
4393 | --- lib/lp/bugs/stories/bugtask-management/xx-change-milestone.txt 2016-01-26 15:47:37 +0000 |
4394 | +++ lib/lp/bugs/stories/bugtask-management/xx-change-milestone.txt 2018-06-30 16:32:46 +0000 |
4395 | @@ -14,7 +14,7 @@ |
4396 | use, but the bug is not yet targeted to that milestone. |
4397 | |
4398 | >>> table = find_tag_by_id(owner_browser.contents, 'affected-software') |
4399 | - >>> print extract_text(table) |
4400 | + >>> print(extract_text(table)) |
4401 | Affects Status Importance Assigned to Milestone |
4402 | ... Mozilla Firefox ... New Low Mark Shuttleworth |
4403 | ... |
4404 | @@ -32,7 +32,7 @@ |
4405 | >>> milestone_control.displayValue = ['Mozilla Firefox 1.0'] |
4406 | >>> owner_browser.getControl('Save Changes', index=0).click() |
4407 | >>> table = find_tag_by_id(owner_browser.contents, 'affected-software') |
4408 | - >>> print extract_text(table) |
4409 | + >>> print(extract_text(table)) |
4410 | Affects Status Importance Assigned to Milestone |
4411 | ... Mozilla Firefox ... New Low Mark Shuttleworth ... 1.0 |
4412 | ... |
4413 | @@ -84,7 +84,7 @@ |
4414 | |
4415 | >>> admin_browser.open('http://launchpad.dev/firefox/+bug/1') |
4416 | >>> table = find_tag_by_id(admin_browser.contents, 'affected-software') |
4417 | - >>> print extract_text(table) |
4418 | + >>> print(extract_text(table)) |
4419 | Affects Status Importance Assigned to Milestone |
4420 | ... Mozilla Firefox ... New Low Mark Shuttleworth ... 1.0 |
4421 | ... |
4422 | @@ -99,7 +99,7 @@ |
4423 | >>> milestone_control.displayValue = ['Ubuntu 5.04.rc1'] |
4424 | >>> admin_browser.getControl('Save Changes', index=3).click() |
4425 | >>> table = find_tag_by_id(admin_browser.contents, 'affected-software') |
4426 | - >>> print extract_text(table) |
4427 | + >>> print(extract_text(table)) |
4428 | Affects Status Importance Assigned to Milestone |
4429 | ... Mozilla Firefox ... New Low Mark Shuttleworth ... 1.0 |
4430 | ... |
4431 | |
4432 | === modified file 'lib/lp/bugs/stories/bugtask-management/xx-edit-email-address-bugtask.txt' |
4433 | --- lib/lp/bugs/stories/bugtask-management/xx-edit-email-address-bugtask.txt 2016-01-26 15:47:37 +0000 |
4434 | +++ lib/lp/bugs/stories/bugtask-management/xx-edit-email-address-bugtask.txt 2018-06-30 16:32:46 +0000 |
4435 | @@ -31,7 +31,7 @@ |
4436 | |
4437 | >>> def print_widget_visibility(user, url): |
4438 | ... status, importance = widget_visibility(user, url) |
4439 | - ... print 'Status: %s\nImportance: %s' % (status, importance) |
4440 | + ... print('Status: %s\nImportance: %s' % (status, importance)) |
4441 | |
4442 | |
4443 | == "Normal" (not Email Address) bugtasks == |
4444 | |
4445 | === modified file 'lib/lp/bugs/stories/bugtask-management/xx-subscribe-while-editing.txt' |
4446 | --- lib/lp/bugs/stories/bugtask-management/xx-subscribe-while-editing.txt 2015-07-21 09:04:01 +0000 |
4447 | +++ lib/lp/bugs/stories/bugtask-management/xx-subscribe-while-editing.txt 2018-06-30 16:32:46 +0000 |
4448 | @@ -12,7 +12,7 @@ |
4449 | |
4450 | >>> browser.getControl("Save Changes").click() |
4451 | |
4452 | - >>> print browser.contents |
4453 | + >>> print(browser.contents) |
4454 | <!DOCTYPE... |
4455 | ...You have subscribed to this bug report... |
4456 | |
4457 | |
4458 | === modified file 'lib/lp/bugs/stories/bugtask-management/xx-view-editable-bug-task.txt' |
4459 | --- lib/lp/bugs/stories/bugtask-management/xx-view-editable-bug-task.txt 2012-10-03 04:52:37 +0000 |
4460 | +++ lib/lp/bugs/stories/bugtask-management/xx-view-editable-bug-task.txt 2018-06-30 16:32:46 +0000 |
4461 | @@ -31,5 +31,5 @@ |
4462 | |
4463 | >>> browser = setupBrowser(auth="Basic test@canonical.com:test") |
4464 | >>> browser.open("http://launchpad.dev/firefox/+bug/6/+editstatus") |
4465 | - >>> print browser.title |
4466 | + >>> print(browser.title) |
4467 | Edit status ... |
4468 | |
4469 | === modified file 'lib/lp/bugs/stories/bugtask-searches/xx-advanced-people-filters.txt' |
4470 | --- lib/lp/bugs/stories/bugtask-searches/xx-advanced-people-filters.txt 2014-11-29 06:41:25 +0000 |
4471 | +++ lib/lp/bugs/stories/bugtask-searches/xx-advanced-people-filters.txt 2018-06-30 16:32:46 +0000 |
4472 | @@ -16,10 +16,10 @@ |
4473 | |
4474 | >>> browser.open('http://launchpad.dev/firefox/+bugs?advanced=1') |
4475 | >>> assignee_widget = find_tag_by_id(browser.contents, 'field.assignee') |
4476 | - >>> print assignee_widget['onkeypress'] |
4477 | + >>> print(assignee_widget['onkeypress']) |
4478 | selectWidget('assignee_option', event) |
4479 | |
4480 | - >>> print find_tag_by_id(browser.contents, 'assignee_option') |
4481 | + >>> print(find_tag_by_id(browser.contents, 'assignee_option')) |
4482 | <input...type="radio"...> |
4483 | |
4484 | |
4485 | @@ -120,7 +120,7 @@ |
4486 | >>> anon_browser.getControl('Commenter').value = 'non-existent' |
4487 | >>> anon_browser.getControl('Search', index=0).click() |
4488 | >>> for message in find_tags_by_class(anon_browser.contents, 'message'): |
4489 | - ... print message.renderContents() |
4490 | + ... print(message.renderContents()) |
4491 | There's no person with the name or email address 'non-existent'. |
4492 | |
4493 | Entering an existing person shows all bugs that person has commented on. |
4494 | @@ -177,7 +177,7 @@ |
4495 | >>> anon_browser.getControl('Subscriber').value = 'non-existent' |
4496 | >>> anon_browser.getControl('Search', index=0).click() |
4497 | >>> for message in find_tags_by_class(anon_browser.contents, 'message'): |
4498 | - ... print message.renderContents() |
4499 | + ... print(message.renderContents()) |
4500 | There's no person with the name or email address 'non-existent'. |
4501 | |
4502 | Entering an existing person shows all bugs for packages or products that |
4503 | @@ -187,7 +187,7 @@ |
4504 | >>> subscriber = 'no-priv@canonical.com' |
4505 | >>> anon_browser.getControl('Subscriber').value = subscriber |
4506 | >>> anon_browser.getControl('Search', index=0).click() |
4507 | - >>> print extract_text(find_main_content(anon_browser.contents)) |
4508 | + >>> print(extract_text(find_main_content(anon_browser.contents))) |
4509 | Advanced search |
4510 | ... |
4511 | No results for search |
4512 | @@ -199,7 +199,7 @@ |
4513 | >>> browser = setupBrowser(auth='Basic test@canonical.com:test') |
4514 | >>> browser.open('http://bugs.launchpad.dev/firefox/') |
4515 | >>> browser.getLink('Report a bug').click() |
4516 | - >>> print extract_text(find_main_content(browser.contents)) |
4517 | + >>> print(extract_text(find_main_content(browser.contents))) |
4518 | Report a bug... |
4519 | |
4520 | >>> report_bug_url = browser.url |
4521 | @@ -228,7 +228,7 @@ |
4522 | |
4523 | >>> browser.open(bug_1_url) |
4524 | >>> browser.getLink('Subscribe someone else').click() |
4525 | - >>> print extract_text(find_main_content(browser.contents)) |
4526 | + >>> print(extract_text(find_main_content(browser.contents))) |
4527 | Subscribe someone else to bug #... |
4528 | |
4529 | >>> browser.getControl('Person').value = subscriber |
4530 | @@ -244,14 +244,14 @@ |
4531 | >>> anon_browser.getControl('Search', index=0).click() |
4532 | >>> from lp.bugs.tests.bug import extract_bugtasks |
4533 | >>> for bugtask in extract_bugtasks(anon_browser.contents): |
4534 | - ... print 'Task:' + bugtask |
4535 | + ... print('Task:' + bugtask) |
4536 | Task:...Test Bug 1...Undecided...New |
4537 | |
4538 | Next we'll subscribe our user to the second bug we've just registered: |
4539 | |
4540 | >>> browser.open(bug_2_url) |
4541 | >>> browser.getLink('Subscribe someone else').click() |
4542 | - >>> print extract_text(find_main_content(browser.contents)) |
4543 | + >>> print(extract_text(find_main_content(browser.contents))) |
4544 | Subscribe someone else to bug #... |
4545 | |
4546 | >>> browser.getControl('Person').value = subscriber |
4547 | @@ -266,7 +266,7 @@ |
4548 | >>> anon_browser.getControl('Subscriber').value = subscriber |
4549 | >>> anon_browser.getControl('Search', index=0).click() |
4550 | >>> for bugtask in extract_bugtasks(anon_browser.contents): |
4551 | - ... print 'Task:' + bugtask |
4552 | + ... print('Task:' + bugtask) |
4553 | Task:...Test Bug 1...Undecided...New |
4554 | Task:...Test Bug 2...Undecided...New |
4555 | |
4556 | |
4557 | === modified file 'lib/lp/bugs/stories/bugtask-searches/xx-distribution-statistics-portlet.txt' |
4558 | --- lib/lp/bugs/stories/bugtask-searches/xx-distribution-statistics-portlet.txt 2010-10-05 22:04:38 +0000 |
4559 | +++ lib/lp/bugs/stories/bugtask-searches/xx-distribution-statistics-portlet.txt 2018-06-30 16:32:46 +0000 |
4560 | @@ -11,45 +11,45 @@ |
4561 | >>> from lp.testing.service_usage_helpers import set_service_usage |
4562 | >>> set_service_usage('debian', bug_tracking_usage='LAUNCHPAD') |
4563 | |
4564 | - >>> print http(r""" |
4565 | + >>> print(http(br""" |
4566 | ... GET /debian/+bugs?field.status%3Alist=New&field.status%3Alist=Confirmed&field.importance%3Alist=Critical&search=Search HTTP/1.1 |
4567 | ... Authorization: Basic dGVzdEBjYW5vbmljYWwuY29tOnRlc3Q= |
4568 | - ... """) |
4569 | + ... """)) |
4570 | HTTP/1.1 200 Ok |
4571 | ...No results for search... |
4572 | |
4573 | Viewing bugs "assigned to me", as Sample Person: |
4574 | |
4575 | - >>> print http(r""" |
4576 | + >>> print(http(br""" |
4577 | ... GET /debian/+bugs?field.status%3Alist=New&field.status%3Alist=Confirmed&field.assignee=name12&search=Search HTTP/1.1 |
4578 | ... Authorization: Basic dGVzdEBjYW5vbmljYWwuY29tOnRlc3Q= |
4579 | - ... """) |
4580 | + ... """)) |
4581 | HTTP/1.1 200 Ok |
4582 | ...1 result... |
4583 | |
4584 | Viewing untriaged bugs as Sample Person: |
4585 | |
4586 | - >>> print http(r""" |
4587 | + >>> print(http(br""" |
4588 | ... GET /debian/+bugs?field.status%3Alist=New&search=Search HTTP/1.1 |
4589 | ... Authorization: Basic dGVzdEBjYW5vbmljYWwuY29tOnRlc3Q= |
4590 | - ... """) |
4591 | + ... """)) |
4592 | HTTP/1.1 200 Ok |
4593 | ...1 result... |
4594 | |
4595 | Viewing unassigned bugs as Sample Person: |
4596 | |
4597 | - >>> print http(r""" |
4598 | + >>> print(http(br""" |
4599 | ... GET /debian/+bugs?field.status%3Alist=New&field.status%3Alist=Confirmed&field.status-empty-marker=1&field.importance-empty-marker=1&field.assignee=&assignee_option=none&search=Search HTTP/1.1 |
4600 | ... Authorization: Basic dGVzdEBjYW5vbmljYWwuY29tOnRlc3Q= |
4601 | - ... """) |
4602 | + ... """)) |
4603 | HTTP/1.1 200 Ok |
4604 | ...2 results... |
4605 | |
4606 | Viewing open reported bugs as Sample Person: |
4607 | |
4608 | - >>> print http(r""" |
4609 | + >>> print(http(br""" |
4610 | ... GET /debian/+bugs?search=Search HTTP/1.1 |
4611 | ... Authorization: Basic dGVzdEBjYW5vbmljYWwuY29tOnRlc3Q= |
4612 | - ... """) |
4613 | + ... """)) |
4614 | HTTP/1.1 200 Ok |
4615 | ...3 results... |
4616 | |
4617 | === modified file 'lib/lp/bugs/stories/bugtask-searches/xx-listing-basics.txt' |
4618 | --- lib/lp/bugs/stories/bugtask-searches/xx-listing-basics.txt 2017-10-23 00:16:39 +0000 |
4619 | +++ lib/lp/bugs/stories/bugtask-searches/xx-listing-basics.txt 2018-06-30 16:32:46 +0000 |
4620 | @@ -183,7 +183,7 @@ |
4621 | instead of displaying an empty table. |
4622 | |
4623 | >>> user_browser.open("http://launchpad.dev/firefox/+bugs?field.searchtext=fdsadsf&search=Search&advanced=&milestone=1&status=10&status=20&assignee=all") |
4624 | - >>> print user_browser.contents |
4625 | + >>> print(user_browser.contents) |
4626 | <... |
4627 | ...No results for search... |
4628 | ... |
4629 | @@ -193,7 +193,7 @@ |
4630 | |
4631 | >>> set_service_usage('iso-codes', bug_tracking_usage='LAUNCHPAD') |
4632 | >>> user_browser.open("http://launchpad.dev/iso-codes/+bugs") |
4633 | - >>> print user_browser.contents |
4634 | + >>> print(user_browser.contents) |
4635 | <... |
4636 | ...There are currently no open bugs... |
4637 | ... |
4638 | @@ -209,7 +209,7 @@ |
4639 | ... badge_cell = row.find(None, {'class': 'bug-related-icons'}) |
4640 | ... spans = badge_cell.findAll('span') |
4641 | ... for span in spans: |
4642 | - ... print " Badge:", span.get('alt') |
4643 | + ... print(" Badge:", span.get('alt')) |
4644 | |
4645 | For instance, these are the badges on the firefox bug listing: |
4646 | |
4647 | @@ -225,7 +225,7 @@ |
4648 | >>> browser.open( |
4649 | ... 'http://bugs.launchpad.dev/debian/sarge/+source/mozilla-firefox') |
4650 | >>> milestone = find_tags_by_class(browser.contents, 'sprite milestone') |
4651 | - >>> print milestone[0] |
4652 | + >>> print(milestone[0]) |
4653 | <a href="http://launchpad.dev/debian/+milestone/3.1" alt="milestone 3.1" |
4654 | title="Linked to milestone 3.1" class="sprite milestone"></a> |
4655 | |
4656 | |
4657 | === modified file 'lib/lp/bugs/stories/bugtask-searches/xx-old-urls-still-work.txt' |
4658 | --- lib/lp/bugs/stories/bugtask-searches/xx-old-urls-still-work.txt 2012-10-02 06:36:44 +0000 |
4659 | +++ lib/lp/bugs/stories/bugtask-searches/xx-old-urls-still-work.txt 2018-06-30 16:32:46 +0000 |
4660 | @@ -28,14 +28,14 @@ |
4661 | ... query_string_after, keep_blank_values=True) |
4662 | ... for term_before, term_after in zip(query_before, query_after): |
4663 | ... if term_before != term_after: |
4664 | - ... print '%s --> %s' % ( |
4665 | + ... print('%s --> %s' % ( |
4666 | ... '='.join(term_before), |
4667 | - ... '='.join(term_after)) |
4668 | + ... '='.join(term_after))) |
4669 | |
4670 | >>> from lazr.uri import URI |
4671 | >>> uri = URI(anon_browser.url) |
4672 | |
4673 | - >>> print uri.path |
4674 | + >>> print(uri.path) |
4675 | /ubuntu/+bugs |
4676 | |
4677 | >>> print_query_changes(query, uri.query) |
4678 | @@ -63,7 +63,7 @@ |
4679 | >>> anon_browser.open(url) |
4680 | |
4681 | >>> uri = URI(anon_browser.url) |
4682 | - >>> print uri.path |
4683 | + >>> print(uri.path) |
4684 | /bugs/+bugs |
4685 | |
4686 | >>> print_query_changes(query, uri.query) |
4687 | @@ -95,7 +95,7 @@ |
4688 | >>> anon_browser.open(url) |
4689 | |
4690 | >>> uri = URI(anon_browser.url) |
4691 | - >>> print uri.path |
4692 | + >>> print(uri.path) |
4693 | /~mark/+assignedbugs |
4694 | |
4695 | >>> print_query_changes(query, uri.query) |
4696 | @@ -112,7 +112,7 @@ |
4697 | >>> anon_browser.open(url) |
4698 | |
4699 | >>> uri = URI(anon_browser.url) |
4700 | - >>> print uri.path |
4701 | + >>> print(uri.path) |
4702 | /~mark/+reportedbugs |
4703 | |
4704 | >>> print_query_changes(query, uri.query) |
4705 | @@ -130,7 +130,7 @@ |
4706 | >>> anon_browser.open(url) |
4707 | |
4708 | >>> uri = URI(anon_browser.url) |
4709 | - >>> print uri.path |
4710 | + >>> print(uri.path) |
4711 | /~mark/+subscribedbugs |
4712 | |
4713 | >>> print_query_changes(query, uri.query) |
4714 | |
4715 | === modified file 'lib/lp/bugs/stories/bugtask-searches/xx-person-bugs.txt' |
4716 | --- lib/lp/bugs/stories/bugtask-searches/xx-person-bugs.txt 2012-02-22 22:17:46 +0000 |
4717 | +++ lib/lp/bugs/stories/bugtask-searches/xx-person-bugs.txt 2018-06-30 16:32:46 +0000 |
4718 | @@ -6,10 +6,10 @@ |
4719 | |
4720 | >>> anon_browser.open('http://launchpad.dev/~name12') |
4721 | >>> anon_browser.getLink('Bugs').click() |
4722 | - >>> print anon_browser.title |
4723 | + >>> print(anon_browser.title) |
4724 | Bugs : Sample Person |
4725 | |
4726 | - >>> print anon_browser.url |
4727 | + >>> print(anon_browser.url) |
4728 | http://bugs.launchpad.dev/~name12 |
4729 | |
4730 | Note that we may see each bug more than once in case it's reported |
4731 | @@ -48,7 +48,7 @@ |
4732 | virtual host: |
4733 | |
4734 | >>> anon_browser.open('http://bugs.launchpad.dev/~name12') |
4735 | - >>> print anon_browser.title |
4736 | + >>> print(anon_browser.title) |
4737 | Bugs : Sample Person |
4738 | |
4739 | |
4740 | @@ -63,10 +63,10 @@ |
4741 | ............. |
4742 | |
4743 | >>> anon_browser.getLink('Assigned bugs').click() |
4744 | - >>> print anon_browser.title |
4745 | + >>> print(anon_browser.title) |
4746 | Assigned bugs : Bugs : Sample Person |
4747 | |
4748 | - >>> print anon_browser.url |
4749 | + >>> print(anon_browser.url) |
4750 | http://bugs.launchpad.dev/~name12/+assignedbugs |
4751 | |
4752 | >>> print_bugtasks(anon_browser.contents) |
4753 | @@ -82,10 +82,10 @@ |
4754 | .............. |
4755 | |
4756 | >>> anon_browser.getLink('Commented bugs').click() |
4757 | - >>> print anon_browser.title |
4758 | + >>> print(anon_browser.title) |
4759 | Commented bugs : Bugs : Sample Person |
4760 | |
4761 | - >>> print anon_browser.url |
4762 | + >>> print(anon_browser.url) |
4763 | http://bugs.launchpad.dev/~name12/+commentedbugs |
4764 | |
4765 | No Privileges Person has commented on two bugs, which will be returned |
4766 | @@ -105,10 +105,10 @@ |
4767 | ............. |
4768 | |
4769 | >>> anon_browser.getLink('Reported bugs').click() |
4770 | - >>> print anon_browser.title |
4771 | + >>> print(anon_browser.title) |
4772 | Reported bugs : Bugs : Sample Person |
4773 | |
4774 | - >>> print anon_browser.url |
4775 | + >>> print(anon_browser.url) |
4776 | http://bugs.launchpad.dev/~name12/+reportedbugs |
4777 | |
4778 | >>> print_bugtasks(anon_browser.contents) |
4779 | @@ -136,10 +136,10 @@ |
4780 | ............... |
4781 | |
4782 | >>> anon_browser.getLink('Subscribed bugs').click() |
4783 | - >>> print anon_browser.title |
4784 | + >>> print(anon_browser.title) |
4785 | Subscribed bugs : Bugs : Sample Person |
4786 | |
4787 | - >>> print anon_browser.url |
4788 | + >>> print(anon_browser.url) |
4789 | http://bugs.launchpad.dev/~name12/+subscribedbugs |
4790 | |
4791 | >>> print_bugtasks(anon_browser.contents) |
4792 | @@ -164,25 +164,25 @@ |
4793 | all the menu links point to the bugs site. |
4794 | |
4795 | >>> anon_browser.open('http://launchpad.dev/~name12/+assignedbugs') |
4796 | - >>> print anon_browser.getLink('Commented bugs').url |
4797 | + >>> print(anon_browser.getLink('Commented bugs').url) |
4798 | http://bugs.launchpad.dev/~name12/+commentedbugs |
4799 | |
4800 | - >>> print anon_browser.getLink('Reported bugs').url |
4801 | + >>> print(anon_browser.getLink('Reported bugs').url) |
4802 | http://bugs.launchpad.dev/~name12/+reportedbugs |
4803 | |
4804 | - >>> print anon_browser.getLink('Subscribed bugs').url |
4805 | + >>> print(anon_browser.getLink('Subscribed bugs').url) |
4806 | http://bugs.launchpad.dev/~name12/+subscribedbugs |
4807 | |
4808 | - >>> print anon_browser.getLink('All related bugs').url |
4809 | + >>> print(anon_browser.getLink('All related bugs').url) |
4810 | http://bugs.launchpad.dev/~name12 |
4811 | |
4812 | - >>> print anon_browser.getLink('Subscribed packages').url |
4813 | + >>> print(anon_browser.getLink('Subscribed packages').url) |
4814 | http://bugs.launchpad.dev/~name12/+packagebugs |
4815 | |
4816 | >>> anon_browser.open('http://launchpad.dev/~name12/+commentedbugs') |
4817 | - >>> print anon_browser.getLink('Assigned bugs').url |
4818 | + >>> print(anon_browser.getLink('Assigned bugs').url) |
4819 | http://bugs.launchpad.dev/~name12/+assignedbugs |
4820 | |
4821 | - >>> print anon_browser.getLink('Affecting bugs').url |
4822 | + >>> print(anon_browser.getLink('Affecting bugs').url) |
4823 | http://bugs.launchpad.dev/~name12/+affectingbugs |
4824 | |
4825 | |
4826 | === modified file 'lib/lp/bugs/stories/bugtask-searches/xx-unexpected-form-data.txt' |
4827 | --- lib/lp/bugs/stories/bugtask-searches/xx-unexpected-form-data.txt 2009-06-12 16:36:02 +0000 |
4828 | +++ lib/lp/bugs/stories/bugtask-searches/xx-unexpected-form-data.txt 2018-06-30 16:32:46 +0000 |
4829 | @@ -24,7 +24,7 @@ |
4830 | When a UnexpectedFormData is raised, we display a custom error page to the |
4831 | user. |
4832 | |
4833 | - >>> output = str(http(r""" |
4834 | + >>> output = str(http(br""" |
4835 | ... GET /ubuntu/+bugs?search=Search&field.status=Fred HTTP/1.1 |
4836 | ... """)) |
4837 | >>> 'HTTP/1.1 500 Internal Server Error' in output |
4838 | |
4839 | === modified file 'lib/lp/bugs/stories/bugtracker/bugtrackers-index.txt' |
4840 | --- lib/lp/bugs/stories/bugtracker/bugtrackers-index.txt 2012-12-11 05:41:50 +0000 |
4841 | +++ lib/lp/bugs/stories/bugtracker/bugtrackers-index.txt 2018-06-30 16:32:46 +0000 |
4842 | @@ -5,7 +5,7 @@ |
4843 | page, with the addition of a breadcrumb itself. |
4844 | |
4845 | >>> user_browser.open('http://launchpad.dev/bugs/bugtrackers') |
4846 | - >>> print user_browser.title |
4847 | + >>> print(user_browser.title) |
4848 | Bug trackers registered in Launchpad |
4849 | |
4850 | The page presents a table with all bugtrackers currently registered: |
4851 | @@ -14,14 +14,14 @@ |
4852 | ... table = find_tag_by_id(browser.contents, 'trackers') |
4853 | ... for row in table.tbody.findAll('tr'): |
4854 | ... title, location, linked, type, watches = row.findAll('td') |
4855 | - ... print '------------------------' |
4856 | - ... print '\n'.join([ |
4857 | + ... print('------------------------') |
4858 | + ... print('\n'.join([ |
4859 | ... extract_text(title), |
4860 | ... extract_text(location), |
4861 | ... ' --> %s' % (location.a and location.a.get('href')), |
4862 | ... ' '.join(extract_text(linked).split()), |
4863 | ... extract_text(type), |
4864 | - ... extract_text(watches)]) |
4865 | + ... extract_text(watches)])) |
4866 | |
4867 | >>> print_tracker_table(user_browser) |
4868 | ------------------------ |
4869 | @@ -76,7 +76,7 @@ |
4870 | >>> user_browser.getLink("Debian Bug tracker").click() |
4871 | >>> nav = find_tags_by_class(user_browser.contents, |
4872 | ... 'batch-navigation-index') |
4873 | - >>> print extract_text(nav[0]) |
4874 | + >>> print(extract_text(nav[0])) |
4875 | 1 → 5 of 5 results |
4876 | |
4877 | The listing also displays projects and projects linked to bug trackers. |
4878 | |
4879 | === modified file 'lib/lp/bugs/stories/bugtracker/xx-bugtracker-remote-bug.txt' |
4880 | --- lib/lp/bugs/stories/bugtracker/xx-bugtracker-remote-bug.txt 2012-07-17 14:29:17 +0000 |
4881 | +++ lib/lp/bugs/stories/bugtracker/xx-bugtracker-remote-bug.txt 2018-06-30 16:32:46 +0000 |
4882 | @@ -24,7 +24,7 @@ |
4883 | * Answers - http://answers.launchpad.dev/ |
4884 | Main heading: Remote Bug #42 in The Mozilla.org Bug Tracker |
4885 | |
4886 | - >>> print extract_text(find_tag_by_id(browser.contents, 'watchedbugs')) |
4887 | + >>> print(extract_text(find_tag_by_id(browser.contents, 'watchedbugs'))) |
4888 | Bug #1: Firefox does not support SVG |
4889 | Bug #2: Blackhole Trash folder |
4890 | |
4891 | @@ -32,7 +32,7 @@ |
4892 | the list page and redirect the user directly to that bug's page: |
4893 | |
4894 | >>> browser.open('http://launchpad.dev/bugs/bugtrackers/mozilla.org/2000') |
4895 | - >>> print browser.url |
4896 | + >>> print(browser.url) |
4897 | http://bugs.launchpad.dev/firefox/+bug/1 |
4898 | |
4899 | If there are no bug watches for a particular remote bug, then a Not |
4900 | @@ -77,14 +77,14 @@ |
4901 | * Answers - http://answers.launchpad.dev/ |
4902 | Main heading: Remote Bug #42 in The Mozilla.org Bug Tracker |
4903 | |
4904 | - >>> print extract_text(find_tag_by_id(anon_browser.contents, 'watchedbugs')) |
4905 | + >>> print(extract_text(find_tag_by_id(anon_browser.contents, 'watchedbugs'))) |
4906 | Bug #1: (Private) |
4907 | Bug #2: Blackhole Trash folder |
4908 | |
4909 | The bug title is still provided if the user can view the private bug: |
4910 | |
4911 | >>> browser.open('http://launchpad.dev/bugs/bugtrackers/mozilla.org/42') |
4912 | - >>> print extract_text(find_tag_by_id(browser.contents, 'watchedbugs')) |
4913 | + >>> print(extract_text(find_tag_by_id(browser.contents, 'watchedbugs'))) |
4914 | Bug #1: Firefox does not support SVG |
4915 | Bug #2: Blackhole Trash folder |
4916 | |
4917 | |
4918 | === modified file 'lib/lp/bugs/stories/bugtracker/xx-bugtracker.txt' |
4919 | --- lib/lp/bugs/stories/bugtracker/xx-bugtracker.txt 2016-07-04 17:11:29 +0000 |
4920 | +++ lib/lp/bugs/stories/bugtracker/xx-bugtracker.txt 2018-06-30 16:32:46 +0000 |
4921 | @@ -15,7 +15,7 @@ |
4922 | >>> user_browser.url |
4923 | 'http://bugs.launchpad.dev/bugs/bugtrackers/+newbugtracker' |
4924 | |
4925 | - >>> print user_browser.title |
4926 | + >>> print(user_browser.title) |
4927 | Register an external bug tracker... |
4928 | |
4929 | In case the user gets cold feet, there is always a cancel link that |
4930 | @@ -30,7 +30,7 @@ |
4931 | requires manual set up of a bug archive mirror. |
4932 | |
4933 | >>> for control in user_browser.getControl('Bug Tracker Type').controls: |
4934 | - ... print control.optionValue |
4935 | + ... print(control.optionValue) |
4936 | Bugzilla |
4937 | Roundup |
4938 | Trac |
4939 | @@ -60,7 +60,7 @@ |
4940 | 'http://bugs.launchpad.dev/bugs/bugtrackers/+newbugtracker' |
4941 | |
4942 | >>> for message in find_tags_by_class(user_browser.contents, 'message'): |
4943 | - ... print extract_text(message) |
4944 | + ... print(extract_text(message)) |
4945 | There is 1 error. |
4946 | Invalid name 'testmantis!'. Names must be at least two characters ... |
4947 | |
4948 | @@ -76,7 +76,7 @@ |
4949 | 'http://bugs.launchpad.dev/bugs/bugtrackers/+newbugtracker' |
4950 | |
4951 | >>> for message in find_tags_by_class(user_browser.contents, 'message'): |
4952 | - ... print extract_text(message) |
4953 | + ... print(extract_text(message)) |
4954 | There is 1 error. |
4955 | http://bugzilla.mozilla.org/ is already registered in Launchpad |
4956 | as "The Mozilla.org Bug Tracker" (mozilla.org). |
4957 | @@ -103,7 +103,7 @@ |
4958 | 'http://bugs.launchpad.dev/bugs/bugtrackers/+newbugtracker' |
4959 | |
4960 | >>> for message in find_tags_by_class(user_browser.contents, 'message'): |
4961 | - ... print extract_text(message) |
4962 | + ... print(extract_text(message)) |
4963 | There is 1 error. |
4964 | http://alias.example.com/ is already registered in Launchpad |
4965 | as "GnomeGBug GTracker" (gnome-bugzilla). |
4966 | @@ -117,7 +117,7 @@ |
4967 | >>> user_browser.url |
4968 | 'http://bugs.launchpad.dev/bugs/bugtrackers/testmantis' |
4969 | |
4970 | - >>> print user_browser.title |
4971 | + >>> print(user_browser.title) |
4972 | Test Mantis Tracker : Bug trackers |
4973 | |
4974 | >>> 'Test Mantis Tracker' in user_browser.contents |
4975 | @@ -136,10 +136,10 @@ |
4976 | >>> anon_bugtracker_url_list = find_tag_by_id( |
4977 | ... anon_browser.contents, 'bugtracker-urls') |
4978 | |
4979 | - >>> print extract_text(user_bugtracker_url_list) |
4980 | + >>> print(extract_text(user_bugtracker_url_list)) |
4981 | mailto:bugs@example.com |
4982 | |
4983 | - >>> print extract_text(anon_bugtracker_url_list) |
4984 | + >>> print(extract_text(anon_bugtracker_url_list)) |
4985 | mailto:<email address hidden> |
4986 | |
4987 | The `Summary` and `Contact Details` fields are optional - creating a |
4988 | @@ -193,7 +193,7 @@ |
4989 | >>> user_browser.url |
4990 | 'http://bugs.launchpad.dev/bugs/bugtrackers/testmantis/+edit' |
4991 | |
4992 | - >>> print user_browser.title |
4993 | + >>> print(user_browser.title) |
4994 | Change details for the... |
4995 | |
4996 | >>> user_browser.getControl('Name').value = 'testbugzilla' |
4997 | @@ -235,7 +235,7 @@ |
4998 | "what? my wife does this stuff" is not a valid URI |
4999 | |
5000 | >>> user_browser.getControl('Location', index=0).value = ( |
The diff has been truncated for viewing.
Self-approving more tedious and bulky __future__ work.