Merge ~cjwatson/launchpad:doctest-want-line-length-noqa into launchpad:master

Proposed by Colin Watson
Status: Merged
Approved by: Colin Watson
Approved revision: a57bb6558f70c56914ff732162f63a35168ca860
Merge reported by: Otto Co-Pilot
Merged at revision: not available
Proposed branch: ~cjwatson/launchpad:doctest-want-line-length-noqa
Merge into: launchpad:master
Diff against target: 2085 lines (+215/-193)
83 files modified
lib/lp/app/browser/doc/watermark.txt (+1/-1)
lib/lp/app/doc/displaying-paragraphs-of-text.txt (+7/-7)
lib/lp/app/doc/tales.txt (+1/-1)
lib/lp/app/doc/textformatting.txt (+1/-1)
lib/lp/blueprints/stories/blueprints/xx-creation.txt (+1/-1)
lib/lp/blueprints/stories/blueprints/xx-distrorelease.txt (+1/-1)
lib/lp/blueprints/stories/blueprints/xx-editing.txt (+9/-9)
lib/lp/blueprints/stories/blueprints/xx-superseding.txt (+2/-2)
lib/lp/blueprints/stories/standalone/xx-informational-blueprints.txt (+1/-1)
lib/lp/bugs/browser/tests/bugtask-search-views.txt (+1/-2)
lib/lp/bugs/browser/tests/person-bug-views.txt (+5/-5)
lib/lp/bugs/doc/bugnotification-email.txt (+2/-0)
lib/lp/bugs/doc/bugnotification-sending.txt (+1/-1)
lib/lp/bugs/stories/bug-also-affects/xx-bug-also-affects.txt (+2/-2)
lib/lp/bugs/stories/bugattachments/xx-attachments-to-bug-report.txt (+1/-1)
lib/lp/bugs/stories/bugattachments/xx-bugattachments.txt (+3/-3)
lib/lp/bugs/stories/bugs/xx-bug-text-pages.txt (+1/-0)
lib/lp/bugs/stories/bugs/xx-incomplete-bugs.txt (+1/-1)
lib/lp/bugs/stories/bugtask-management/xx-bugtask-edit-forms.txt (+1/-1)
lib/lp/bugs/stories/bugtask-management/xx-change-milestone.txt (+2/-2)
lib/lp/bugs/stories/feeds/xx-bug-atom.txt (+3/-3)
lib/lp/bugs/stories/feeds/xx-bug-html.txt (+3/-3)
lib/lp/bugs/stories/webservice/xx-bug.txt (+1/-0)
lib/lp/code/doc/branch-notifications.txt (+3/-1)
lib/lp/code/stories/branches/xx-private-branch-listings.txt (+2/-2)
lib/lp/code/stories/codeimport/xx-codeimport-view.txt (+3/-3)
lib/lp/code/stories/feeds/xx-branch-atom.txt (+2/-2)
lib/lp/code/stories/sourcepackagerecipes/xx-recipe-listings.txt (+3/-3)
lib/lp/code/stories/webservice/xx-code-import.txt (+1/-1)
lib/lp/registry/browser/tests/distributionmirror-views.txt (+1/-0)
lib/lp/registry/doc/distribution-mirror.txt (+3/-3)
lib/lp/registry/stories/announcements/xx-announcements.txt (+1/-1)
lib/lp/registry/stories/gpg-coc/xx-gpg-coc.txt (+1/-1)
lib/lp/registry/stories/person/xx-person-rdf.txt (+1/-1)
lib/lp/registry/stories/productrelease/xx-productrelease-delete.txt (+1/-0)
lib/lp/services/database/doc/textsearching.txt (+1/-0)
lib/lp/services/feeds/stories/xx-links.txt (+3/-3)
lib/lp/soyuz/browser/tests/archive-views.txt (+1/-1)
lib/lp/soyuz/browser/tests/distributionsourcepackagerelease-views.txt (+1/-1)
lib/lp/soyuz/browser/tests/publishing-views.txt (+2/-1)
lib/lp/soyuz/browser/tests/sourcepackage-views.txt (+1/-1)
lib/lp/soyuz/doc/gina.txt (+4/-1)
lib/lp/soyuz/doc/soyuz-upload.txt (+4/-1)
lib/lp/soyuz/stories/distribution/xx-distribution-packages.txt (+2/-2)
lib/lp/soyuz/stories/ppa/xx-ppa-files.txt (+2/-2)
lib/lp/soyuz/stories/ppa/xx-ppa-navigation.txt (+1/-1)
lib/lp/soyuz/stories/ppa/xx-ubuntu-ppas.txt (+2/-2)
lib/lp/soyuz/stories/soyuz/xx-build-record.txt (+1/-1)
lib/lp/soyuz/stories/soyuz/xx-distributionsourcepackagerelease-pages.txt (+1/-1)
lib/lp/soyuz/stories/soyuz/xx-distroarchseries-binpackages.txt (+3/-2)
lib/lp/soyuz/stories/soyuz/xx-distroseries-sources.txt (+11/-8)
lib/lp/soyuz/stories/soyuz/xx-packagepublishinghistory.txt (+4/-5)
lib/lp/soyuz/stories/soyuz/xx-queue-pages-motu.txt (+1/-1)
lib/lp/soyuz/stories/soyuz/xx-queue-pages.txt (+14/-14)
lib/lp/soyuz/stories/soyuz/xx-sourcepackage-changelog.txt (+1/-1)
lib/lp/soyuz/stories/webservice/xx-archive.txt (+12/-12)
lib/lp/soyuz/stories/webservice/xx-binary-package-publishing.txt (+2/-0)
lib/lp/soyuz/stories/webservice/xx-builds.txt (+3/-3)
lib/lp/soyuz/stories/webservice/xx-packageset.txt (+10/-10)
lib/lp/soyuz/stories/webservice/xx-source-package-publishing.txt (+3/-2)
lib/lp/translations/doc/potemplate.txt (+1/-1)
lib/lp/translations/stories/distroseries/xx-distroseries-language-packs.txt (+1/-1)
lib/lp/translations/stories/importqueue/xx-translation-import-queue.txt (+1/-1)
lib/lp/translations/stories/navigation-links/pofile.txt (+1/-1)
lib/lp/translations/stories/navigation-links/pomsgset.txt (+2/-2)
lib/lp/translations/stories/navigation-links/potemplate.txt (+1/-1)
lib/lp/translations/stories/productseries/xx-productseries-translations.txt (+2/-1)
lib/lp/translations/stories/standalone/xx-language.txt (+1/-1)
lib/lp/translations/stories/standalone/xx-pofile-auto-alt-languages.txt (+3/-3)
lib/lp/translations/stories/standalone/xx-pofile-translate-empty-strings-without-validation.txt (+1/-1)
lib/lp/translations/stories/standalone/xx-pofile-translate-gettext-error-middle-page.txt (+1/-1)
lib/lp/translations/stories/standalone/xx-pofile-translate-html-tags-escape.txt (+1/-1)
lib/lp/translations/stories/standalone/xx-pofile-translate-needs-review-flags-preserved.txt (+1/-1)
lib/lp/translations/stories/standalone/xx-pofile-translate-newlines-check.txt (+5/-5)
lib/lp/translations/stories/standalone/xx-pofile-translate-performance.txt (+2/-2)
lib/lp/translations/stories/standalone/xx-potemplate-export.txt (+2/-2)
lib/lp/translations/stories/standalone/xx-series-templates.txt (+1/-1)
lib/lp/translations/stories/standalone/xx-translation-credits.txt (+1/-1)
lib/lp/translations/stories/translationgroups/xx-translationgroups.txt (+2/-2)
lib/lp/translations/stories/translations/xx-translations.txt (+13/-13)
lib/lp/translations/utilities/doc/gettext_mo_exporter.txt (+1/-1)
lib/lp/translations/utilities/doc/gettext_po_exporter.txt (+1/-1)
lib/lp/translations/utilities/doc/gettext_po_parser.txt (+7/-7)
Reviewer Review Type Date Requested Status
Cristian Gonzalez (community) Approve
Review via email: mp+407453@code.launchpad.net

Commit message

Ignore various want line length errors in doctests

Description of the change

This covers cases where it isn't reasonable or practical to wrap the want lines, such as long URLs or wide tables.

To post a comment you must log in.
Revision history for this message
Cristian Gonzalez (cristiangsp) wrote :

Looks good!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/lib/lp/app/browser/doc/watermark.txt b/lib/lp/app/browser/doc/watermark.txt
index ef1a66d..7c792bb 100644
--- a/lib/lp/app/browser/doc/watermark.txt
+++ b/lib/lp/app/browser/doc/watermark.txt
@@ -74,7 +74,7 @@ Any HTML in the context title will be escaped to avoid XSS vulnerabilities.
7474
75 >>> person = factory.makePerson(75 >>> person = factory.makePerson(
76 ... displayname="Fubar<br/><script>alert('XSS')</script>")76 ... displayname="Fubar<br/><script>alert('XSS')</script>")
77 >>> print(get_hierarchy(person).heading())77 >>> print(get_hierarchy(person).heading()) # noqa
78 <h...><a...>Fubar&lt;br/&gt;&lt;script&gt;alert(&#x27;XSS&#x27;)&lt;/script&gt;</a></h...>78 <h...><a...>Fubar&lt;br/&gt;&lt;script&gt;alert(&#x27;XSS&#x27;)&lt;/script&gt;</a></h...>
7979
8080
diff --git a/lib/lp/app/doc/displaying-paragraphs-of-text.txt b/lib/lp/app/doc/displaying-paragraphs-of-text.txt
index 9875fd8..7382553 100644
--- a/lib/lp/app/doc/displaying-paragraphs-of-text.txt
+++ b/lib/lp/app/doc/displaying-paragraphs-of-text.txt
@@ -83,7 +83,7 @@ previous line. This aids in the display of code samples:
83 ... ' def currentCount(self, language=None):\n'83 ... ' def currentCount(self, language=None):\n'
84 ... ' """See IRosettaStats."""\n'84 ... ' """See IRosettaStats."""\n'
85 ... ' return self.currentCount\n')85 ... ' return self.currentCount\n')
86 >>> print(test_tales('foo/fmt:text-to-html', foo=text))86 >>> print(test_tales('foo/fmt:text-to-html', foo=text)) # noqa
87 <p>This is a code sample written in Python.<br />87 <p>This is a code sample written in Python.<br />
88 &nbsp;&nbsp;&nbsp;&nbsp;def messageCount(self):<br />88 &nbsp;&nbsp;&nbsp;&nbsp;def messageCount(self):<br />
89 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&quot;&quot;See IRosettaStats.&quot;&quot;&quot;<br />89 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&quot;&quot;See IRosettaStats.&quot;&quot;&quot;<br />
@@ -104,7 +104,7 @@ Testing a bunch of URL links.
104 ... '\n'104 ... '\n'
105 ... 'I have a Jabber account (jabber:foo@jabber.example.com)\n'105 ... 'I have a Jabber account (jabber:foo@jabber.example.com)\n'
106 ... 'Foo Bar <mailto:foo.bar@example.net>')106 ... 'Foo Bar <mailto:foo.bar@example.net>')
107 >>> print(test_tales('foo/fmt:text-to-html', foo=text))107 >>> print(test_tales('foo/fmt:text-to-html', foo=text)) # noqa
108 <p><a rel="nofollow" href="https://launchpad.net/">https:/<wbr />/launchpad.<wbr />net/</a> is the new Launchpad site<br />108 <p><a rel="nofollow" href="https://launchpad.net/">https:/<wbr />/launchpad.<wbr />net/</a> is the new Launchpad site<br />
109 <a rel="nofollow" href="http://example.com/something?foo=bar&amp;hum=baz">http://<wbr />example.<wbr />com/something?<wbr />foo=bar&amp;<wbr />hum=baz</a><br />109 <a rel="nofollow" href="http://example.com/something?foo=bar&amp;hum=baz">http://<wbr />example.<wbr />com/something?<wbr />foo=bar&amp;<wbr />hum=baz</a><br />
110 You can check the PPC md5sums at <a rel="nofollow" href="ftp://ftp.ubuntu.com/ubuntu/dists/breezy/main/installer-powerpc/current/images/MD5SUMS">ftp://ftp.<wbr />ubuntu.<wbr />com/ubuntu/<wbr />dists/breezy/<wbr />main/installer-<wbr />powerpc/<wbr />current/<wbr />images/<wbr />MD5SUMS</a><br />110 You can check the PPC md5sums at <a rel="nofollow" href="ftp://ftp.ubuntu.com/ubuntu/dists/breezy/main/installer-powerpc/current/images/MD5SUMS">ftp://ftp.<wbr />ubuntu.<wbr />com/ubuntu/<wbr />dists/breezy/<wbr />main/installer-<wbr />powerpc/<wbr />current/<wbr />images/<wbr />MD5SUMS</a><br />
@@ -159,7 +159,7 @@ fmt:text-to-html knows how to linkify URLs:
159 ... 'http://localhost?testing=[square-brackets-in-query]\n'159 ... 'http://localhost?testing=[square-brackets-in-query]\n'
160 ... )160 ... )
161161
162 >>> print(test_tales('foo/fmt:text-to-html', foo=text))162 >>> print(test_tales('foo/fmt:text-to-html', foo=text)) # noqa
163 <p><a rel="nofollow" href="http://localhost:8086/bar/baz/foo.html">http://<wbr />localhost:<wbr />8086/bar/<wbr />baz/foo.<wbr />html</a><br />163 <p><a rel="nofollow" href="http://localhost:8086/bar/baz/foo.html">http://<wbr />localhost:<wbr />8086/bar/<wbr />baz/foo.<wbr />html</a><br />
164 <a rel="nofollow" href="ftp://localhost:8086/bar/baz/foo.bar.html">ftp://localhost<wbr />:8086/bar/<wbr />baz/foo.<wbr />bar.html</a><br />164 <a rel="nofollow" href="ftp://localhost:8086/bar/baz/foo.bar.html">ftp://localhost<wbr />:8086/bar/<wbr />baz/foo.<wbr />bar.html</a><br />
165 <a rel="nofollow" href="sftp://localhost:8086/bar/baz/foo.bar.html">sftp://<wbr />localhost:<wbr />8086/bar/<wbr />baz/foo.<wbr />bar.html</a>.<br />165 <a rel="nofollow" href="sftp://localhost:8086/bar/baz/foo.bar.html">sftp://<wbr />localhost:<wbr />8086/bar/<wbr />baz/foo.<wbr />bar.html</a>.<br />
@@ -432,21 +432,21 @@ After login, a link:
432 >>> getUtility(ILaunchBag).developer432 >>> getUtility(ILaunchBag).developer
433 True433 True
434434
435 >>> print(test_tales('foo/fmt:text-to-html', foo=text))435 >>> print(test_tales('foo/fmt:text-to-html', foo=text)) # noqa
436 <p><a href="https://oops.canonical.com/oops/?oopsid=OOPS-38C23">OOPS-38C23</a></p>436 <p><a href="https://oops.canonical.com/oops/?oopsid=OOPS-38C23">OOPS-38C23</a></p>
437437
438OOPS references can take a number of forms:438OOPS references can take a number of forms:
439439
440 >>> text = 'OOPS-38C23'440 >>> text = 'OOPS-38C23'
441 >>> print(test_tales('foo/fmt:text-to-html', foo=text))441 >>> print(test_tales('foo/fmt:text-to-html', foo=text)) # noqa
442 <p><a href="https://oops.canonical.com/oops/?oopsid=OOPS-38C23">OOPS-38C23</a></p>442 <p><a href="https://oops.canonical.com/oops/?oopsid=OOPS-38C23">OOPS-38C23</a></p>
443443
444 >>> text = 'OOPS-123abcdef'444 >>> text = 'OOPS-123abcdef'
445 >>> print(test_tales('foo/fmt:text-to-html', foo=text))445 >>> print(test_tales('foo/fmt:text-to-html', foo=text)) # noqa
446 <p><a href="https://oops.canonical.com/oops/?oopsid=OOPS-123abcdef">OOPS-123abcdef</a></p>446 <p><a href="https://oops.canonical.com/oops/?oopsid=OOPS-123abcdef">OOPS-123abcdef</a></p>
447447
448 >>> text = 'OOPS-abcdef123'448 >>> text = 'OOPS-abcdef123'
449 >>> print(test_tales('foo/fmt:text-to-html', foo=text))449 >>> print(test_tales('foo/fmt:text-to-html', foo=text)) # noqa
450 <p><a href="https://oops.canonical.com/oops/?oopsid=OOPS-abcdef123">OOPS-abcdef123</a></p>450 <p><a href="https://oops.canonical.com/oops/?oopsid=OOPS-abcdef123">OOPS-abcdef123</a></p>
451451
452If the configuration value doesn't end with a slash, we won't add one. This452If the configuration value doesn't end with a slash, we won't add one. This
diff --git a/lib/lp/app/doc/tales.txt b/lib/lp/app/doc/tales.txt
index e5d2284..8316cd9 100644
--- a/lib/lp/app/doc/tales.txt
+++ b/lib/lp/app/doc/tales.txt
@@ -544,7 +544,7 @@ Git references
544For Git references, fmt:link links to the reference page.544For Git references, fmt:link links to the reference page.
545545
546 >>> [ref] = factory.makeGitRefs(repository=repository, paths=[u"master"])546 >>> [ref] = factory.makeGitRefs(repository=repository, paths=[u"master"])
547 >>> print(test_tales("ref/fmt:link", ref=ref))547 >>> print(test_tales("ref/fmt:link", ref=ref)) # noqa
548 <a href=".../~eric/fooix/+git/bar/+ref/master">~eric/fooix/+git/bar:master</a>548 <a href=".../~eric/fooix/+git/bar/+ref/master">~eric/fooix/+git/bar:master</a>
549549
550550
diff --git a/lib/lp/app/doc/textformatting.txt b/lib/lp/app/doc/textformatting.txt
index bcbdc00..3d9dd40 100644
--- a/lib/lp/app/doc/textformatting.txt
+++ b/lib/lp/app/doc/textformatting.txt
@@ -297,7 +297,7 @@ The callable's argument is the pre-wrapped paragraph.
297 ... return paragraph.startswith('http://')297 ... return paragraph.startswith('http://')
298298
299 >>> body = wrapper.format(text, force_wrap=True, wrap_func=nowrap)299 >>> body = wrapper.format(text, force_wrap=True, wrap_func=nowrap)
300 >>> print(body)300 >>> print(body) # noqa
301 Hello Scarlett O'Hara,301 Hello Scarlett O'Hara,
302 <BLANKLINE>302 <BLANKLINE>
303 frankly-my-dear-i-dont-give-a-damn has a new message requiring your303 frankly-my-dear-i-dont-give-a-damn has a new message requiring your
diff --git a/lib/lp/blueprints/stories/blueprints/xx-creation.txt b/lib/lp/blueprints/stories/blueprints/xx-creation.txt
index 128b233..35041a3 100644
--- a/lib/lp/blueprints/stories/blueprints/xx-creation.txt
+++ b/lib/lp/blueprints/stories/blueprints/xx-creation.txt
@@ -185,7 +185,7 @@ Users can also follow the textual "Register a blueprint" link:
185185
186 >>> for tag in find_tags_by_class(186 >>> for tag in find_tags_by_class(
187 ... user_browser.contents, 'menu-link-new'):187 ... user_browser.contents, 'menu-link-new'):
188 ... print(tag)188 ... print(tag) # noqa
189 <a class="menu-link-new..."189 <a class="menu-link-new..."
190 href="http://blueprints.launchpad.test/sprints/futurista/+addspec">Register190 href="http://blueprints.launchpad.test/sprints/futurista/+addspec">Register
191 a blueprint</a>191 a blueprint</a>
diff --git a/lib/lp/blueprints/stories/blueprints/xx-distrorelease.txt b/lib/lp/blueprints/stories/blueprints/xx-distrorelease.txt
index d96e9c2..19ceace 100644
--- a/lib/lp/blueprints/stories/blueprints/xx-distrorelease.txt
+++ b/lib/lp/blueprints/stories/blueprints/xx-distrorelease.txt
@@ -57,7 +57,7 @@ redirected back to the spec page when we are done.
57 >>> user_browser.open(57 >>> user_browser.open(
58 ... 'http://blueprints.launchpad.test/ubuntu/+spec/'58 ... 'http://blueprints.launchpad.test/ubuntu/+spec/'
59 ... 'media-integrity-check/+setdistroseries')59 ... 'media-integrity-check/+setdistroseries')
60 >>> user_browser.url60 >>> user_browser.url # noqa
61 'http://blueprints.launchpad.test/ubuntu/+spec/media-integrity-check/+setdistroseries'61 'http://blueprints.launchpad.test/ubuntu/+spec/media-integrity-check/+setdistroseries'
62 >>> user_browser.getControl('Goal').value = ['5']62 >>> user_browser.getControl('Goal').value = ['5']
63 >>> user_browser.getControl('Continue').click()63 >>> user_browser.getControl('Continue').click()
diff --git a/lib/lp/blueprints/stories/blueprints/xx-editing.txt b/lib/lp/blueprints/stories/blueprints/xx-editing.txt
index 8c9009b..b5b3e2c 100644
--- a/lib/lp/blueprints/stories/blueprints/xx-editing.txt
+++ b/lib/lp/blueprints/stories/blueprints/xx-editing.txt
@@ -11,13 +11,13 @@ First, we need to load the +edit page.
11 >>> spec_path = '/firefox/+spec/extension-manager-upgrades'11 >>> spec_path = '/firefox/+spec/extension-manager-upgrades'
12 >>> browser.open(features_domain + spec_path)12 >>> browser.open(features_domain + spec_path)
13 >>> browser.getLink('Change details').click()13 >>> browser.getLink('Change details').click()
14 >>> browser.url14 >>> browser.url # noqa
15 'http://blueprints.launchpad.test/firefox/+spec/extension-manager-upgrades/+edit'15 'http://blueprints.launchpad.test/firefox/+spec/extension-manager-upgrades/+edit'
1616
17The page links back to the blueprint page, in case we change our minds.17The page links back to the blueprint page, in case we change our minds.
1818
19 >>> back_link = browser.getLink('Extension Manager Upgrades')19 >>> back_link = browser.getLink('Extension Manager Upgrades')
20 >>> back_link.url20 >>> back_link.url # noqa
21 'http://blueprints.launchpad.test/firefox/+spec/extension-manager-upgrades'21 'http://blueprints.launchpad.test/firefox/+spec/extension-manager-upgrades'
2222
23Launchpad won't let us use an URL already used in another blueprint.23Launchpad won't let us use an URL already used in another blueprint.
@@ -61,24 +61,24 @@ specification home page.
61 >>> browser.getControl('Summary').value = summary61 >>> browser.getControl('Summary').value = summary
62 >>> browser.getControl('Status Whiteboard').value = 'XXX'62 >>> browser.getControl('Status Whiteboard').value = 'XXX'
63 >>> browser.getControl('Change').click()63 >>> browser.getControl('Change').click()
64 >>> browser.url64 >>> browser.url # noqa
65 'http://blueprints.launchpad.test/firefox/+spec/extension-manager-upgrades'65 'http://blueprints.launchpad.test/firefox/+spec/extension-manager-upgrades'
6666
67Also, we would like to assign these to someone other than Carlos, and we67Also, we would like to assign these to someone other than Carlos, and we
68would also like to have a drafter associated with it.68would also like to have a drafter associated with it.
6969
70 >>> browser.getLink(url='+people').click()70 >>> browser.getLink(url='+people').click()
71 >>> browser.url71 >>> browser.url # noqa
72 'http://blueprints.launchpad.test/firefox/+spec/extension-manager-upgrades/+people'72 'http://blueprints.launchpad.test/firefox/+spec/extension-manager-upgrades/+people'
73 >>> back_link = browser.getLink('Extension Manager System Upgrades')73 >>> back_link = browser.getLink('Extension Manager System Upgrades')
74 >>> back_link.url74 >>> back_link.url # noqa
75 'http://blueprints.launchpad.test/firefox/+spec/extension-manager-upgrades'75 'http://blueprints.launchpad.test/firefox/+spec/extension-manager-upgrades'
76 >>> browser.getControl('Assignee').value = 'tsukimi@quaqua.net'76 >>> browser.getControl('Assignee').value = 'tsukimi@quaqua.net'
77 >>> browser.getControl('Drafter').value = 'daf@canonical.com'77 >>> browser.getControl('Drafter').value = 'daf@canonical.com'
78 >>> browser.getControl('Approver').value = 'stuart.bishop@canonical.com'78 >>> browser.getControl('Approver').value = 'stuart.bishop@canonical.com'
79 >>> browser.getControl('Status Whiteboard').value = 'YYY'79 >>> browser.getControl('Status Whiteboard').value = 'YYY'
80 >>> browser.getControl('Change').click()80 >>> browser.getControl('Change').click()
81 >>> browser.url81 >>> browser.url # noqa
82 'http://blueprints.launchpad.test/firefox/+spec/extension-manager-upgrades'82 'http://blueprints.launchpad.test/firefox/+spec/extension-manager-upgrades'
8383
84Finally, we should be able to change the status metadata (definition status,84Finally, we should be able to change the status metadata (definition status,
@@ -86,13 +86,13 @@ implementation status, estimated man days etc) of the specification.
8686
87 >>> browser.getLink(url='+status').click()87 >>> browser.getLink(url='+status').click()
88 >>> back_link = browser.getLink('Extension Manager System Upgrades')88 >>> back_link = browser.getLink('Extension Manager System Upgrades')
89 >>> back_link.url89 >>> back_link.url # noqa
90 'http://blueprints.launchpad.test/firefox/+spec/extension-manager-upgrades'90 'http://blueprints.launchpad.test/firefox/+spec/extension-manager-upgrades'
91 >>> browser.getControl('Definition Status').value = ['DRAFT']91 >>> browser.getControl('Definition Status').value = ['DRAFT']
92 >>> browser.getControl('Implementation Status').value = ['SLOW']92 >>> browser.getControl('Implementation Status').value = ['SLOW']
93 >>> browser.getControl('Status Whiteboard').value = 'XXX'93 >>> browser.getControl('Status Whiteboard').value = 'XXX'
94 >>> browser.getControl('Change').click()94 >>> browser.getControl('Change').click()
95 >>> browser.url95 >>> browser.url # noqa
96 'http://blueprints.launchpad.test/firefox/+spec/extension-manager-upgrades'96 'http://blueprints.launchpad.test/firefox/+spec/extension-manager-upgrades'
9797
98Any logged in user can edit a specification whiteboard.98Any logged in user can edit a specification whiteboard.
@@ -143,7 +143,7 @@ But an administrator can.
143 ... 'http://blueprints.launchpad.test/kubuntu/'143 ... 'http://blueprints.launchpad.test/kubuntu/'
144 ... '+spec/krunch-desktop-plan')144 ... '+spec/krunch-desktop-plan')
145 >>> admin_browser.getLink(url='+priority').click()145 >>> admin_browser.getLink(url='+priority').click()
146 >>> admin_browser.url146 >>> admin_browser.url # noqa
147 'http://blueprints.launchpad.test/kubuntu/+spec/krunch-desktop-plan/+priority'147 'http://blueprints.launchpad.test/kubuntu/+spec/krunch-desktop-plan/+priority'
148 >>> back_link = admin_browser.getLink('The Krunch Desktop Plan')148 >>> back_link = admin_browser.getLink('The Krunch Desktop Plan')
149 >>> back_link.url149 >>> back_link.url
diff --git a/lib/lp/blueprints/stories/blueprints/xx-superseding.txt b/lib/lp/blueprints/stories/blueprints/xx-superseding.txt
index 9e4910a..fe83bdd 100644
--- a/lib/lp/blueprints/stories/blueprints/xx-superseding.txt
+++ b/lib/lp/blueprints/stories/blueprints/xx-superseding.txt
@@ -26,9 +26,9 @@ The page contains a link back to the blueprint, in case we change our
26mind.26mind.
2727
28 >>> back_link = browser.getLink('Extension Manager Upgrades')28 >>> back_link = browser.getLink('Extension Manager Upgrades')
29 >>> back_link.url29 >>> back_link.url # noqa
30 'http://blueprints.launchpad.test/firefox/+spec/extension-manager-upgrades'30 'http://blueprints.launchpad.test/firefox/+spec/extension-manager-upgrades'
31 >>> browser.getLink('Cancel').url31 >>> browser.getLink('Cancel').url # noqa
32 'http://blueprints.launchpad.test/firefox/+spec/extension-manager-upgrades'32 'http://blueprints.launchpad.test/firefox/+spec/extension-manager-upgrades'
3333
34Next, we will POST to that form, setting the spec which supersedes this one:34Next, we will POST to that form, setting the spec which supersedes this one:
diff --git a/lib/lp/blueprints/stories/standalone/xx-informational-blueprints.txt b/lib/lp/blueprints/stories/standalone/xx-informational-blueprints.txt
index 5e653eb..d37db9a 100644
--- a/lib/lp/blueprints/stories/standalone/xx-informational-blueprints.txt
+++ b/lib/lp/blueprints/stories/standalone/xx-informational-blueprints.txt
@@ -29,7 +29,7 @@ We register a new blueprint.
29We then set the blueprint's implementation status to ''informational''.29We then set the blueprint's implementation status to ''informational''.
3030
31 >>> user_browser.getLink(url='+status').click()31 >>> user_browser.getLink(url='+status').click()
32 >>> user_browser.url32 >>> user_browser.url # noqa
33 'http://blueprints.launchpad.test/jokosher/+spec/informational-blueprint/+status'33 'http://blueprints.launchpad.test/jokosher/+spec/informational-blueprint/+status'
34 >>> user_browser.getControl('Implementation Status').value = (34 >>> user_browser.getControl('Implementation Status').value = (
35 ... ['INFORMATIONAL'])35 ... ['INFORMATIONAL'])
diff --git a/lib/lp/bugs/browser/tests/bugtask-search-views.txt b/lib/lp/bugs/browser/tests/bugtask-search-views.txt
index 3645cdf..48d3458 100644
--- a/lib/lp/bugs/browser/tests/bugtask-search-views.txt
+++ b/lib/lp/bugs/browser/tests/bugtask-search-views.txt
@@ -460,6 +460,5 @@ get_buglisting_search_filter_url().
460460
461 >>> print(get_buglisting_search_filter_url(461 >>> print(get_buglisting_search_filter_url(
462 ... status_upstream='open_upstream', status='NEW',462 ... status_upstream='open_upstream', status='NEW',
463 ... importance='WISHLIST', assignee='mark'))463 ... importance='WISHLIST', assignee='mark')) # noqa
464 +bugs?search=Search&field.assignee=mark&field.importance=WISHLIST&field.status=NEW&field.status_upstream=open_upstream464 +bugs?search=Search&field.assignee=mark&field.importance=WISHLIST&field.status=NEW&field.status_upstream=open_upstream
465
diff --git a/lib/lp/bugs/browser/tests/person-bug-views.txt b/lib/lp/bugs/browser/tests/person-bug-views.txt
index 5f1d5ab..24be807 100644
--- a/lib/lp/bugs/browser/tests/person-bug-views.txt
+++ b/lib/lp/bugs/browser/tests/person-bug-views.txt
@@ -192,7 +192,7 @@ render the overview report.
192192
193 >>> print(ubuntu_firefox_bugcounts['package_name'])193 >>> print(ubuntu_firefox_bugcounts['package_name'])
194 mozilla-firefox in Ubuntu194 mozilla-firefox in Ubuntu
195 >>> print(ubuntu_firefox_bugcounts['package_search_url'])195 >>> print(ubuntu_firefox_bugcounts['package_search_url']) # noqa
196 http://bugs.launchpad.test/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=Search196 http://bugs.launchpad.test/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
197197
198 >>> print(ubuntu_firefox_bugcounts['open_bugs_count'])198 >>> print(ubuntu_firefox_bugcounts['open_bugs_count'])
@@ -204,13 +204,13 @@ render the overview report.
204 >>> print(ubuntu_firefox_bugcounts['inprogress_bugs_count'])204 >>> print(ubuntu_firefox_bugcounts['inprogress_bugs_count'])
205 0205 0
206206
207 >>> print(ubuntu_firefox_bugcounts['open_bugs_url'])207 >>> print(ubuntu_firefox_bugcounts['open_bugs_url']) # noqa
208 http://bugs.launchpad.test/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=Search208 http://bugs.launchpad.test/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
209 >>> print(ubuntu_firefox_bugcounts['critical_bugs_url'])209 >>> print(ubuntu_firefox_bugcounts['critical_bugs_url']) # noqa
210 http://bugs.launchpad.test/ubuntu/+source/mozilla-firefox?field.importance=Critical&field.status=New&field.status=Incomplete&field.status=Confirmed&field.status=Triaged&field.status=In+Progress&field.status=Fix+Committed&search=Search210 http://bugs.launchpad.test/ubuntu/+source/mozilla-firefox?field.importance=Critical&field.status=New&field.status=Incomplete&field.status=Confirmed&field.status=Triaged&field.status=In+Progress&field.status=Fix+Committed&search=Search
211 >>> print(ubuntu_firefox_bugcounts['unassigned_bugs_url'])211 >>> print(ubuntu_firefox_bugcounts['unassigned_bugs_url']) # noqa
212 http://bugs.launchpad.test/ubuntu/+source/mozilla-firefox?assignee_option=none&field.status=New&field.status=Incomplete&field.status=Confirmed&field.status=Triaged&field.status=In+Progress&field.status=Fix+Committed&search=Search212 http://bugs.launchpad.test/ubuntu/+source/mozilla-firefox?assignee_option=none&field.status=New&field.status=Incomplete&field.status=Confirmed&field.status=Triaged&field.status=In+Progress&field.status=Fix+Committed&search=Search
213 >>> print(ubuntu_firefox_bugcounts['inprogress_bugs_url'])213 >>> print(ubuntu_firefox_bugcounts['inprogress_bugs_url']) # noqa
214 http://bugs.launchpad.test/ubuntu/+source/mozilla-firefox?field.status=In+Progress&search=Search214 http://bugs.launchpad.test/ubuntu/+source/mozilla-firefox?field.status=In+Progress&search=Search
215215
216The total number of bugs, broken down in the same ways as the package216The total number of bugs, broken down in the same ways as the package
diff --git a/lib/lp/bugs/doc/bugnotification-email.txt b/lib/lp/bugs/doc/bugnotification-email.txt
index 268d2a9..bc835c9 100644
--- a/lib/lp/bugs/doc/bugnotification-email.txt
+++ b/lib/lp/bugs/doc/bugnotification-email.txt
@@ -386,6 +386,7 @@ Adding an attachment will generate a notification that looks as follows:
386 ... notification = change.getBugNotification()386 ... notification = change.getBugNotification()
387 ... print(notification['text']) #doctest: -NORMALIZE_WHITESPACE387 ... print(notification['text']) #doctest: -NORMALIZE_WHITESPACE
388 ... print("-----------------------------")388 ... print("-----------------------------")
389 ... # noqa
389 ** Attachment added: "A screenshot of the problem"390 ** Attachment added: "A screenshot of the problem"
390 http://bugs.launchpad.test/bugs/.../+attachment/.../+files/screenshot.png391 http://bugs.launchpad.test/bugs/.../+attachment/.../+files/screenshot.png
391 -----------------------------392 -----------------------------
@@ -401,6 +402,7 @@ Removing an attachment generates a notification, too.
401 ... notification = change.getBugNotification()402 ... notification = change.getBugNotification()
402 ... print(notification['text']) #doctest: -NORMALIZE_WHITESPACE403 ... print(notification['text']) #doctest: -NORMALIZE_WHITESPACE
403 ... print("-----------------------------")404 ... print("-----------------------------")
405 ... # noqa
404 ** Attachment removed: "A screenshot of the problem"406 ** Attachment removed: "A screenshot of the problem"
405 http://bugs.launchpad.test/bugs/.../+attachment/.../+files/screenshot.png407 http://bugs.launchpad.test/bugs/.../+attachment/.../+files/screenshot.png
406 -----------------------------408 -----------------------------
diff --git a/lib/lp/bugs/doc/bugnotification-sending.txt b/lib/lp/bugs/doc/bugnotification-sending.txt
index 8d947fb..a3d7b8f 100644
--- a/lib/lp/bugs/doc/bugnotification-sending.txt
+++ b/lib/lp/bugs/doc/bugnotification-sending.txt
@@ -273,7 +273,7 @@ lp/bugs/tests/test_bugnotification.py), and not demonstrated here.
273Another thing worth noting is that there's a blank line before the273Another thing worth noting is that there's a blank line before the
274signature, and the signature marker has a trailing space.274signature, and the signature marker has a trailing space.
275275
276 >>> six.ensure_str(message.get_payload(decode=True)).splitlines()276 >>> six.ensure_str(message.get_payload(decode=True)).splitlines() # noqa
277 [...,277 [...,
278 '',278 '',
279 '-- ',279 '-- ',
diff --git a/lib/lp/bugs/stories/bug-also-affects/xx-bug-also-affects.txt b/lib/lp/bugs/stories/bug-also-affects/xx-bug-also-affects.txt
index 8d5d055..67bf508 100644
--- a/lib/lp/bugs/stories/bug-also-affects/xx-bug-also-affects.txt
+++ b/lib/lp/bugs/stories/bug-also-affects/xx-bug-also-affects.txt
@@ -230,7 +230,7 @@ We cannot allow proprietary bugs to affect more than one pillar.
230 >>> browser.getLink(url='+choose-affected-product').click()230 >>> browser.getLink(url='+choose-affected-product').click()
231 >>> browser.getControl(name='field.product').value = other_product_name231 >>> browser.getControl(name='field.product').value = other_product_name
232 >>> browser.getControl('Continue').click()232 >>> browser.getControl('Continue').click()
233 >>> print(browser.url)233 >>> print(browser.url) # noqa
234 http://bugs.launchpad.test/proprietary-product/+bug/.../+choose-affected-product234 http://bugs.launchpad.test/proprietary-product/+bug/.../+choose-affected-product
235235
236 >>> print_feedback_messages(browser.contents)236 >>> print_feedback_messages(browser.contents)
@@ -267,7 +267,7 @@ If this wasn't what we intended, we can go back to choose another
267product, though.267product, though.
268268
269 >>> user_browser.getLink('Choose another project').click()269 >>> user_browser.getLink('Choose another project').click()
270 >>> print(user_browser.url)270 >>> print(user_browser.url) # noqa
271 http://bugs.launchpad.test/ubuntu/+source/evolution/+bug/6/+choose-affected-product?field.product=evolution271 http://bugs.launchpad.test/ubuntu/+source/evolution/+bug/6/+choose-affected-product?field.product=evolution
272272
273 >>> user_browser.getControl('Project').value273 >>> user_browser.getControl('Project').value
diff --git a/lib/lp/bugs/stories/bugattachments/xx-attachments-to-bug-report.txt b/lib/lp/bugs/stories/bugattachments/xx-attachments-to-bug-report.txt
index 9016ea8..bdbe665 100644
--- a/lib/lp/bugs/stories/bugattachments/xx-attachments-to-bug-report.txt
+++ b/lib/lp/bugs/stories/bugattachments/xx-attachments-to-bug-report.txt
@@ -53,7 +53,7 @@ displayed as the bug report).
53 (8 bytes,53 (8 bytes,
54 text/plain)54 text/plain)
55 >>> link = browser.getLink('sample data')55 >>> link = browser.getLink('sample data')
56 >>> print(link.url)56 >>> print(link.url) # noqa
57 http://bugs.launchpad.test/jokosher/+bug/11/+attachment/.../+files/test.txt57 http://bugs.launchpad.test/jokosher/+bug/11/+attachment/.../+files/test.txt
58 >>> print(comment_0.find('a', text='Edit'))58 >>> print(comment_0.find('a', text='Edit'))
59 <a class="sprite edit action-icon"59 <a class="sprite edit action-icon"
diff --git a/lib/lp/bugs/stories/bugattachments/xx-bugattachments.txt b/lib/lp/bugs/stories/bugattachments/xx-bugattachments.txt
index c691592..ec8e157 100644
--- a/lib/lp/bugs/stories/bugattachments/xx-bugattachments.txt
+++ b/lib/lp/bugs/stories/bugattachments/xx-bugattachments.txt
@@ -113,7 +113,7 @@ the flag "this attachment is a patch"...
113113
114...we are redirected to a page...114...we are redirected to a page...
115115
116 >>> user_browser.url116 >>> user_browser.url # noqa
117 'http://bugs.launchpad.test/firefox/+bug/1/+attachment/.../+confirm-is-patch'117 'http://bugs.launchpad.test/firefox/+bug/1/+attachment/.../+confirm-is-patch'
118118
119...where we see a message that we should double-check if this file119...where we see a message that we should double-check if this file
@@ -169,7 +169,7 @@ if we set the "patch" flag for this attachment...
169...we are redirected to the page where we must confirm that this attachment169...we are redirected to the page where we must confirm that this attachment
170is indeed a patch.170is indeed a patch.
171171
172 >>> user_browser.url172 >>> user_browser.url # noqa
173 'http://bugs.launchpad.test/firefox/+bug/1/+attachment/.../+confirm-is-patch'173 'http://bugs.launchpad.test/firefox/+bug/1/+attachment/.../+confirm-is-patch'
174174
175...where we see a message asking us if we really ant to declare this file175...where we see a message asking us if we really ant to declare this file
@@ -301,7 +301,7 @@ The server now checks if the attachment looks like a patch. In this case,
301is doesn't, and we get the edit page again, with a message asking us if301is doesn't, and we get the edit page again, with a message asking us if
302the attachment should indeed be labeled as a patch302the attachment should indeed be labeled as a patch
303303
304 >>> user_browser.url304 >>> user_browser.url # noqa
305 'http://bugs.launchpad.test/firefox/+bug/1/+attachment/.../+confirm-is-patch'305 'http://bugs.launchpad.test/firefox/+bug/1/+attachment/.../+confirm-is-patch'
306306
307 >>> print(extract_text(find_tags_by_class(307 >>> print(extract_text(find_tags_by_class(
diff --git a/lib/lp/bugs/stories/bugs/xx-bug-text-pages.txt b/lib/lp/bugs/stories/bugs/xx-bug-text-pages.txt
index a09fca1..f4e5a39 100644
--- a/lib/lp/bugs/stories/bugs/xx-bug-text-pages.txt
+++ b/lib/lp/bugs/stories/bugs/xx-bug-text-pages.txt
@@ -231,6 +231,7 @@ The only differences are the download URLs of bug attachments:
231 ... if bug_lines[line_no] != bug_task_lines[line_no]:231 ... if bug_lines[line_no] != bug_task_lines[line_no]:
232 ... print(bug_lines[line_no])232 ... print(bug_lines[line_no])
233 ... print(bug_task_lines[line_no])233 ... print(bug_task_lines[line_no])
234 ... # noqa
234 http://bugs.launchpad.test/bugs/1/+attachment/.../+files/file_a.txt text/html235 http://bugs.launchpad.test/bugs/1/+attachment/.../+files/file_a.txt text/html
235 http://bugs.launchpad.test/firefox/+bug/.../+files/file_a.txt text/html236 http://bugs.launchpad.test/firefox/+bug/.../+files/file_a.txt text/html
236 http://bugs.launchpad.test/bugs/1/.../+files/file%20with%20space.txt...237 http://bugs.launchpad.test/bugs/1/.../+files/file%20with%20space.txt...
diff --git a/lib/lp/bugs/stories/bugs/xx-incomplete-bugs.txt b/lib/lp/bugs/stories/bugs/xx-incomplete-bugs.txt
index 0e43b2d..7954298 100644
--- a/lib/lp/bugs/stories/bugs/xx-incomplete-bugs.txt
+++ b/lib/lp/bugs/stories/bugs/xx-incomplete-bugs.txt
@@ -283,7 +283,7 @@ A default search turns that bug up as well.
283283
284 >>> user_browser.open('http://bugs.launchpad.test/jokosher')284 >>> user_browser.open('http://bugs.launchpad.test/jokosher')
285 >>> user_browser.getControl('Search', index=0).click()285 >>> user_browser.getControl('Search', index=0).click()
286 >>> print(user_browser.url)286 >>> print(user_browser.url) # noqa
287 http://bugs.launchpad.test/jokosher/+bugs?...&field.status%3Alist=INCOMPLETE_WITH_RESPONSE&field.status%3Alist=INCOMPLETE_WITHOUT_RESPONSE...287 http://bugs.launchpad.test/jokosher/+bugs?...&field.status%3Alist=INCOMPLETE_WITH_RESPONSE&field.status%3Alist=INCOMPLETE_WITHOUT_RESPONSE...
288 >>> ('<a class="bugtitle" '288 >>> ('<a class="bugtitle" '
289 ... 'href="http://bugs.launchpad.test/jokosher/+bug/11">' in289 ... 'href="http://bugs.launchpad.test/jokosher/+bug/11">' in
diff --git a/lib/lp/bugs/stories/bugtask-management/xx-bugtask-edit-forms.txt b/lib/lp/bugs/stories/bugtask-management/xx-bugtask-edit-forms.txt
index dc57806..0fd1188 100644
--- a/lib/lp/bugs/stories/bugtask-management/xx-bugtask-edit-forms.txt
+++ b/lib/lp/bugs/stories/bugtask-management/xx-bugtask-edit-forms.txt
@@ -30,7 +30,7 @@ respective bug task.
30 ...30 ...
31 zope.testbrowser.browser.LinkNotFoundError31 zope.testbrowser.browser.LinkNotFoundError
3232
33 >>> print(admin_browser.getLink('Low', index=1).url)33 >>> print(admin_browser.getLink('Low', index=1).url) # noqa
34 http://bugs.launchpad.test/debian/+source/mozilla-firefox/+bug/1/+editstatus34 http://bugs.launchpad.test/debian/+source/mozilla-firefox/+bug/1/+editstatus
35 >>> print(admin_browser.getLink('New', index=1).url)35 >>> print(admin_browser.getLink('New', index=1).url)
36 http://bugs...test/ubuntu/+source/mozilla-firefox/+bug/1/+editstatus36 http://bugs...test/ubuntu/+source/mozilla-firefox/+bug/1/+editstatus
diff --git a/lib/lp/bugs/stories/bugtask-management/xx-change-milestone.txt b/lib/lp/bugs/stories/bugtask-management/xx-change-milestone.txt
index b612e76..148dac5 100644
--- a/lib/lp/bugs/stories/bugtask-management/xx-change-milestone.txt
+++ b/lib/lp/bugs/stories/bugtask-management/xx-change-milestone.txt
@@ -84,7 +84,7 @@ They target bug #1 to milestone 5.04-rc1 for Ubuntu.
8484
85 >>> admin_browser.open('http://launchpad.test/firefox/+bug/1')85 >>> admin_browser.open('http://launchpad.test/firefox/+bug/1')
86 >>> table = find_tag_by_id(admin_browser.contents, 'affected-software')86 >>> table = find_tag_by_id(admin_browser.contents, 'affected-software')
87 >>> print(extract_text(table))87 >>> print(extract_text(table)) # noqa
88 Affects Status Importance Assigned to Milestone88 Affects Status Importance Assigned to Milestone
89 ... Mozilla Firefox ... New Low Mark Shuttleworth ... 1.089 ... Mozilla Firefox ... New Low Mark Shuttleworth ... 1.0
90 ...90 ...
@@ -99,7 +99,7 @@ They target bug #1 to milestone 5.04-rc1 for Ubuntu.
99 >>> milestone_control.displayValue = ['Ubuntu 5.04.rc1']99 >>> milestone_control.displayValue = ['Ubuntu 5.04.rc1']
100 >>> admin_browser.getControl('Save Changes', index=3).click()100 >>> admin_browser.getControl('Save Changes', index=3).click()
101 >>> table = find_tag_by_id(admin_browser.contents, 'affected-software')101 >>> table = find_tag_by_id(admin_browser.contents, 'affected-software')
102 >>> print(extract_text(table))102 >>> print(extract_text(table)) # noqa
103 Affects Status Importance Assigned to Milestone103 Affects Status Importance Assigned to Milestone
104 ... Mozilla Firefox ... New Low Mark Shuttleworth ... 1.0104 ... Mozilla Firefox ... New Low Mark Shuttleworth ... 1.0
105 ...105 ...
diff --git a/lib/lp/bugs/stories/feeds/xx-bug-atom.txt b/lib/lp/bugs/stories/feeds/xx-bug-atom.txt
index 2d615ed..d58ea15 100644
--- a/lib/lp/bugs/stories/feeds/xx-bug-atom.txt
+++ b/lib/lp/bugs/stories/feeds/xx-bug-atom.txt
@@ -527,16 +527,16 @@ to True.
527 >>> soup = BeautifulSoup(527 >>> soup = BeautifulSoup(
528 ... browser.contents, 'xml', parse_only=SoupStrainer('id'))528 ... browser.contents, 'xml', parse_only=SoupStrainer('id'))
529 >>> feed_id = extract_text(soup.find('id'))529 >>> feed_id = extract_text(soup.find('id'))
530 >>> print(feed_id)530 >>> print(feed_id) # noqa
531 tag:launchpad.net,2008:/+bugs.atom?field.scope.target=&amp;field.scope=all&amp;field.searchtext=&amp;search=Search+Bug+Reports531 tag:launchpad.net,2008:/+bugs.atom?field.scope.target=&amp;field.scope=all&amp;field.searchtext=&amp;search=Search+Bug+Reports
532532
533 >>> from lp.services.webapp.escaping import html_escape533 >>> from lp.services.webapp.escaping import html_escape
534 >>> print(html_escape(browser.url))534 >>> print(html_escape(browser.url)) # noqa
535 http://feeds.launchpad.test/bugs/+bugs.atom?field.scope.target=&amp;field.scope=all&amp;field.searchtext=&amp;search=Search+Bug+Reports535 http://feeds.launchpad.test/bugs/+bugs.atom?field.scope.target=&amp;field.scope=all&amp;field.searchtext=&amp;search=Search+Bug+Reports
536536
537 >>> self_links = parse_links(browser.contents, 'self')537 >>> self_links = parse_links(browser.contents, 'self')
538 >>> for link in self_links:538 >>> for link in self_links:
539 ... print(link)539 ... print(link) # noqa
540 <link href="http://feeds.launchpad.test/bugs/+bugs.atom?field.scope.target=&amp;field.scope=all&amp;field.searchtext=&amp;search=Search+Bug+Reports" rel="self"/>540 <link href="http://feeds.launchpad.test/bugs/+bugs.atom?field.scope.target=&amp;field.scope=all&amp;field.searchtext=&amp;search=Search+Bug+Reports" rel="self"/>
541541
542 >>> entries = parse_entries(browser.contents)542 >>> entries = parse_entries(browser.contents)
diff --git a/lib/lp/bugs/stories/feeds/xx-bug-html.txt b/lib/lp/bugs/stories/feeds/xx-bug-html.txt
index 510e91a..a2847f0 100644
--- a/lib/lp/bugs/stories/feeds/xx-bug-html.txt
+++ b/lib/lp/bugs/stories/feeds/xx-bug-html.txt
@@ -52,7 +52,7 @@ the bug itself.
52 ... 'show_column=bugtargetdisplayname')52 ... 'show_column=bugtargetdisplayname')
53 >>> browser.title53 >>> browser.title
54 'Bugs in Jokosher'54 'Bugs in Jokosher'
55 >>> browser.url55 >>> browser.url # noqa
56 'http://feeds.launchpad.test/jokosher/latest-bugs.html?show_column=bugtargetdisplayname'56 'http://feeds.launchpad.test/jokosher/latest-bugs.html?show_column=bugtargetdisplayname'
5757
58 >>> entries = parse_entries(browser.contents)58 >>> entries = parse_entries(browser.contents)
@@ -79,7 +79,7 @@ as the latest bugs feed for a product.
79 ... 'show_column=bugtargetdisplayname')79 ... 'show_column=bugtargetdisplayname')
80 >>> browser.title80 >>> browser.title
81 'Bugs in The Mozilla Project'81 'Bugs in The Mozilla Project'
82 >>> browser.url82 >>> browser.url # noqa
83 'http://feeds.launchpad.test/mozilla/latest-bugs.html?show_column=bugtargetdisplayname'83 'http://feeds.launchpad.test/mozilla/latest-bugs.html?show_column=bugtargetdisplayname'
8484
85 >>> entries = parse_entries(browser.contents)85 >>> entries = parse_entries(browser.contents)
@@ -161,7 +161,7 @@ This feed gets the latest bugs reported against any target.
161 ... 'show_column=bugtargetdisplayname')161 ... 'show_column=bugtargetdisplayname')
162 >>> browser.title162 >>> browser.title
163 'Launchpad bugs'163 'Launchpad bugs'
164 >>> browser.url164 >>> browser.url # noqa
165 'http://feeds.launchpad.test/bugs/latest-bugs.html?show_column=bugtargetdisplayname'165 'http://feeds.launchpad.test/bugs/latest-bugs.html?show_column=bugtargetdisplayname'
166166
167 >>> entries = parse_entries(browser.contents)167 >>> entries = parse_entries(browser.contents)
diff --git a/lib/lp/bugs/stories/webservice/xx-bug.txt b/lib/lp/bugs/stories/webservice/xx-bug.txt
index dcd2665..b1b25d0 100644
--- a/lib/lp/bugs/stories/webservice/xx-bug.txt
+++ b/lib/lp/bugs/stories/webservice/xx-bug.txt
@@ -563,6 +563,7 @@ distribution.
563 >>> print(webservice.named_post(563 >>> print(webservice.named_post(
564 ... distro_bugtask_path, 'transitionToTarget',564 ... distro_bugtask_path, 'transitionToTarget',
565 ... target=webservice.getAbsoluteUrl('/ubuntu/+source/alsa-utils')))565 ... target=webservice.getAbsoluteUrl('/ubuntu/+source/alsa-utils')))
566 ... # noqa
566 HTTP/1.1 301 Moved Permanently567 HTTP/1.1 301 Moved Permanently
567 ...568 ...
568 Location: http://api.launchpad.test/beta/ubuntu/+source/alsa-utils/+bug/...569 Location: http://api.launchpad.test/beta/ubuntu/+source/alsa-utils/+bug/...
diff --git a/lib/lp/code/doc/branch-notifications.txt b/lib/lp/code/doc/branch-notifications.txt
index d59000b..c8ff6d5 100644
--- a/lib/lp/code/doc/branch-notifications.txt
+++ b/lib/lp/code/doc/branch-notifications.txt
@@ -66,7 +66,9 @@ also sends the email to the list of recipients.
66 name1266 name12
67 >>> notification_body = six.ensure_text(67 >>> notification_body = six.ensure_text(
68 ... branch_notification.get_payload(decode=True))68 ... branch_notification.get_payload(decode=True))
69 >>> print(notification_body) #doctest: -NORMALIZE_WHITESPACE69 >>> print(notification_body)
70 ... # noqa
71 ... # doctest: -NORMALIZE_WHITESPACE
70 The contents.72 The contents.
71 <BLANKLINE>73 <BLANKLINE>
72 --74 --
diff --git a/lib/lp/code/stories/branches/xx-private-branch-listings.txt b/lib/lp/code/stories/branches/xx-private-branch-listings.txt
index a1fbbe3..c775877 100644
--- a/lib/lp/code/stories/branches/xx-private-branch-listings.txt
+++ b/lib/lp/code/stories/branches/xx-private-branch-listings.txt
@@ -81,7 +81,7 @@ developer.
8181
82 >>> landscape_dev_browser = setupBrowser(82 >>> landscape_dev_browser = setupBrowser(
83 ... auth='Basic test@canonical.com:test')83 ... auth='Basic test@canonical.com:test')
84 >>> print_recently_registered_branches(landscape_dev_browser)84 >>> print_recently_registered_branches(landscape_dev_browser) # noqa
85 <BLANKLINE>85 <BLANKLINE>
86 ...~name12/landscape/feature-x...<span...class="sprite private"...86 ...~name12/landscape/feature-x...<span...class="sprite private"...
87 ...~landscape-developers/landscape/trunk...<span...class="sprite private"...87 ...~landscape-developers/landscape/trunk...<span...class="sprite private"...
@@ -91,7 +91,7 @@ developer.
9191
92Launchpad administrators are able to see all private branches.92Launchpad administrators are able to see all private branches.
9393
94 >>> print_recently_registered_branches(admin_browser)94 >>> print_recently_registered_branches(admin_browser) # noqa
95 <BLANKLINE>95 <BLANKLINE>
96 ...~no-priv/landscape/testing-branch...<span...class="sprite private"...96 ...~no-priv/landscape/testing-branch...<span...class="sprite private"...
97 ...~name12/landscape/feature-x...<span...class="sprite private"...97 ...~name12/landscape/feature-x...<span...class="sprite private"...
diff --git a/lib/lp/code/stories/codeimport/xx-codeimport-view.txt b/lib/lp/code/stories/codeimport/xx-codeimport-view.txt
index 8d36956..aea1b2c 100644
--- a/lib/lp/code/stories/codeimport/xx-codeimport-view.txt
+++ b/lib/lp/code/stories/codeimport/xx-codeimport-view.txt
@@ -88,7 +88,7 @@ imports appear again.
88 >>> table = find_tag_by_id(browser.contents, 'code-import-listing')88 >>> table = find_tag_by_id(browser.contents, 'code-import-listing')
89 >>> rows = [extract_text(tr) for tr in table('tr')]89 >>> rows = [extract_text(tr) for tr in table('tr')]
90 >>> for row in rows:90 >>> for row in rows:
91 ... print(row)91 ... print(row) # noqa
92 Import Created Source type Target type Location Status92 Import Created Source type Target type Location Status
93 ~vcs-imports/gnome-terminal/import 2007-... Subversion via ... Bazaar http://sv... Reviewed93 ~vcs-imports/gnome-terminal/import 2007-... Subversion via ... Bazaar http://sv... Reviewed
94 ~vcs-imports/evolution/import 2007-... Concurrent Vers... Bazaar :pserver:... Pending Review94 ~vcs-imports/evolution/import 2007-... Concurrent Vers... Bazaar :pserver:... Pending Review
@@ -105,7 +105,7 @@ We can also filter by source type.
105 >>> table = find_tag_by_id(browser.contents, 'code-import-listing')105 >>> table = find_tag_by_id(browser.contents, 'code-import-listing')
106 >>> rows = [extract_text(tr) for tr in table('tr')]106 >>> rows = [extract_text(tr) for tr in table('tr')]
107 >>> for row in rows:107 >>> for row in rows:
108 ... print(row)108 ... print(row) # noqa
109 Import Created Source type Target type Location Status109 Import Created Source type Target type Location Status
110 ~vcs-imports/evolution/import 2007-... Concurrent Vers... Bazaar :pserver:... Pending Review110 ~vcs-imports/evolution/import 2007-... Concurrent Vers... Bazaar :pserver:... Pending Review
111111
@@ -120,7 +120,7 @@ We can also filter by source type.
120 >>> table = find_tag_by_id(browser.contents, 'code-import-listing')120 >>> table = find_tag_by_id(browser.contents, 'code-import-listing')
121 >>> rows = [extract_text(tr) for tr in table('tr')]121 >>> rows = [extract_text(tr) for tr in table('tr')]
122 >>> for row in rows:122 >>> for row in rows:
123 ... print(row)123 ... print(row) # noqa
124 Import Created Source type Target type Location Status124 Import Created Source type Target type Location Status
125 ~name12/gnome-terminal/+git/gnome-terminal ... Git Git git://git... Reviewed125 ~name12/gnome-terminal/+git/gnome-terminal ... Git Git git://git... Reviewed
126 ~name12/evolution/+git/evolution ... Git Git https://g... Reviewed126 ~name12/evolution/+git/evolution ... Git Git https://g... Reviewed
diff --git a/lib/lp/code/stories/feeds/xx-branch-atom.txt b/lib/lp/code/stories/feeds/xx-branch-atom.txt
index 45e545c..89baa8e 100644
--- a/lib/lp/code/stories/feeds/xx-branch-atom.txt
+++ b/lib/lp/code/stories/feeds/xx-branch-atom.txt
@@ -234,10 +234,10 @@ own <id>, which in the case of a single branch feed will be identical.
234 ... browser.contents, 'xml', parse_only=SoupStrainer('id'))234 ... browser.contents, 'xml', parse_only=SoupStrainer('id'))
235 >>> ids = parse_ids(browser.contents)235 >>> ids = parse_ids(browser.contents)
236 >>> for id_ in ids:236 >>> for id_ in ids:
237 ... print(id_)237 ... print(id_) # noqa
238 <id>tag:launchpad.net,2006-10-16:/code/~mark/firefox/release--0.9.1</id>238 <id>tag:launchpad.net,2006-10-16:/code/~mark/firefox/release--0.9.1</id>
239 <id>tag:launchpad.net,2005-03-09:/code/~mark/firefox/release--0.9.1/revision/1</id>239 <id>tag:launchpad.net,2005-03-09:/code/~mark/firefox/release--0.9.1/revision/1</id>
240 >>> print_parse_links(browser)240 >>> print_parse_links(browser) # noqa
241 <link href="http://feeds.launchpad.test/~mark/firefox/release--0.9.1/branch.atom" rel="self"/>241 <link href="http://feeds.launchpad.test/~mark/firefox/release--0.9.1/branch.atom" rel="self"/>
242 >>> strainer = SoupStrainer('updated')242 >>> strainer = SoupStrainer('updated')
243 >>> updated_dates = [243 >>> updated_dates = [
diff --git a/lib/lp/code/stories/sourcepackagerecipes/xx-recipe-listings.txt b/lib/lp/code/stories/sourcepackagerecipes/xx-recipe-listings.txt
index a1876cd..60f0624 100644
--- a/lib/lp/code/stories/sourcepackagerecipes/xx-recipe-listings.txt
+++ b/lib/lp/code/stories/sourcepackagerecipes/xx-recipe-listings.txt
@@ -49,7 +49,7 @@ read "3 recipes." Let's click through.
4949
50 >>> nopriv_browser.open(branch_url)50 >>> nopriv_browser.open(branch_url)
51 >>> nopriv_browser.getLink('3 recipes').click()51 >>> nopriv_browser.getLink('3 recipes').click()
52 >>> print(nopriv_browser.url)52 >>> print(nopriv_browser.url) # noqa
53 http://code.launchpad.test/~person-name.../product-name.../branch.../+recipes53 http://code.launchpad.test/~person-name.../product-name.../branch.../+recipes
5454
55The "Base Source" column should not be shown.55The "Base Source" column should not be shown.
@@ -97,7 +97,7 @@ should now read "4 recipes." Let's click through.
9797
98 >>> nopriv_browser.open(repository_url)98 >>> nopriv_browser.open(repository_url)
99 >>> nopriv_browser.getLink('4 recipes').click()99 >>> nopriv_browser.getLink('4 recipes').click()
100 >>> print(nopriv_browser.url)100 >>> print(nopriv_browser.url) # noqa
101 http://code.launchpad.test/~person-name.../product-name.../+git/gitrepository.../+recipes101 http://code.launchpad.test/~person-name.../product-name.../+git/gitrepository.../+recipes
102102
103The "Base Source" column should not be shown.103The "Base Source" column should not be shown.
@@ -124,7 +124,7 @@ listed.
124 >>> with GitHostingFixture():124 >>> with GitHostingFixture():
125 ... nopriv_browser.open(ref1_url)125 ... nopriv_browser.open(ref1_url)
126 >>> nopriv_browser.getLink('2 recipes').click()126 >>> nopriv_browser.getLink('2 recipes').click()
127 >>> print(nopriv_browser.url)127 >>> print(nopriv_browser.url) # noqa
128 http://code.launchpad.test/~person-name.../product-name.../+git/gitrepository.../+ref/a/+recipes128 http://code.launchpad.test/~person-name.../product-name.../+git/gitrepository.../+ref/a/+recipes
129129
130 >>> print_recipe_listing_head(nopriv_browser)130 >>> print_recipe_listing_head(nopriv_browser)
diff --git a/lib/lp/code/stories/webservice/xx-code-import.txt b/lib/lp/code/stories/webservice/xx-code-import.txt
index c8dd559..62a2056 100644
--- a/lib/lp/code/stories/webservice/xx-code-import.txt
+++ b/lib/lp/code/stories/webservice/xx-code-import.txt
@@ -269,7 +269,7 @@ We can create a Git-to-Git import targetting a distribution source package.
269 >>> location = response.getHeader('Location')269 >>> location = response.getHeader('Location')
270 >>> response = import_webservice.get(location)270 >>> response = import_webservice.get(location)
271 >>> representation = response.jsonBody()271 >>> representation = response.jsonBody()
272 >>> print(representation['self_link'])272 >>> print(representation['self_link']) # noqa
273 http://.../~import-owner/scruffbuntu/+source/scruff/+git/new-import/+code-import273 http://.../~import-owner/scruffbuntu/+source/scruff/+git/new-import/+code-import
274 >>> print(representation['branch_link'])274 >>> print(representation['branch_link'])
275 None275 None
diff --git a/lib/lp/registry/browser/tests/distributionmirror-views.txt b/lib/lp/registry/browser/tests/distributionmirror-views.txt
index af16876..987809d 100644
--- a/lib/lp/registry/browser/tests/distributionmirror-views.txt
+++ b/lib/lp/registry/browser/tests/distributionmirror-views.txt
@@ -447,6 +447,7 @@ And which organisation runs a mirror:
447The page contains a source list...447The page contains a source list...
448448
449 >>> print(extract_text(find_tag_by_id(content, 'sources-list-entries')))449 >>> print(extract_text(find_tag_by_id(content, 'sources-list-entries')))
450 ... # noqa
450 deb http://localhost:11375/valid-mirror2/ YOUR_UBUNTU_VERSION_HERE main451 deb http://localhost:11375/valid-mirror2/ YOUR_UBUNTU_VERSION_HERE main
451 deb-src http://localhost:11375/valid-mirror2/ YOUR_UBUNTU_VERSION_HERE main452 deb-src http://localhost:11375/valid-mirror2/ YOUR_UBUNTU_VERSION_HERE main
452453
diff --git a/lib/lp/registry/doc/distribution-mirror.txt b/lib/lp/registry/doc/distribution-mirror.txt
index 1249ad7..062b666 100644
--- a/lib/lp/registry/doc/distribution-mirror.txt
+++ b/lib/lp/registry/doc/distribution-mirror.txt
@@ -569,7 +569,7 @@ checked if that mirror's last sync was in the last one or two days.
569 >>> when = datetime(2005, 9, 17, tzinfo=utc)569 >>> when = datetime(2005, 9, 17, tzinfo=utc)
570 >>> urls = warty_mirror.getURLsToCheckUpdateness(when=when)570 >>> urls = warty_mirror.getURLsToCheckUpdateness(when=when)
571 >>> for (freshness, url) in urls.items():571 >>> for (freshness, url) in urls.items():
572 ... print('%s: %s' % (freshness.name, url))572 ... print('%s: %s' % (freshness.name, url)) # noqa
573 UP: http://foo.bar.com/pub/pool/main/a/alsa-utils/alsa-utils_1.0.9a-4.dsc573 UP: http://foo.bar.com/pub/pool/main/a/alsa-utils/alsa-utils_1.0.9a-4.dsc
574 TWODAYSBEHIND:574 TWODAYSBEHIND:
575 http://foo.bar.com/pub/pool/main/a/alsa-utils/alsa-utils_1.0.8-1ubuntu1.dsc575 http://foo.bar.com/pub/pool/main/a/alsa-utils/alsa-utils_1.0.8-1ubuntu1.dsc
@@ -625,7 +625,7 @@ so we need to skip that upload.
625 >>> when = datetime(2005, 6, 22, tzinfo=utc)625 >>> when = datetime(2005, 6, 22, tzinfo=utc)
626 >>> urls = warty_i386_mirror.getURLsToCheckUpdateness(when=when)626 >>> urls = warty_i386_mirror.getURLsToCheckUpdateness(when=when)
627 >>> for (freshness, url) in urls.items():627 >>> for (freshness, url) in urls.items():
628 ... print('%s: %s' % (freshness.name, url))628 ... print('%s: %s' % (freshness.name, url)) # noqa
629 UP: http://foo.bar.com/pub/pool/main/p/pmount/pmount_1.9-1_all.deb629 UP: http://foo.bar.com/pub/pool/main/p/pmount/pmount_1.9-1_all.deb
630 ONEWEEKBEHIND:630 ONEWEEKBEHIND:
631 http://foo.bar.com/pub/pool/main/m/mozilla-firefox/mozilla-firefox_0.9_i386.deb631 http://foo.bar.com/pub/pool/main/m/mozilla-firefox/mozilla-firefox_0.9_i386.deb
@@ -633,7 +633,7 @@ so we need to skip that upload.
633 >>> when = datetime(2005, 6, 20, 0, 1, tzinfo=utc)633 >>> when = datetime(2005, 6, 20, 0, 1, tzinfo=utc)
634 >>> urls = warty_i386_mirror.getURLsToCheckUpdateness(when=when)634 >>> urls = warty_i386_mirror.getURLsToCheckUpdateness(when=when)
635 >>> for (freshness, url) in urls.items():635 >>> for (freshness, url) in urls.items():
636 ... print('%s: %s' % (freshness.name, url))636 ... print('%s: %s' % (freshness.name, url)) # noqa
637 UP: http://foo.bar.com/pub/pool/main/p/pmount/pmount_1.9-1_all.deb637 UP: http://foo.bar.com/pub/pool/main/p/pmount/pmount_1.9-1_all.deb
638 TWODAYSBEHIND:638 TWODAYSBEHIND:
639 http://foo.bar.com/pub/pool/main/m/mozilla-firefox/mozilla-firefox_0.9_i386.deb639 http://foo.bar.com/pub/pool/main/m/mozilla-firefox/mozilla-firefox_0.9_i386.deb
diff --git a/lib/lp/registry/stories/announcements/xx-announcements.txt b/lib/lp/registry/stories/announcements/xx-announcements.txt
index c683ffe..df2535e 100644
--- a/lib/lp/registry/stories/announcements/xx-announcements.txt
+++ b/lib/lp/registry/stories/announcements/xx-announcements.txt
@@ -741,7 +741,7 @@ let us use a DTD to define the html entities that standard xml is missing.
741 >>> soup = BeautifulSoup(nopriv_browser.contents)741 >>> soup = BeautifulSoup(nopriv_browser.contents)
742 >>> soup.find('feed').entry.title742 >>> soup.find('feed').entry.title
743 <...>Ampersand="&amp;" LessThan="&lt;" GreaterThan="&gt;"</title>743 <...>Ampersand="&amp;" LessThan="&lt;" GreaterThan="&gt;"</title>
744 >>> print(soup.find('feed').entry.content)744 >>> print(soup.find('feed').entry.content) # noqa
745 <...745 <...
746 Ampersand="&amp;amp;"&lt;br/&gt;746 Ampersand="&amp;amp;"&lt;br/&gt;
747 LessThan="&amp;lt;"&lt;br/&gt;747 LessThan="&amp;lt;"&lt;br/&gt;
diff --git a/lib/lp/registry/stories/gpg-coc/xx-gpg-coc.txt b/lib/lp/registry/stories/gpg-coc/xx-gpg-coc.txt
index 275a6bf..f44b232 100644
--- a/lib/lp/registry/stories/gpg-coc/xx-gpg-coc.txt
+++ b/lib/lp/registry/stories/gpg-coc/xx-gpg-coc.txt
@@ -65,7 +65,7 @@ followed by ASCII armored encrypted confirmation instructions. Ensure that
65the clear text instructions contain the expected URLs pointing to more help.65the clear text instructions contain the expected URLs pointing to more help.
6666
67 >>> cipher_body = msg.get_payload(decode=True)67 >>> cipher_body = msg.get_payload(decode=True)
68 >>> print(six.ensure_text(cipher_body))68 >>> print(six.ensure_text(cipher_body)) # noqa
69 Hello,69 Hello,
70 <BLANKLINE>70 <BLANKLINE>
71 This message contains the instructions for confirming registration of an71 This message contains the instructions for confirming registration of an
diff --git a/lib/lp/registry/stories/person/xx-person-rdf.txt b/lib/lp/registry/stories/person/xx-person-rdf.txt
index 701bc98..9aa39d4 100644
--- a/lib/lp/registry/stories/person/xx-person-rdf.txt
+++ b/lib/lp/registry/stories/person/xx-person-rdf.txt
@@ -21,7 +21,7 @@ And this is what the FOAF document for an individual actually looks
21like. It includes GPG information, if the user has any.21like. It includes GPG information, if the user has any.
2222
23 >>> anon_browser.open("http://launchpad.test/~name16/+rdf")23 >>> anon_browser.open("http://launchpad.test/~name16/+rdf")
24 >>> print(anon_browser.contents)24 >>> print(anon_browser.contents) # noqa
25 <?xml version="1.0"...?>25 <?xml version="1.0"...?>
26 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"26 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
27 xmlns:foaf="http://xmlns.com/foaf/0.1/"27 xmlns:foaf="http://xmlns.com/foaf/0.1/"
diff --git a/lib/lp/registry/stories/productrelease/xx-productrelease-delete.txt b/lib/lp/registry/stories/productrelease/xx-productrelease-delete.txt
index f33a780..c352ee3 100644
--- a/lib/lp/registry/stories/productrelease/xx-productrelease-delete.txt
+++ b/lib/lp/registry/stories/productrelease/xx-productrelease-delete.txt
@@ -64,5 +64,6 @@ the milestone is inactive.
6464
65 >>> print(extract_text(65 >>> print(extract_text(
66 ... find_tag_by_id(salgados_browser.contents, 'series-trunk')))66 ... find_tag_by_id(salgados_browser.contents, 'series-trunk')))
67 ... # noqa
67 Version Expected Released Summary68 Version Expected Released Summary
68 Mozilla Firefox 0.9.2... Set date Change details This is an inactive ...69 Mozilla Firefox 0.9.2... Set date Change details This is an inactive ...
diff --git a/lib/lp/services/database/doc/textsearching.txt b/lib/lp/services/database/doc/textsearching.txt
index 72f365e..6aa25a7 100644
--- a/lib/lp/services/database/doc/textsearching.txt
+++ b/lib/lp/services/database/doc/textsearching.txt
@@ -721,6 +721,7 @@ all the terms combined with an & query for each ordinal-1 subset of the terms:
721721
722 >>> print(nl_phrase_search(722 >>> print(nl_phrase_search(
723 ... 'system is slow when running firefox on ubuntu', Question))723 ... 'system is slow when running firefox on ubuntu', Question))
724 ... # noqa
724 (firefox&run&slow&system&ubuntu)|(run&slow&system&ubuntu)|(firefox&slow&system&ubuntu)|(firefox&run&system&ubuntu)|(firefox&run&slow&ubuntu)|(firefox&run&slow&system)725 (firefox&run&slow&system&ubuntu)|(run&slow&system&ubuntu)|(firefox&slow&system&ubuntu)|(firefox&run&system&ubuntu)|(firefox&run&slow&ubuntu)|(firefox&run&slow&system)
725726
726Short queries are expanded more simply:727Short queries are expanded more simply:
diff --git a/lib/lp/services/feeds/stories/xx-links.txt b/lib/lp/services/feeds/stories/xx-links.txt
index 27a2fdf..d50b3dc 100644
--- a/lib/lp/services/feeds/stories/xx-links.txt
+++ b/lib/lp/services/feeds/stories/xx-links.txt
@@ -165,7 +165,7 @@ it must have quotes and html escaped.
165 >>> logout()165 >>> logout()
166 >>> browser.open('http://launchpad.test/bad-displayname')166 >>> browser.open('http://launchpad.test/bad-displayname')
167 >>> soup = BeautifulSoup(browser.contents)167 >>> soup = BeautifulSoup(browser.contents)
168 >>> soup.head.find_all('link', type='application/atom+xml')168 >>> soup.head.find_all('link', type='application/atom+xml') # noqa
169 [<link href="http://feeds.launchpad.test/bad-displayname/announcements.atom"169 [<link href="http://feeds.launchpad.test/bad-displayname/announcements.atom"
170 rel="alternate"170 rel="alternate"
171 title='Announcements for Bad displayname"&gt;&lt;script&gt;alert("h4x0r")&lt;/script&gt;'171 title='Announcements for Bad displayname"&gt;&lt;script&gt;alert("h4x0r")&lt;/script&gt;'
@@ -297,7 +297,7 @@ show a link to the atom feed for that source package's latest bugs.
297297
298 >>> browser.open('http://bugs.launchpad.test/ubuntu/+source/cnews')298 >>> browser.open('http://bugs.launchpad.test/ubuntu/+source/cnews')
299 >>> soup = BeautifulSoup(browser.contents)299 >>> soup = BeautifulSoup(browser.contents)
300 >>> soup.head.find_all('link', type='application/atom+xml')300 >>> soup.head.find_all('link', type='application/atom+xml') # noqa
301 [<link301 [<link
302 href="http://feeds.launchpad.test/ubuntu/+source/cnews/latest-bugs.atom"302 href="http://feeds.launchpad.test/ubuntu/+source/cnews/latest-bugs.atom"
303 rel="alternate" title="Latest Bugs for cnews in Ubuntu"303 rel="alternate" title="Latest Bugs for cnews in Ubuntu"
@@ -367,7 +367,7 @@ atom feed for that branch's revisions.
367 >>> url = 'http://code.launchpad.test/~mark/firefox/release--0.9.1'367 >>> url = 'http://code.launchpad.test/~mark/firefox/release--0.9.1'
368 >>> browser.open(url)368 >>> browser.open(url)
369 >>> soup = BeautifulSoup(browser.contents)369 >>> soup = BeautifulSoup(browser.contents)
370 >>> soup.head.find_all('link', type='application/atom+xml')370 >>> soup.head.find_all('link', type='application/atom+xml') # noqa
371 [<link371 [<link
372 href="http://feeds.launchpad.test/~mark/firefox/release--0.9.1/branch.atom"372 href="http://feeds.launchpad.test/~mark/firefox/release--0.9.1/branch.atom"
373 rel="alternate"373 rel="alternate"
diff --git a/lib/lp/soyuz/browser/tests/archive-views.txt b/lib/lp/soyuz/browser/tests/archive-views.txt
index 69566a0..727b1f5 100644
--- a/lib/lp/soyuz/browser/tests/archive-views.txt
+++ b/lib/lp/soyuz/browser/tests/archive-views.txt
@@ -497,7 +497,7 @@ tags.
497 >>> cprov.archive.description = (497 >>> cprov.archive.description = (
498 ... '<a href="http://example.com/">http://example.com/</a>')498 ... '<a href="http://example.com/">http://example.com/</a>')
499 >>> login(ANONYMOUS)499 >>> login(ANONYMOUS)
500 >>> print(view.archive_description_html.value)500 >>> print(view.archive_description_html.value) # noqa
501 <p>&lt;a href=&quot;http://example.com/&quot;&gt;http://example.com/&lt;/a&gt;</p>501 <p>&lt;a href=&quot;http://example.com/&quot;&gt;http://example.com/&lt;/a&gt;</p>
502502
503The PPA description is linked when the user has made a contribution.503The PPA description is linked when the user has made a contribution.
diff --git a/lib/lp/soyuz/browser/tests/distributionsourcepackagerelease-views.txt b/lib/lp/soyuz/browser/tests/distributionsourcepackagerelease-views.txt
index 90ce8e3..35a7d5f 100644
--- a/lib/lp/soyuz/browser/tests/distributionsourcepackagerelease-views.txt
+++ b/lib/lp/soyuz/browser/tests/distributionsourcepackagerelease-views.txt
@@ -29,7 +29,7 @@ upload encapsulated as `ProxiedSourceLibraryFileAlias` objects. Their
29tofiles allowing them to be downloaded using `dget`.29tofiles allowing them to be downloaded using `dget`.
3030
31 >>> for source_file in dspr_view.files:31 >>> for source_file in dspr_view.files:
32 ... print(source_file.filename, source_file.http_url)32 ... print(source_file.filename, source_file.http_url) # noqa
33 testing-dspr_1.0.dsc33 testing-dspr_1.0.dsc
34 http://.../ubuntutest/+archive/primary/+sourcefiles/testing-dspr/1.0/testing-dspr_1.0.dsc34 http://.../ubuntutest/+archive/primary/+sourcefiles/testing-dspr/1.0/testing-dspr_1.0.dsc
3535
diff --git a/lib/lp/soyuz/browser/tests/publishing-views.txt b/lib/lp/soyuz/browser/tests/publishing-views.txt
index 9e04d21..18b16c8 100644
--- a/lib/lp/soyuz/browser/tests/publishing-views.txt
+++ b/lib/lp/soyuz/browser/tests/publishing-views.txt
@@ -62,7 +62,7 @@ for each file related with the alsa-utils source publication in ubuntu.
6262
63 >>> view = create_initialized_view(alsa_pub, "+listing-archive-detailed")63 >>> view = create_initialized_view(alsa_pub, "+listing-archive-detailed")
6464
65 >>> print(pretty(view.published_source_and_binary_files))65 >>> print(pretty(view.published_source_and_binary_files)) # noqa
66 [{'class': 'source',66 [{'class': 'source',
67 'filename': 'alsa-utils-test_666.dsc',67 'filename': 'alsa-utils-test_666.dsc',
68 'filesize': 28,68 'filesize': 28,
@@ -81,6 +81,7 @@ inspected.
81 ... iceweasel_source_pub, "+listing-archive-detailed")81 ... iceweasel_source_pub, "+listing-archive-detailed")
8282
83 >>> print(pretty(ppa_source_view.published_source_and_binary_files))83 >>> print(pretty(ppa_source_view.published_source_and_binary_files))
84 ... # noqa
84 [{'class': 'source',85 [{'class': 'source',
85 'filename': 'firefox_0.9.2.orig.tar.gz',86 'filename': 'firefox_0.9.2.orig.tar.gz',
86 'filesize': 9922560,87 'filesize': 9922560,
diff --git a/lib/lp/soyuz/browser/tests/sourcepackage-views.txt b/lib/lp/soyuz/browser/tests/sourcepackage-views.txt
index 9697d91..086736a 100644
--- a/lib/lp/soyuz/browser/tests/sourcepackage-views.txt
+++ b/lib/lp/soyuz/browser/tests/sourcepackage-views.txt
@@ -107,7 +107,7 @@ sourcepackagename before passing to regexp.
107107
108 >>> libc = ubuntu.getSourcePackage('libstdc++').getVersion('b8p')108 >>> libc = ubuntu.getSourcePackage('libstdc++').getVersion('b8p')
109 >>> libc_view = queryMultiAdapter((libc, request), name="+changelog")109 >>> libc_view = queryMultiAdapter((libc, request), name="+changelog")
110 >>> print(libc_view.changelog_entry)110 >>> print(libc_view.changelog_entry) # noqa
111 libstdc++ (9.9-1) hoary; urgency=high111 libstdc++ (9.9-1) hoary; urgency=high
112 <BLANKLINE>112 <BLANKLINE>
113 * Placeholder113 * Placeholder
diff --git a/lib/lp/soyuz/doc/gina.txt b/lib/lp/soyuz/doc/gina.txt
index ad2b8fa..1c991ea 100644
--- a/lib/lp/soyuz/doc/gina.txt
+++ b/lib/lp/soyuz/doc/gina.txt
@@ -224,7 +224,9 @@ Check that x11proto-damage has its Build-Depends-Indep value correctly set:
224224
225Check if the changelog message was stored correcly:225Check if the changelog message was stored correcly:
226226
227 >>> print(x11p.changelog_entry) #doctest: -NORMALIZE_WHITESPACE227 >>> print(x11p.changelog_entry)
228 ... # noqa
229 ... # doctest: -NORMALIZE_WHITESPACE
228 x11proto-damage (6.8.99.7-2) breezy; urgency=low230 x11proto-damage (6.8.99.7-2) breezy; urgency=low
229 <BLANKLINE>231 <BLANKLINE>
230 * Add dependency on x11proto-fixes-dev.232 * Add dependency on x11proto-fixes-dev.
@@ -238,6 +240,7 @@ Check if the changelog message was stored correcly:
238Check that the changelog was uploaded to the librarian correctly:240Check that the changelog was uploaded to the librarian correctly:
239241
240 >>> print(six.ensure_text(x11p.changelog.read()))242 >>> print(six.ensure_text(x11p.changelog.read()))
243 ... # noqa
241 x11proto-damage (6.8.99.7-2) breezy; urgency=low244 x11proto-damage (6.8.99.7-2) breezy; urgency=low
242 <BLANKLINE>245 <BLANKLINE>
243 * Add dependency on x11proto-fixes-dev.246 * Add dependency on x11proto-fixes-dev.
diff --git a/lib/lp/soyuz/doc/soyuz-upload.txt b/lib/lp/soyuz/doc/soyuz-upload.txt
index 6f049e9..2b3ff99 100644
--- a/lib/lp/soyuz/doc/soyuz-upload.txt
+++ b/lib/lp/soyuz/doc/soyuz-upload.txt
@@ -500,6 +500,7 @@ required entry for 'etherwake':
500 ... for source in Sources.iter_paragraphs(sources_file):500 ... for source in Sources.iter_paragraphs(sources_file):
501 ... pprint_deb822(source)501 ... pprint_deb822(source)
502 ... print('END')502 ... print('END')
503 ... # noqa
503 Architecture: any504 Architecture: any
504 Binary: etherwake505 Binary: etherwake
505 Build-Depends: debhelper (>> 2.0)506 Build-Depends: debhelper (>> 2.0)
@@ -613,7 +614,9 @@ and SHA256) for each index published.
613 >>> with open("/var/tmp/archive/ubuntutest/dists/"614 >>> with open("/var/tmp/archive/ubuntutest/dists/"
614 ... "breezy-autotest/Release") as f:615 ... "breezy-autotest/Release") as f:
615 ... releasefile_contents = f.read()616 ... releasefile_contents = f.read()
616 >>> print(releasefile_contents + '\nEND') #doctest: -NORMALIZE_WHITESPACE617 >>> print(releasefile_contents + '\nEND')
618 ... # noqa
619 ... # doctest: -NORMALIZE_WHITESPACE
617 Origin: ubuntutest620 Origin: ubuntutest
618 Label: ubuntutest621 Label: ubuntutest
619 Suite: breezy-autotest622 Suite: breezy-autotest
diff --git a/lib/lp/soyuz/stories/distribution/xx-distribution-packages.txt b/lib/lp/soyuz/stories/distribution/xx-distribution-packages.txt
index 345c295..4f30fa7 100644
--- a/lib/lp/soyuz/stories/distribution/xx-distribution-packages.txt
+++ b/lib/lp/soyuz/stories/distribution/xx-distribution-packages.txt
@@ -172,10 +172,10 @@ and open questions the package has.
172172
173Links exist to jump to the query page for the new bugs and open questions.173Links exist to jump to the query page for the new bugs and open questions.
174174
175 >>> print(user_browser.getLink("0 new bugs").url)175 >>> print(user_browser.getLink("0 new bugs").url) # noqa
176 http://bugs.launchpad.test/ubuntu/+source/iceweasel/+bugs?field.status:list=NEW176 http://bugs.launchpad.test/ubuntu/+source/iceweasel/+bugs?field.status:list=NEW
177177
178 >>> print(user_browser.getLink("0 open questions").url)178 >>> print(user_browser.getLink("0 open questions").url) # noqa
179 http://answers.launchpad.test/ubuntu/+source/iceweasel/+questions?field.status=OPEN179 http://answers.launchpad.test/ubuntu/+source/iceweasel/+questions?field.status=OPEN
180180
181The page also has a table that shows the distro series in which the package is181The page also has a table that shows the distro series in which the package is
diff --git a/lib/lp/soyuz/stories/ppa/xx-ppa-files.txt b/lib/lp/soyuz/stories/ppa/xx-ppa-files.txt
index 00fef87..2c734be 100644
--- a/lib/lp/soyuz/stories/ppa/xx-ppa-files.txt
+++ b/lib/lp/soyuz/stories/ppa/xx-ppa-files.txt
@@ -341,7 +341,7 @@ redirect to the files for the default named PPA.
341 >>> print(http(six.ensure_binary(r"""341 >>> print(http(six.ensure_binary(r"""
342 ... GET %s HTTP/1.1342 ... GET %s HTTP/1.1
343 ... """ % file_lp_url_without_ppa_name.replace(343 ... """ % file_lp_url_without_ppa_name.replace(
344 ... 'http://launchpad.test', ''))))344 ... 'http://launchpad.test', '')))) # noqa
345 HTTP/1.1 301 Moved Permanently345 HTTP/1.1 301 Moved Permanently
346 ...346 ...
347 Location: http://localhost/~no-priv/+archive/ubuntu/ppa/+files/test-pkg_1.0.dsc347 Location: http://localhost/~no-priv/+archive/ubuntu/ppa/+files/test-pkg_1.0.dsc
@@ -405,7 +405,7 @@ remains in the PPA page, but it's not a link anymore.
405If by any chance, mostly bookmarked URLs, it gets accessed via the405If by any chance, mostly bookmarked URLs, it gets accessed via the
406LP proxy URL a proper NotFound error is raised.406LP proxy URL a proper NotFound error is raised.
407407
408 >>> print(file_lp_url)408 >>> print(file_lp_url) # noqa
409 http://launchpad.test/~no-priv/+archive/ubuntu/ppa/+sourcefiles/test-pkg/1.0/test-pkg_1.0.dsc409 http://launchpad.test/~no-priv/+archive/ubuntu/ppa/+sourcefiles/test-pkg/1.0/test-pkg_1.0.dsc
410410
411 >>> not_found_file = http(six.ensure_binary(r"""411 >>> not_found_file = http(six.ensure_binary(r"""
diff --git a/lib/lp/soyuz/stories/ppa/xx-ppa-navigation.txt b/lib/lp/soyuz/stories/ppa/xx-ppa-navigation.txt
index 605f805..1fe0292 100644
--- a/lib/lp/soyuz/stories/ppa/xx-ppa-navigation.txt
+++ b/lib/lp/soyuz/stories/ppa/xx-ppa-navigation.txt
@@ -183,6 +183,6 @@ The 'First' and 'Previous' links, however, are now active.
183 >>> anon_browser.getLink('First').url183 >>> anon_browser.getLink('First').url
184 'http://launchpad.test/%7Ecprov/+archive/ubuntu/ppa/+index?batch=1'184 'http://launchpad.test/%7Ecprov/+archive/ubuntu/ppa/+index?batch=1'
185185
186 >>> anon_browser.getLink('Previous').url186 >>> anon_browser.getLink('Previous').url # noqa
187 'http://launchpad.test/%7Ecprov/+archive/ubuntu/ppa/+index?batch=1&direction=backwards&memo=2&start=1'187 'http://launchpad.test/%7Ecprov/+archive/ubuntu/ppa/+index?batch=1&direction=backwards&memo=2&start=1'
188188
diff --git a/lib/lp/soyuz/stories/ppa/xx-ubuntu-ppas.txt b/lib/lp/soyuz/stories/ppa/xx-ubuntu-ppas.txt
index 65cccda..97cf29d 100644
--- a/lib/lp/soyuz/stories/ppa/xx-ubuntu-ppas.txt
+++ b/lib/lp/soyuz/stories/ppa/xx-ubuntu-ppas.txt
@@ -425,7 +425,7 @@ is also included in the statistics portlet.
425Current build activity is linked to the builds page with the relevant425Current build activity is linked to the builds page with the relevant
426filter.426filter.
427427
428 >>> print(anon_browser.getLink('1 package building').url)428 >>> print(anon_browser.getLink('1 package building').url) # noqa
429 http://launchpad.test/~cprov/+archive/ubuntu/ppa/+builds?build_state=building429 http://launchpad.test/~cprov/+archive/ubuntu/ppa/+builds?build_state=building
430430
431431
@@ -594,7 +594,7 @@ The key fingerprint links to the actual key available in the ubuntu
594keyserver.594keyserver.
595595
596 >>> print(anon_browser.getLink(596 >>> print(anon_browser.getLink(
597 ... '1024D/ABCDEF0123456789ABCDDCBA0000111112345678').url)597 ... '1024D/ABCDEF0123456789ABCDDCBA0000111112345678').url) # noqa
598 https://keyserver.ubuntu.com/pks/lookup?fingerprint=on&op=index&search=0xABCDEF0123456789ABCDDCBA0000111112345678598 https://keyserver.ubuntu.com/pks/lookup?fingerprint=on&op=index&search=0xABCDEF0123456789ABCDDCBA0000111112345678
599599
600Using software from a PPA can be hard for novices. We offer two600Using software from a PPA can be hard for novices. We offer two
diff --git a/lib/lp/soyuz/stories/soyuz/xx-build-record.txt b/lib/lp/soyuz/stories/soyuz/xx-build-record.txt
index 9cb475d..33bb61b 100644
--- a/lib/lp/soyuz/stories/soyuz/xx-build-record.txt
+++ b/lib/lp/soyuz/stories/soyuz/xx-build-record.txt
@@ -474,7 +474,7 @@ The 'Build status' section is identical for PPAs.
474 >>> print(anon_browser.getLink('Bob The Builder').url)474 >>> print(anon_browser.getLink('Bob The Builder').url)
475 http://launchpad.test/builders/bob475 http://launchpad.test/builders/bob
476476
477 >>> print(anon_browser.getLink('buildlog').url)477 >>> print(anon_browser.getLink('buildlog').url) # noqa
478 http://launchpad.test/~cprov/+archive/ubuntu/ppa/+build/.../+files/buildlog_...478 http://launchpad.test/~cprov/+archive/ubuntu/ppa/+build/.../+files/buildlog_...
479479
480 >>> print(anon_browser.getLink('ppa-test-bin_1.0_i386.changes').url)480 >>> print(anon_browser.getLink('ppa-test-bin_1.0_i386.changes').url)
diff --git a/lib/lp/soyuz/stories/soyuz/xx-distributionsourcepackagerelease-pages.txt b/lib/lp/soyuz/stories/soyuz/xx-distributionsourcepackagerelease-pages.txt
index b05ef78..14b37d6 100644
--- a/lib/lp/soyuz/stories/soyuz/xx-distributionsourcepackagerelease-pages.txt
+++ b/lib/lp/soyuz/stories/soyuz/xx-distributionsourcepackagerelease-pages.txt
@@ -200,7 +200,7 @@ via `dget`.
200 ac512102db9724bee18f26945efeeb82fdab89819e64e120fbfda755ca50c2c6200 ac512102db9724bee18f26945efeeb82fdab89819e64e120fbfda755ca50c2c6
201 View changes file201 View changes file
202202
203 >>> print(anon_browser.getLink('testing-dspr_1.0.dsc').url)203 >>> print(anon_browser.getLink('testing-dspr_1.0.dsc').url) # noqa
204 http://.../ubuntutest/+archive/primary/+sourcefiles/testing-dspr/1.0/testing-dspr_1.0.dsc204 http://.../ubuntutest/+archive/primary/+sourcefiles/testing-dspr/1.0/testing-dspr_1.0.dsc
205205
206The 'Downloads' section also lists and link to package diffs when they206The 'Downloads' section also lists and link to package diffs when they
diff --git a/lib/lp/soyuz/stories/soyuz/xx-distroarchseries-binpackages.txt b/lib/lp/soyuz/stories/soyuz/xx-distroarchseries-binpackages.txt
index b7648c2..740fce3 100644
--- a/lib/lp/soyuz/stories/soyuz/xx-distroarchseries-binpackages.txt
+++ b/lib/lp/soyuz/stories/soyuz/xx-distroarchseries-binpackages.txt
@@ -25,7 +25,7 @@ This page provides the publishing history of this BinaryPackage within
25this architecture:25this architecture:
2626
27 >>> table = find_tag_by_id(browser.contents, 'publishing-summary')27 >>> table = find_tag_by_id(browser.contents, 'publishing-summary')
28 >>> print(extract_text(table))28 >>> print(extract_text(table)) # noqa
29 Date Status Target Pocket Component Section Priority Phased updates Version29 Date Status Target Pocket Component Section Priority Phased updates Version
30 2006-04-11 13:00:01 UTC Published...Warty i386 release main base Important 1.030 2006-04-11 13:00:01 UTC Published...Warty i386 release main base Important 1.0
31 Published on 2006-04-1131 Published on 2006-04-11
@@ -182,7 +182,7 @@ This page provides the publishing history of this BinaryPackage within
182this architecture:182this architecture:
183183
184 >>> print(extract_text(184 >>> print(extract_text(
185 ... find_tag_by_id(browser.contents, 'publishing-summary')))185 ... find_tag_by_id(browser.contents, 'publishing-summary'))) # noqa
186 Date Status Target Pocket Component Section Priority Phased updates Version186 Date Status Target Pocket Component Section Priority Phased updates Version
187 2007-08-09 21:56:39 UTC Published...B...t i386 release partner devel Optional 1.0-1187 2007-08-09 21:56:39 UTC Published...B...t i386 release partner devel Optional 1.0-1
188 Published on 2007-08-09188 Published on 2007-08-09
@@ -256,6 +256,7 @@ distroseries and archive are shown.
256256
257 >>> print(extract_text(257 >>> print(extract_text(
258 ... find_tag_by_id(anon_browser.contents, 'publishing-summary')))258 ... find_tag_by_id(anon_browser.contents, 'publishing-summary')))
259 ... # noqa
259 Date Status Target Pocket Component Section Priority Phased updates Version260 Date Status Target Pocket Component Section Priority Phased updates Version
260 2007-09-13 ... Superseded...Warty i386 release universe editors Important 0.1-1261 2007-09-13 ... Superseded...Warty i386 release universe editors Important 0.1-1
261 Published on 2006-01-26262 Published on 2006-01-26
diff --git a/lib/lp/soyuz/stories/soyuz/xx-distroseries-sources.txt b/lib/lp/soyuz/stories/soyuz/xx-distroseries-sources.txt
index 2881c1a..1ec9a52 100644
--- a/lib/lp/soyuz/stories/soyuz/xx-distroseries-sources.txt
+++ b/lib/lp/soyuz/stories/soyuz/xx-distroseries-sources.txt
@@ -44,7 +44,7 @@ about Firefox's publishing history.
4444
45 >>> browser.getLink("View full publishing history").click()45 >>> browser.getLink("View full publishing history").click()
46 >>> table = find_tag_by_id(browser.contents, 'publishing-summary')46 >>> table = find_tag_by_id(browser.contents, 'publishing-summary')
47 >>> print(extract_text(table))47 >>> print(extract_text(table)) # noqa
48 Date Status Target Pocket Component Section Version48 Date Status Target Pocket Component Section Version
49 2006-02-13 12:19:00 UTC Published Warty release main web 0.949 2006-02-13 12:19:00 UTC Published Warty release main web 0.9
50 Published on 2006-02-1350 Published on 2006-02-13
@@ -89,7 +89,7 @@ published version) if they are available:
89 File Size SHA-256 Checksum89 File Size SHA-256 Checksum
90 firefox_0.9.2.orig.tar.gz 9.5 MiB ...90 firefox_0.9.2.orig.tar.gz 9.5 MiB ...
9191
92 >>> print(browser.getLink("firefox_0.9.2.orig.tar.gz").url)92 >>> print(browser.getLink("firefox_0.9.2.orig.tar.gz").url) # noqa
93 http://launchpad.test/ubuntu/+archive/primary/+sourcefiles/mozilla-firefox/0.9/firefox_0.9.2.orig.tar.gz93 http://launchpad.test/ubuntu/+archive/primary/+sourcefiles/mozilla-firefox/0.9/firefox_0.9.2.orig.tar.gz
9494
95This page also provides links to the binary packages generated by this95This page also provides links to the binary packages generated by this
@@ -286,7 +286,7 @@ And also download the files contained in this source, like '.orig',
286 File Size SHA-256 Checksum286 File Size SHA-256 Checksum
287 firefox_0.9.2.orig.tar.gz 9.5 MiB ...287 firefox_0.9.2.orig.tar.gz 9.5 MiB ...
288288
289 >>> print(browser.getLink("firefox_0.9.2.orig.tar.gz").url)289 >>> print(browser.getLink("firefox_0.9.2.orig.tar.gz").url) # noqa
290 http://launchpad.test/ubuntu/+archive/primary/+sourcefiles/mozilla-firefox/0.9/firefox_0.9.2.orig.tar.gz290 http://launchpad.test/ubuntu/+archive/primary/+sourcefiles/mozilla-firefox/0.9/firefox_0.9.2.orig.tar.gz
291291
292If we go to the same page for alsa-utils, the changelog has text that is292If we go to the same page for alsa-utils, the changelog has text that is
@@ -355,10 +355,11 @@ published version) if they are available:
355 commercialpackage_1.0-1.dsc 567 bytes ...355 commercialpackage_1.0-1.dsc 567 bytes ...
356356
357 >>> print(browser.getLink("commercialpackage_1.0.orig.tar.gz").url)357 >>> print(browser.getLink("commercialpackage_1.0.orig.tar.gz").url)
358 ... # noqa
358 http://launchpad.test/ubuntu/+archive/partner/+sourcefiles/commercialpackage/1.0-1/commercialpackage_1.0.orig.tar.gz359 http://launchpad.test/ubuntu/+archive/partner/+sourcefiles/commercialpackage/1.0-1/commercialpackage_1.0.orig.tar.gz
359 >>> print(browser.getLink("commercialpackage_1.0-1.diff.gz").url)360 >>> print(browser.getLink("commercialpackage_1.0-1.diff.gz").url) # noqa
360 http://launchpad.test/ubuntu/+archive/partner/+sourcefiles/commercialpackage/1.0-1/commercialpackage_1.0-1.diff.gz361 http://launchpad.test/ubuntu/+archive/partner/+sourcefiles/commercialpackage/1.0-1/commercialpackage_1.0-1.diff.gz
361 >>> print(browser.getLink("commercialpackage_1.0-1.dsc").url)362 >>> print(browser.getLink("commercialpackage_1.0-1.dsc").url) # noqa
362 http://launchpad.test/ubuntu/+archive/partner/+sourcefiles/commercialpackage/1.0-1/commercialpackage_1.0-1.dsc363 http://launchpad.test/ubuntu/+archive/partner/+sourcefiles/commercialpackage/1.0-1/commercialpackage_1.0-1.dsc
363364
364This page also provides links to the binary packages generated by this365This page also provides links to the binary packages generated by this
@@ -392,7 +393,7 @@ The text is generated automatically by appending:
392for each published version.393for each published version.
393394
394 >>> browser.getLink("View changelog").click()395 >>> browser.getLink("View changelog").click()
395 >>> browser.url396 >>> browser.url # noqa
396 'http://launchpad.test/ubuntu/breezy-autotest/+source/commercialpackage/+changelog'397 'http://launchpad.test/ubuntu/breezy-autotest/+source/commercialpackage/+changelog'
397398
398 >>> tag = find_tag_by_id(browser.contents, 'commercialpackage_1.0-1')399 >>> tag = find_tag_by_id(browser.contents, 'commercialpackage_1.0-1')
@@ -435,10 +436,11 @@ And also download the files contained in this source, like '.orig',
435 commercialpackage_1.0-1.dsc 567 bytes ...436 commercialpackage_1.0-1.dsc 567 bytes ...
436437
437 >>> print(browser.getLink("commercialpackage_1.0.orig.tar.gz").url)438 >>> print(browser.getLink("commercialpackage_1.0.orig.tar.gz").url)
439 ... # noqa
438 http://launchpad.test/ubuntu/+archive/partner/+sourcefiles/commercialpackage/1.0-1/commercialpackage_1.0.orig.tar.gz440 http://launchpad.test/ubuntu/+archive/partner/+sourcefiles/commercialpackage/1.0-1/commercialpackage_1.0.orig.tar.gz
439 >>> print(browser.getLink("commercialpackage_1.0-1.diff.gz").url)441 >>> print(browser.getLink("commercialpackage_1.0-1.diff.gz").url) # noqa
440 http://launchpad.test/ubuntu/+archive/partner/+sourcefiles/commercialpackage/1.0-1/commercialpackage_1.0-1.diff.gz442 http://launchpad.test/ubuntu/+archive/partner/+sourcefiles/commercialpackage/1.0-1/commercialpackage_1.0-1.diff.gz
441 >>> print(browser.getLink("commercialpackage_1.0-1.dsc").url)443 >>> print(browser.getLink("commercialpackage_1.0-1.dsc").url) # noqa
442 http://launchpad.test/ubuntu/+archive/partner/+sourcefiles/commercialpackage/1.0-1/commercialpackage_1.0-1.dsc444 http://launchpad.test/ubuntu/+archive/partner/+sourcefiles/commercialpackage/1.0-1/commercialpackage_1.0-1.dsc
443445
444446
@@ -459,6 +461,7 @@ distroseries and archive are shown.
459461
460 >>> print(extract_text(462 >>> print(extract_text(
461 ... find_tag_by_id(anon_browser.contents, 'publishing-summary')))463 ... find_tag_by_id(anon_browser.contents, 'publishing-summary')))
464 ... # noqa
462 Date Status Target Pocket Component Section Version465 Date Status Target Pocket Component Section Version
463 2006-02-15 ... Pending Warty release main editors 1.0.9a-4ubuntu1466 2006-02-15 ... Pending Warty release main editors 1.0.9a-4ubuntu1
464 Copied from ubuntu hoary in Primary Archive for Ubuntu Linux467 Copied from ubuntu hoary in Primary Archive for Ubuntu Linux
diff --git a/lib/lp/soyuz/stories/soyuz/xx-packagepublishinghistory.txt b/lib/lp/soyuz/stories/soyuz/xx-packagepublishinghistory.txt
index dd60f1c..c12fa2d 100644
--- a/lib/lp/soyuz/stories/soyuz/xx-packagepublishinghistory.txt
+++ b/lib/lp/soyuz/stories/soyuz/xx-packagepublishinghistory.txt
@@ -51,7 +51,7 @@ intermediate archive information.
51 ... '+publishinghistory' % new_distro.name)51 ... '+publishinghistory' % new_distro.name)
5252
53 >>> table = find_tag_by_id(anon_browser.contents, 'publishing-summary')53 >>> table = find_tag_by_id(anon_browser.contents, 'publishing-summary')
54 >>> print(extract_text(table))54 >>> print(extract_text(table)) # noqa
55 Date Status Target Pocket Component Section Version55 Date Status Target Pocket Component Section Version
56 ... UTC Pending Foo-series release main base 66656 ... UTC Pending Foo-series release main base 666
57 Copied from ubuntutest breezy-autotest in Primary Archive for Ubuntu Test by Person12357 Copied from ubuntutest breezy-autotest in Primary Archive for Ubuntu Test by Person123
@@ -79,7 +79,7 @@ original distribution was Ubuntutest breezy-autotest.
79 ... 'http://launchpad.test/%s/+source/test-history/'79 ... 'http://launchpad.test/%s/+source/test-history/'
80 ... '+publishinghistory' % new_distro.name)80 ... '+publishinghistory' % new_distro.name)
81 >>> table = find_tag_by_id(anon_browser.contents, 'publishing-summary')81 >>> table = find_tag_by_id(anon_browser.contents, 'publishing-summary')
82 >>> print(extract_text(table))82 >>> print(extract_text(table)) # noqa
83 Date Status Target Pocket Component Section Version83 Date Status Target Pocket Component Section Version
84 ... UTC Pending Another-series release main base 66684 ... UTC Pending Another-series release main base 666
85 Copied from Primary Archive for Foo-distro by Person12385 Copied from Primary Archive for Foo-distro by Person123
@@ -101,7 +101,7 @@ messages.
101 ... 'http://launchpad.test/%s/+source/test-history/'101 ... 'http://launchpad.test/%s/+source/test-history/'
102 ... '+publishinghistory' % new_distro.name)102 ... '+publishinghistory' % new_distro.name)
103 >>> table = find_tag_by_id(anon_browser.contents, 'publishing-summary')103 >>> table = find_tag_by_id(anon_browser.contents, 'publishing-summary')
104 >>> print(extract_text(table))104 >>> print(extract_text(table)) # noqa
105 Date Status Target Pocket Component Section Version105 Date Status Target Pocket Component Section Version
106 ... UTC Pending Another-series release universe base 666106 ... UTC Pending Another-series release universe base 666
107 Copied from ubuntutest breezy-autotest in Primary Archive for Ubuntu Test by Foo Bar107 Copied from ubuntutest breezy-autotest in Primary Archive for Ubuntu Test by Foo Bar
@@ -176,8 +176,7 @@ distro-arch-series-binarypackage page.
176176
177 >>> anon_browser.open(url)177 >>> anon_browser.open(url)
178 >>> table = find_tag_by_id(anon_browser.contents, 'publishing-summary')178 >>> table = find_tag_by_id(anon_browser.contents, 'publishing-summary')
179 >>> print(extract_text(table))179 >>> print(extract_text(table)) # noqa
180 Date Status Target Pocket Component Section Priority Phased updates Version180 Date Status Target Pocket Component Section Priority Phased updates Version
181 ... UTC Pending ubuntutest Breezy ... release main base Standard 666181 ... UTC Pending ubuntutest Breezy ... release main base Standard 666
182 Copied from ubuntutest breezy-autotest-release i386 in Primary Archive for Ubuntu Test182 Copied from ubuntutest breezy-autotest-release i386 in Primary Archive for Ubuntu Test
183
diff --git a/lib/lp/soyuz/stories/soyuz/xx-queue-pages-motu.txt b/lib/lp/soyuz/stories/soyuz/xx-queue-pages-motu.txt
index 6824527..ad0257f 100644
--- a/lib/lp/soyuz/stories/soyuz/xx-queue-pages-motu.txt
+++ b/lib/lp/soyuz/stories/soyuz/xx-queue-pages-motu.txt
@@ -39,7 +39,7 @@ component:
39 >>> motu_browser.open(39 >>> motu_browser.open(
40 ... "http://launchpad.test/ubuntu/breezy-autotest/")40 ... "http://launchpad.test/ubuntu/breezy-autotest/")
41 >>> motu_browser.getLink("All uploads").click()41 >>> motu_browser.getLink("All uploads").click()
42 >>> print_queue(motu_browser.contents)42 >>> print_queue(motu_browser.contents) # noqa
43 Package Version Component Section Priority Sets Pocket When43 Package Version Component Section Priority Sets Pocket When
44 netapplet...ddtp... - Release 2006...44 netapplet...ddtp... - Release 2006...
45 netapplet...dist... - Release 2006...45 netapplet...dist... - Release 2006...
diff --git a/lib/lp/soyuz/stories/soyuz/xx-queue-pages.txt b/lib/lp/soyuz/stories/soyuz/xx-queue-pages.txt
index 00d8cca..7b8a8f2 100644
--- a/lib/lp/soyuz/stories/soyuz/xx-queue-pages.txt
+++ b/lib/lp/soyuz/stories/soyuz/xx-queue-pages.txt
@@ -66,7 +66,7 @@ Viewing the current queue, by default the NEW queue.
66 ... for row in queue_rows:66 ... for row in queue_rows:
67 ... print(extract_text(row))67 ... print(extract_text(row))
6868
69 >>> print_queue(anon_browser.contents)69 >>> print_queue(anon_browser.contents) # noqa
70 Package Version Component Section Priority Sets Pocket When70 Package Version Component Section Priority Sets Pocket When
71 netapplet...ddtp... - Release 2006-...71 netapplet...ddtp... - Release 2006-...
72 netapplet...dist... - Release 2006-...72 netapplet...dist... - Release 2006-...
@@ -96,7 +96,7 @@ UNAPPROVED one.
96 >>> anon_browser.getControl(96 >>> anon_browser.getControl(
97 ... name="queue_state", index=0).displayValue = ['Unapproved']97 ... name="queue_state", index=0).displayValue = ['Unapproved']
98 >>> anon_browser.getControl("Update").click()98 >>> anon_browser.getControl("Update").click()
99 >>> print_queue(anon_browser.contents)99 >>> print_queue(anon_browser.contents) # noqa
100 Package Version Component Section Priority Sets Pocket When100 Package Version Component Section Priority Sets Pocket When
101 lang...-de (source) 1.0 main trans... low Proposed 2007-...101 lang...-de (source) 1.0 main trans... low Proposed 2007-...
102 netapplet...ddtp... - Backp... 2006-...102 netapplet...ddtp... - Backp... 2006-...
@@ -109,13 +109,13 @@ custom-upload filename.
109109
110 >>> anon_browser.getControl(name="queue_text").value = 'language'110 >>> anon_browser.getControl(name="queue_text").value = 'language'
111 >>> anon_browser.getControl("Update").click()111 >>> anon_browser.getControl("Update").click()
112 >>> print_queue(anon_browser.contents)112 >>> print_queue(anon_browser.contents) # noqa
113 Package Version Component Section Priority Sets Pocket When113 Package Version Component Section Priority Sets Pocket When
114 lang...-de (source) 1.0 main trans... low Proposed 2007-...114 lang...-de (source) 1.0 main trans... low Proposed 2007-...
115115
116 >>> anon_browser.getControl(name="queue_text").value = 'netapplet'116 >>> anon_browser.getControl(name="queue_text").value = 'netapplet'
117 >>> anon_browser.getControl("Update").click()117 >>> anon_browser.getControl("Update").click()
118 >>> print_queue(anon_browser.contents)118 >>> print_queue(anon_browser.contents) # noqa
119 Package Version Component Section Priority Sets Pocket When119 Package Version Component Section Priority Sets Pocket When
120 netapplet...ddtp... - Backp... 2006-...120 netapplet...ddtp... - Backp... 2006-...
121 netapplet...(raw-translations) - Updates 2006-...121 netapplet...(raw-translations) - Updates 2006-...
@@ -124,7 +124,7 @@ custom-upload filename.
124 ... name="queue_state", index=0).displayValue = ['New']124 ... name="queue_state", index=0).displayValue = ['New']
125 >>> anon_browser.getControl(name="queue_text").value = 'pmount'125 >>> anon_browser.getControl(name="queue_text").value = 'pmount'
126 >>> anon_browser.getControl("Update").click()126 >>> anon_browser.getControl("Update").click()
127 >>> print_queue(anon_browser.contents)127 >>> print_queue(anon_browser.contents) # noqa
128 Package Version Component Section Priority Sets Pocket When128 Package Version Component Section Priority Sets Pocket When
129 pmount (i386) 0.1-1 Release 2006-...129 pmount (i386) 0.1-1 Release 2006-...
130130
@@ -156,7 +156,7 @@ Package sets from other series are not shown.
156 ... name="queue_state", index=0).displayValue = ['New']156 ... name="queue_state", index=0).displayValue = ['New']
157 >>> anon_browser.getControl(name="queue_text").value = ''157 >>> anon_browser.getControl(name="queue_text").value = ''
158 >>> anon_browser.getControl("Update").click()158 >>> anon_browser.getControl("Update").click()
159 >>> print_queue(anon_browser.contents)159 >>> print_queue(anon_browser.contents) # noqa
160 Package Version Component Section Priority Sets Pocket When160 Package Version Component Section Priority Sets Pocket When
161 netapplet...ddtp... - Release 2006-...161 netapplet...ddtp... - Release 2006-...
162 netapplet...dist... - Release 2006-...162 netapplet...dist... - Release 2006-...
@@ -336,7 +336,7 @@ Go back to the "new" queue and accept "bar":
336336
337 >>> upload_manager_browser.open(337 >>> upload_manager_browser.open(
338 ... "http://localhost/ubuntu/breezy-autotest/+queue")338 ... "http://localhost/ubuntu/breezy-autotest/+queue")
339 >>> print_queue(upload_manager_browser.contents)339 >>> print_queue(upload_manager_browser.contents) # noqa
340 Package Version Component Section Priority Sets Pocket When340 Package Version Component Section Priority Sets Pocket When
341 bar (source) 1.0-1 universe devel low Release ...341 bar (source) 1.0-1 universe devel low Release ...
342 netapplet...ddtp... - Release 2006-...342 netapplet...ddtp... - Release 2006-...
@@ -349,7 +349,7 @@ Go back to the "new" queue and accept "bar":
349 >>> upload_manager_browser.getControl(349 >>> upload_manager_browser.getControl(
350 ... name="QUEUE_ID").value = [str(bar_queue_id)]350 ... name="QUEUE_ID").value = [str(bar_queue_id)]
351 >>> upload_manager_browser.getControl(name="Accept").click()351 >>> upload_manager_browser.getControl(name="Accept").click()
352 >>> print_queue(upload_manager_browser.contents)352 >>> print_queue(upload_manager_browser.contents) # noqa
353 Package Version Component Section Priority Sets Pocket When353 Package Version Component Section Priority Sets Pocket When
354 netapplet...ddtp... - Release 2006-...354 netapplet...ddtp... - Release 2006-...
355 netapplet...dist... - Release 2006-...355 netapplet...dist... - Release 2006-...
@@ -404,7 +404,7 @@ The item is moved to the ACCEPTED queue:
404 >>> upload_manager_browser.getControl(404 >>> upload_manager_browser.getControl(
405 ... name="queue_state", index=0).displayValue = ['Accepted']405 ... name="queue_state", index=0).displayValue = ['Accepted']
406 >>> upload_manager_browser.getControl("Update").click()406 >>> upload_manager_browser.getControl("Update").click()
407 >>> print_queue(upload_manager_browser.contents)407 >>> print_queue(upload_manager_browser.contents) # noqa
408 Package Version Component Section Priority Sets Pocket When408 Package Version Component Section Priority Sets Pocket When
409 moz...irefox (i386) 0.9 Release 2006-...409 moz...irefox (i386) 0.9 Release 2006-...
410410
@@ -413,7 +413,7 @@ Going back to the "new" queue, we can see our item has gone:
413 >>> upload_manager_browser.getControl(413 >>> upload_manager_browser.getControl(
414 ... name="queue_state", index=0).displayValue = ['New']414 ... name="queue_state", index=0).displayValue = ['New']
415 >>> upload_manager_browser.getControl("Update").click()415 >>> upload_manager_browser.getControl("Update").click()
416 >>> print_queue(upload_manager_browser.contents)416 >>> print_queue(upload_manager_browser.contents) # noqa
417 Package Version Component Section Priority Sets Pocket When417 Package Version Component Section Priority Sets Pocket When
418 netapplet...ddtp... - Release 2006-...418 netapplet...ddtp... - Release 2006-...
419 netapplet...dist... - Release 2006-...419 netapplet...dist... - Release 2006-...
@@ -488,7 +488,7 @@ overridden:
488 OK: netapplet(restricted/admin)488 OK: netapplet(restricted/admin)
489 OK: pmount(restricted/admin/extra)489 OK: pmount(restricted/admin/extra)
490490
491 >>> print_queue(upload_manager_browser.contents)491 >>> print_queue(upload_manager_browser.contents) # noqa
492 Package Version Component Section Priority Sets Pocket When492 Package Version Component Section Priority Sets Pocket When
493 netapplet...ddtp... - Release 2006-...493 netapplet...ddtp... - Release 2006-...
494 netapplet...dist... - Release 2006-...494 netapplet...dist... - Release 2006-...
@@ -500,7 +500,7 @@ overridden values.
500 >>> anon_browser.getControl(500 >>> anon_browser.getControl(
501 ... name="queue_state", index=0).displayValue=['Accepted']501 ... name="queue_state", index=0).displayValue=['Accepted']
502 >>> anon_browser.getControl("Update").click()502 >>> anon_browser.getControl("Update").click()
503 >>> print_queue(anon_browser.contents)503 >>> print_queue(anon_browser.contents) # noqa
504 Package Version Component Section Priority Sets Pocket When504 Package Version Component Section Priority Sets Pocket When
505 pmount (i386) 0.1-1 Release 2006-...505 pmount (i386) 0.1-1 Release 2006-...
506 ...506 ...
@@ -520,7 +520,7 @@ source upload, and we can see its overridden values there:
520 >>> anon_browser.getControl(520 >>> anon_browser.getControl(
521 ... name="queue_state", index=0).displayValue=['Done']521 ... name="queue_state", index=0).displayValue=['Done']
522 >>> anon_browser.getControl("Update").click()522 >>> anon_browser.getControl("Update").click()
523 >>> print_queue(anon_browser.contents)523 >>> print_queue(anon_browser.contents) # noqa
524 Package Version Component Section Priority Sets Pocket When524 Package Version Component Section Priority Sets Pocket When
525 ...525 ...
526 netapplet (source) 0.99.6-1 restricted admin low ...526 netapplet (source) 0.99.6-1 restricted admin low ...
@@ -543,7 +543,7 @@ Rejecting 'alsa-utils' source:
543 >>> print_feedback_messages(upload_manager_browser.contents)543 >>> print_feedback_messages(upload_manager_browser.contents)
544 OK: alsa-utils544 OK: alsa-utils
545545
546 >>> print_queue(upload_manager_browser.contents)546 >>> print_queue(upload_manager_browser.contents) # noqa
547 Package Version Component Section Priority Sets Pocket When547 Package Version Component Section Priority Sets Pocket When
548 netapplet...ddtp... - Release 2006-...548 netapplet...ddtp... - Release 2006-...
549 netapplet...dist... - Release 2006-...549 netapplet...dist... - Release 2006-...
diff --git a/lib/lp/soyuz/stories/soyuz/xx-sourcepackage-changelog.txt b/lib/lp/soyuz/stories/soyuz/xx-sourcepackage-changelog.txt
index a78f610..2a50743 100644
--- a/lib/lp/soyuz/stories/soyuz/xx-sourcepackage-changelog.txt
+++ b/lib/lp/soyuz/stories/soyuz/xx-sourcepackage-changelog.txt
@@ -73,7 +73,7 @@ bots from picking them up):
73 >>> anon_browser.open(73 >>> anon_browser.open(
74 ... "http://launchpad.test/ubuntu/hoary/+source/alsa-utils/"74 ... "http://launchpad.test/ubuntu/hoary/+source/alsa-utils/"
75 ... "+changelog")75 ... "+changelog")
76 >>> print(extract_text(find_main_content(anon_browser.contents)))76 >>> print(extract_text(find_main_content(anon_browser.contents))) # noqa
77 Change logs for ...alsa-utils... in Hoary77 Change logs for ...alsa-utils... in Hoary
78 ...78 ...
79 -- Sample Person &lt;email address hidden&gt; Tue, 7 Feb 2006 12:10:08 +030079 -- Sample Person &lt;email address hidden&gt; Tue, 7 Feb 2006 12:10:08 +0300
diff --git a/lib/lp/soyuz/stories/webservice/xx-archive.txt b/lib/lp/soyuz/stories/webservice/xx-archive.txt
index 42cb4a3..47006ac 100644
--- a/lib/lp/soyuz/stories/webservice/xx-archive.txt
+++ b/lib/lp/soyuz/stories/webservice/xx-archive.txt
@@ -176,7 +176,7 @@ This is a permission that allows a team to upload to a component:
176 >>> url = ('/ubuntu/+archive/primary/+upload/ubuntu-team'176 >>> url = ('/ubuntu/+archive/primary/+upload/ubuntu-team'
177 ... '?type=component&item=main')177 ... '?type=component&item=main')
178 >>> ubuntu_main_permission = webservice.get(url).jsonBody()178 >>> ubuntu_main_permission = webservice.get(url).jsonBody()
179 >>> pprint_entry(ubuntu_main_permission)179 >>> pprint_entry(ubuntu_main_permission) # noqa
180 archive_link: 'http://.../ubuntu/+archive/primary'180 archive_link: 'http://.../ubuntu/+archive/primary'
181 component_name: 'main'181 component_name: 'main'
182 date_created: ...182 date_created: ...
@@ -192,7 +192,7 @@ This is a permission that allows an individual to upload a source package.
192 >>> url = ('/ubuntu/+archive/primary/+upload/carlos'192 >>> url = ('/ubuntu/+archive/primary/+upload/carlos'
193 ... '?type=packagename&item=mozilla-firefox')193 ... '?type=packagename&item=mozilla-firefox')
194 >>> carlos_mozilla_permission = webservice.get(url).jsonBody()194 >>> carlos_mozilla_permission = webservice.get(url).jsonBody()
195 >>> pprint_entry(carlos_mozilla_permission)195 >>> pprint_entry(carlos_mozilla_permission) # noqa
196 archive_link: 'http://.../ubuntu/+archive/primary'196 archive_link: 'http://.../ubuntu/+archive/primary'
197 component_name: None197 component_name: None
198 date_created: ...198 date_created: ...
@@ -209,7 +209,7 @@ This is a queue admin right for ubuntu-team:
209 >>> url = ('/ubuntu/+archive/primary/+queue-admin/ubuntu-team'209 >>> url = ('/ubuntu/+archive/primary/+queue-admin/ubuntu-team'
210 ... '?type=component&item=main')210 ... '?type=component&item=main')
211 >>> ubuntu_main_permission = webservice.get(url).jsonBody()211 >>> ubuntu_main_permission = webservice.get(url).jsonBody()
212 >>> pprint_entry(ubuntu_main_permission)212 >>> pprint_entry(ubuntu_main_permission) # noqa
213 archive_link: 'http://.../ubuntu/+archive/primary'213 archive_link: 'http://.../ubuntu/+archive/primary'
214 component_name: 'main'214 component_name: 'main'
215 date_created: ...215 date_created: ...
@@ -226,7 +226,7 @@ And one for an individual:
226 >>> url = ('/ubuntu/+archive/primary/+queue-admin/name12'226 >>> url = ('/ubuntu/+archive/primary/+queue-admin/name12'
227 ... '?type=component&item=universe')227 ... '?type=component&item=universe')
228 >>> name16_admin_permission = webservice.get(url).jsonBody()228 >>> name16_admin_permission = webservice.get(url).jsonBody()
229 >>> pprint_entry(name16_admin_permission)229 >>> pprint_entry(name16_admin_permission) # noqa
230 archive_link: 'http://.../ubuntu/+archive/primary'230 archive_link: 'http://.../ubuntu/+archive/primary'
231 component_name: 'universe'231 component_name: 'universe'
232 date_created: ...232 date_created: ...
@@ -273,7 +273,7 @@ archive. First, define some general helper functions.
273 ... api_version='devel').jsonBody()273 ... api_version='devel').jsonBody()
274 ... show_permission_entries(permissions)274 ... show_permission_entries(permissions)
275275
276 >>> show_all_permissions(ubuntu_devel['main_archive_link'])276 >>> show_all_permissions(ubuntu_devel['main_archive_link']) # noqa
277 Archive Upload Rights ...~carlos None mozilla-firefox None None277 Archive Upload Rights ...~carlos None mozilla-firefox None None
278 Archive Upload Rights ...~ubuntu-team main None None None278 Archive Upload Rights ...~ubuntu-team main None None None
279 Archive Upload Rights ...~ubuntu-team restricted None None None279 Archive Upload Rights ...~ubuntu-team restricted None None None
@@ -407,7 +407,7 @@ for a person to upload a package.
407407
408 >>> new_permission = user_webservice.get(408 >>> new_permission = user_webservice.get(
409 ... response.getHeader('Location')).jsonBody()409 ... response.getHeader('Location')).jsonBody()
410 >>> print(new_permission['self_link'])410 >>> print(new_permission['self_link']) # noqa
411 http://.../ubuntu/+archive/primary/+upload/name12?type=packagename&item=mozilla-firefox411 http://.../ubuntu/+archive/primary/+upload/name12?type=packagename&item=mozilla-firefox
412412
413 >>> show_mozilla_permissions()413 >>> show_mozilla_permissions()
@@ -468,7 +468,7 @@ component.
468468
469 >>> new_permission = user_webservice.get(469 >>> new_permission = user_webservice.get(
470 ... response.getHeader('Location')).jsonBody()470 ... response.getHeader('Location')).jsonBody()
471 >>> print(new_permission['self_link'])471 >>> print(new_permission['self_link']) # noqa
472 http://.../ubuntu/+archive/primary/+upload/name12?type=component&item=restricted472 http://.../ubuntu/+archive/primary/+upload/name12?type=component&item=restricted
473473
474 >>> show_component_permissions()474 >>> show_component_permissions()
@@ -599,7 +599,7 @@ queues in a particular component.
599599
600 >>> new_permission = ubuntu_owner_webservice.get(600 >>> new_permission = ubuntu_owner_webservice.get(
601 ... response.getHeader('Location')).jsonBody()601 ... response.getHeader('Location')).jsonBody()
602 >>> print(new_permission['self_link'])602 >>> print(new_permission['self_link']) # noqa
603 http://.../ubuntu/+archive/primary/+queue-admin/name12?type=component&item=partner603 http://.../ubuntu/+archive/primary/+queue-admin/name12?type=component&item=partner
604604
605 >>> show_components_for_admin(name12)605 >>> show_components_for_admin(name12)
@@ -658,7 +658,7 @@ newPocketUploader adds a new permission for a person to upload to a pocket.
658658
659 >>> new_permission = user_webservice.get(659 >>> new_permission = user_webservice.get(
660 ... response.getHeader('Location')).jsonBody()660 ... response.getHeader('Location')).jsonBody()
661 >>> print(new_permission['self_link'])661 >>> print(new_permission['self_link']) # noqa
662 http://.../ubuntu/+archive/primary/+upload/name12?type=pocket&item=PROPOSED662 http://.../ubuntu/+archive/primary/+upload/name12?type=pocket&item=PROPOSED
663663
664 >>> show_pocket_permissions('Proposed')664 >>> show_pocket_permissions('Proposed')
@@ -737,7 +737,7 @@ distroseries queues in a particular pocket.
737737
738 >>> new_permission = ubuntu_owner_webservice.get(738 >>> new_permission = ubuntu_owner_webservice.get(
739 ... response.getHeader('Location')).jsonBody()739 ... response.getHeader('Location')).jsonBody()
740 >>> print(new_permission['self_link'])740 >>> print(new_permission['self_link']) # noqa
741 http://.../ubuntu/+archive/primary/+queue-admin/name12?type=pocket&item=SECURITY741 http://.../ubuntu/+archive/primary/+queue-admin/name12?type=pocket&item=SECURITY
742742
743 >>> show_pockets_for_admin(name12)743 >>> show_pockets_for_admin(name12)
@@ -762,9 +762,9 @@ It can also grant series-specific pocket queue admin permissions.
762 HTTP/1.1 201 Created762 HTTP/1.1 201 Created
763 ...763 ...
764764
765 >>> print(new_permissions[0]['self_link'])765 >>> print(new_permissions[0]['self_link']) # noqa
766 http://.../ubuntu/+archive/primary/+queue-admin/ubuntu-owner?type=pocket&item=SECURITY&series=hoary766 http://.../ubuntu/+archive/primary/+queue-admin/ubuntu-owner?type=pocket&item=SECURITY&series=hoary
767 >>> print(new_permissions[1]['self_link'])767 >>> print(new_permissions[1]['self_link']) # noqa
768 http://.../ubuntu/+archive/primary/+queue-admin/ubuntu-owner?type=pocket&item=SECURITY&series=grumpy768 http://.../ubuntu/+archive/primary/+queue-admin/ubuntu-owner?type=pocket&item=SECURITY&series=grumpy
769769
770 >>> show_pockets_for_admin(ubuntu_owner_ws)770 >>> show_pockets_for_admin(ubuntu_owner_ws)
diff --git a/lib/lp/soyuz/stories/webservice/xx-binary-package-publishing.txt b/lib/lp/soyuz/stories/webservice/xx-binary-package-publishing.txt
index 3529000..59991fc 100644
--- a/lib/lp/soyuz/stories/webservice/xx-binary-package-publishing.txt
+++ b/lib/lp/soyuz/stories/webservice/xx-binary-package-publishing.txt
@@ -190,6 +190,7 @@ Detailed download counts are also available from the getDownloadCounts method.
190A detailed count object can be retrieved by its URL.190A detailed count object can be retrieved by its URL.
191191
192 >>> pprint_entry(webservice.get(counts[1]['self_link']).jsonBody())192 >>> pprint_entry(webservice.get(counts[1]['self_link']).jsonBody())
193 ... # noqa
193 archive_link: 'http://.../~cprov/+archive/ubuntu/ppa'194 archive_link: 'http://.../~cprov/+archive/ubuntu/ppa'
194 binary_package_name: 'mozilla-firefox'195 binary_package_name: 'mozilla-firefox'
195 binary_package_version: '1.0'196 binary_package_version: '1.0'
@@ -208,6 +209,7 @@ We can also filter by date.
208 1209 1
209210
210 >>> pprint_entry(webservice.get(counts[0]['self_link']).jsonBody())211 >>> pprint_entry(webservice.get(counts[0]['self_link']).jsonBody())
212 ... # noqa
211 archive_link: 'http://.../~cprov/+archive/ubuntu/ppa'213 archive_link: 'http://.../~cprov/+archive/ubuntu/ppa'
212 binary_package_name: 'mozilla-firefox'214 binary_package_name: 'mozilla-firefox'
213 binary_package_version: '1.0'215 binary_package_version: '1.0'
diff --git a/lib/lp/soyuz/stories/webservice/xx-builds.txt b/lib/lp/soyuz/stories/webservice/xx-builds.txt
index 7f72ed7..1e7a44a 100644
--- a/lib/lp/soyuz/stories/webservice/xx-builds.txt
+++ b/lib/lp/soyuz/stories/webservice/xx-builds.txt
@@ -43,7 +43,7 @@ Retrieve a source publication:
43of properties:43of properties:
4444
45 >>> from lazr.restful.testing.webservice import pprint_entry45 >>> from lazr.restful.testing.webservice import pprint_entry
46 >>> pprint_entry(builds['entries'][0])46 >>> pprint_entry(builds['entries'][0]) # noqa
47 arch_tag: 'i386'47 arch_tag: 'i386'
48 archive_link: 'http://.../beta/~cprov/+archive/ubuntu/ppa'48 archive_link: 'http://.../beta/~cprov/+archive/ubuntu/ppa'
49 builder_link: 'http://.../beta/builders/bob'49 builder_link: 'http://.../beta/builders/bob'
@@ -76,7 +76,7 @@ Whereas the 1.0 webservice for builds maintains the old property names
7676
77 >>> builds_1_0 = webservice.named_get(77 >>> builds_1_0 = webservice.named_get(
78 ... source_pub['self_link'].replace('beta', '1.0'), 'getBuilds')78 ... source_pub['self_link'].replace('beta', '1.0'), 'getBuilds')
79 >>> pprint_entry(builds_1_0.jsonBody()['entries'][0])79 >>> pprint_entry(builds_1_0.jsonBody()['entries'][0]) # noqa
80 arch_tag: 'i386'80 arch_tag: 'i386'
81 archive_link: 'http://.../~cprov/+archive/ubuntu/ppa'81 archive_link: 'http://.../~cprov/+archive/ubuntu/ppa'
82 build_log_url:82 build_log_url:
@@ -108,7 +108,7 @@ devel webservice also contains build date_started and duration.
108108
109 >>> builds_devel = webservice.named_get(109 >>> builds_devel = webservice.named_get(
110 ... source_pub['self_link'].replace('beta', 'devel'), 'getBuilds')110 ... source_pub['self_link'].replace('beta', 'devel'), 'getBuilds')
111 >>> pprint_entry(builds_devel.jsonBody()['entries'][0])111 >>> pprint_entry(builds_devel.jsonBody()['entries'][0]) # noqa
112 arch_tag: 'i386'112 arch_tag: 'i386'
113 archive_link: 'http://.../~cprov/+archive/ubuntu/ppa'113 archive_link: 'http://.../~cprov/+archive/ubuntu/ppa'
114 build_log_url:114 build_log_url:
diff --git a/lib/lp/soyuz/stories/webservice/xx-packageset.txt b/lib/lp/soyuz/stories/webservice/xx-packageset.txt
index 499d671..2ac46ec 100644
--- a/lib/lp/soyuz/stories/webservice/xx-packageset.txt
+++ b/lib/lp/soyuz/stories/webservice/xx-packageset.txt
@@ -594,7 +594,7 @@ Let's see what we've got:
594594
595 >>> new_permission = webservice.get(595 >>> new_permission = webservice.get(
596 ... response.getHeader('Location')).jsonBody()596 ... response.getHeader('Location')).jsonBody()
597 >>> pprint_entry(new_permission)597 >>> pprint_entry(new_permission) # noqa
598 archive_link: 'http://.../+archive/primary'598 archive_link: 'http://.../+archive/primary'
599 component_name: None599 component_name: None
600 date_created: ...600 date_created: ...
@@ -624,7 +624,7 @@ package set since we're disallowing the use of the package set hierarchy.
624 >>> response = webservice.named_get(624 >>> response = webservice.named_get(
625 ... ubuntu['main_archive_link'], 'getUploadersForPackageset', {},625 ... ubuntu['main_archive_link'], 'getUploadersForPackageset', {},
626 ... packageset=firefox['self_link'])626 ... packageset=firefox['self_link'])
627 >>> print_payload(response)627 >>> print_payload(response) # noqa
628 http://.../+archive/primary/+upload/name12?type=packageset&item=firefox&series=hoary628 http://.../+archive/primary/+upload/name12?type=packageset&item=firefox&series=hoary
629629
630Same query, this time allowing the use of the package set hierarchy, finds630Same query, this time allowing the use of the package set hierarchy, finds
@@ -633,7 +633,7 @@ the permission for the 'mozilla' package set as well.
633 >>> response = webservice.named_get(633 >>> response = webservice.named_get(
634 ... ubuntu['main_archive_link'], 'getUploadersForPackageset', {},634 ... ubuntu['main_archive_link'], 'getUploadersForPackageset', {},
635 ... packageset=firefox['self_link'], direct_permissions=False)635 ... packageset=firefox['self_link'], direct_permissions=False)
636 >>> print_payload(response)636 >>> print_payload(response) # noqa
637 http://.../+archive/primary/+upload/name12?type=packageset&item=firefox&series=hoary637 http://.../+archive/primary/+upload/name12?type=packageset&item=firefox&series=hoary
638 http://.../+archive/primary/+upload/name12?type=packageset&item=mozilla&series=hoary638 http://.../+archive/primary/+upload/name12?type=packageset&item=mozilla&series=hoary
639639
@@ -653,7 +653,7 @@ shows only the remaining permission for the 'firefox' package set.
653 >>> response = webservice.named_get(653 >>> response = webservice.named_get(
654 ... ubuntu['main_archive_link'], 'getUploadersForPackageset', {},654 ... ubuntu['main_archive_link'], 'getUploadersForPackageset', {},
655 ... packageset=firefox['self_link'], direct_permissions=False)655 ... packageset=firefox['self_link'], direct_permissions=False)
656 >>> print_payload(response)656 >>> print_payload(response) # noqa
657 http://.../+archive/primary/+upload/name12?type=packageset&item=firefox&series=hoary657 http://.../+archive/primary/+upload/name12?type=packageset&item=firefox&series=hoary
658658
659Let's grant 'cprov' an upload permission to 'mozilla' and 'thunderbird'.659Let's grant 'cprov' an upload permission to 'mozilla' and 'thunderbird'.
@@ -680,7 +680,7 @@ We can view the package set based permissions granted to 'cprov' as follows:
680 >>> response = webservice.named_get(680 >>> response = webservice.named_get(
681 ... ubuntu['main_archive_link'], 'getPackagesetsForUploader', {},681 ... ubuntu['main_archive_link'], 'getPackagesetsForUploader', {},
682 ... person=cprov['self_link'])682 ... person=cprov['self_link'])
683 >>> print_payload(response)683 >>> print_payload(response) # noqa
684 http://.../+archive/primary/+upload/cprov?type=packageset&item=mozilla&series=hoary684 http://.../+archive/primary/+upload/cprov?type=packageset&item=mozilla&series=hoary
685 http://.../+archive/primary/+upload/cprov?type=packageset&item=thunderbird&series=hoary685 http://.../+archive/primary/+upload/cprov?type=packageset&item=thunderbird&series=hoary
686686
@@ -691,7 +691,7 @@ Let's check what package set based upload permissions 'cprov' has for the
691 ... ubuntu['main_archive_link'], 'getPackagesetsForSourceUploader',691 ... ubuntu['main_archive_link'], 'getPackagesetsForSourceUploader',
692 ... {}, sourcepackagename='thunderbird',692 ... {}, sourcepackagename='thunderbird',
693 ... person=cprov['self_link'])693 ... person=cprov['self_link'])
694 >>> print_payload(response)694 >>> print_payload(response) # noqa
695 http://.../+archive/primary/+upload/cprov?type=packageset&item=mozilla&series=hoary695 http://.../+archive/primary/+upload/cprov?type=packageset&item=mozilla&series=hoary
696 http://.../+archive/primary/+upload/cprov?type=packageset&item=thunderbird&series=hoary696 http://.../+archive/primary/+upload/cprov?type=packageset&item=thunderbird&series=hoary
697697
@@ -706,7 +706,7 @@ to it?
706 ... ubuntu['main_archive_link'], 'getPackagesetsForSourceUploader',706 ... ubuntu['main_archive_link'], 'getPackagesetsForSourceUploader',
707 ... {}, sourcepackagename='mozilla-firefox',707 ... {}, sourcepackagename='mozilla-firefox',
708 ... person=cprov['self_link'])708 ... person=cprov['self_link'])
709 >>> print_payload(response)709 >>> print_payload(response) # noqa
710 http://.../+archive/primary/+upload/cprov?type=packageset&item=mozilla&series=hoary710 http://.../+archive/primary/+upload/cprov?type=packageset&item=mozilla&series=hoary
711711
712Yes, and, again via the 'mozilla' package set.712Yes, and, again via the 'mozilla' package set.
@@ -824,7 +824,7 @@ Does the new archive permission show up?
824 >>> response = webservice.named_get(824 >>> response = webservice.named_get(
825 ... ubuntu['main_archive_link'], 'getPackagesetsForUploader', {},825 ... ubuntu['main_archive_link'], 'getPackagesetsForUploader', {},
826 ... person=name12['self_link'])826 ... person=name12['self_link'])
827 >>> print_payload(response)827 >>> print_payload(response) # noqa
828 http://...+archive/primary/+upload/name12?type=packageset&item=firefox&series=hoary828 http://...+archive/primary/+upload/name12?type=packageset&item=firefox&series=hoary
829 http://...+archive/primary/+upload/name12?type=packageset&item=thunderbird&series=grumpy829 http://...+archive/primary/+upload/name12?type=packageset&item=thunderbird&series=grumpy
830830
@@ -846,7 +846,7 @@ permissions apply to a source package irrespective of the principal.
846 >>> response = webservice.named_get(846 >>> response = webservice.named_get(
847 ... ubuntu['main_archive_link'], 'getPackagesetsForSource',847 ... ubuntu['main_archive_link'], 'getPackagesetsForSource',
848 ... {}, sourcepackagename='mozilla-firefox')848 ... {}, sourcepackagename='mozilla-firefox')
849 >>> print_payload(response)849 >>> print_payload(response) # noqa
850 http://.../+archive/primary/+upload/name12?type=packageset&item=firefox&series=hoary850 http://.../+archive/primary/+upload/name12?type=packageset&item=firefox&series=hoary
851851
852The listing above only shows the *direct* upload permission granted to852The listing above only shows the *direct* upload permission granted to
@@ -858,7 +858,7 @@ permissions arising from the package set hierarchy as well.
858 >>> response = webservice.named_get(858 >>> response = webservice.named_get(
859 ... ubuntu['main_archive_link'], 'getPackagesetsForSource',859 ... ubuntu['main_archive_link'], 'getPackagesetsForSource',
860 ... {}, sourcepackagename='mozilla-firefox', direct_permissions=False)860 ... {}, sourcepackagename='mozilla-firefox', direct_permissions=False)
861 >>> print_payload(response)861 >>> print_payload(response) # noqa
862 http://.../+archive/primary/+upload/name12?type=packageset&item=firefox&series=hoary862 http://.../+archive/primary/+upload/name12?type=packageset&item=firefox&series=hoary
863 http://.../+archive/primary/+upload/cprov?type=packageset&item=mozilla&series=hoary863 http://.../+archive/primary/+upload/cprov?type=packageset&item=mozilla&series=hoary
864864
diff --git a/lib/lp/soyuz/stories/webservice/xx-source-package-publishing.txt b/lib/lp/soyuz/stories/webservice/xx-source-package-publishing.txt
index c75f1d6..10cc3f5 100644
--- a/lib/lp/soyuz/stories/webservice/xx-source-package-publishing.txt
+++ b/lib/lp/soyuz/stories/webservice/xx-source-package-publishing.txt
@@ -149,6 +149,7 @@ publication to play with first.
149149
150 >>> print(webservice.named_get(150 >>> print(webservice.named_get(
151 ... pubs['entries'][0]['self_link'], 'changesFileUrl').jsonBody())151 ... pubs['entries'][0]['self_link'], 'changesFileUrl').jsonBody())
152 ... # noqa
152 http://.../~cprov/+archive/ubuntu/ppa/+files/testwebservice_666_source.changes153 http://.../~cprov/+archive/ubuntu/ppa/+files/testwebservice_666_source.changes
153154
154155
@@ -376,7 +377,7 @@ for this package:
376 ... entry['self_link'] for entry in pubs['entries']):377 ... entry['self_link'] for entry in pubs['entries']):
377 ... source_urls = webservice.named_get(378 ... source_urls = webservice.named_get(
378 ... pub_link, 'sourceFileUrls').jsonBody()379 ... pub_link, 'sourceFileUrls').jsonBody()
379 ... print(pretty(source_urls))380 ... print(pretty(source_urls)) # noqa
380 ['http://.../~cprov/+archive/ubuntu/ppa/+sourcefiles/cdrkit/1.0/foobar-1.0.dsc']381 ['http://.../~cprov/+archive/ubuntu/ppa/+sourcefiles/cdrkit/1.0/foobar-1.0.dsc']
381 ['http://.../~cprov/+archive/ubuntu/ppa/+sourcefiles/iceweasel/1.0/firefox_0.9.2.orig.tar.gz',382 ['http://.../~cprov/+archive/ubuntu/ppa/+sourcefiles/iceweasel/1.0/firefox_0.9.2.orig.tar.gz',
382 'http://.../~cprov/+archive/ubuntu/ppa/+sourcefiles/iceweasel/1.0/iceweasel-1.0.dsc']383 'http://.../~cprov/+archive/ubuntu/ppa/+sourcefiles/iceweasel/1.0/iceweasel-1.0.dsc']
@@ -389,7 +390,7 @@ binaryFileUrls() is similar:
389 ... entry['self_link'] for entry in pubs['entries']):390 ... entry['self_link'] for entry in pubs['entries']):
390 ... binary_urls = webservice.named_get(391 ... binary_urls = webservice.named_get(
391 ... pub_link, 'binaryFileUrls').jsonBody()392 ... pub_link, 'binaryFileUrls').jsonBody()
392 ... print(pretty(binary_urls))393 ... print(pretty(binary_urls)) # noqa
393 []394 []
394 ['http://.../~cprov/+archive/ubuntu/ppa/+files/mozilla-firefox_0.9_i386.deb']395 ['http://.../~cprov/+archive/ubuntu/ppa/+files/mozilla-firefox_0.9_i386.deb']
395 []396 []
diff --git a/lib/lp/translations/doc/potemplate.txt b/lib/lp/translations/doc/potemplate.txt
index 3a4fc80..3f91d27 100644
--- a/lib/lp/translations/doc/potemplate.txt
+++ b/lib/lp/translations/doc/potemplate.txt
@@ -294,7 +294,7 @@ Templates can be exported to its native format.
294 ... if 'X-Launchpad-Export-Date' in line:294 ... if 'X-Launchpad-Export-Date' in line:
295 ... # Avoid a time bomb in our tests and ignore this field.295 ... # Avoid a time bomb in our tests and ignore this field.
296 ... continue296 ... continue
297 ... print(line)297 ... print(line) # noqa
298 #, fuzzy298 #, fuzzy
299 msgid ""299 msgid ""
300 msgstr ""300 msgstr ""
diff --git a/lib/lp/translations/stories/distroseries/xx-distroseries-language-packs.txt b/lib/lp/translations/stories/distroseries/xx-distroseries-language-packs.txt
index 167459c..62ed7b8 100644
--- a/lib/lp/translations/stories/distroseries/xx-distroseries-language-packs.txt
+++ b/lib/lp/translations/stories/distroseries/xx-distroseries-language-packs.txt
@@ -153,5 +153,5 @@ URL uses '+latest-full-language-pack'.
153153
154 >>> print(browser.getLink('2007-09-10 19:15:01 UTC').url)154 >>> print(browser.getLink('2007-09-10 19:15:01 UTC').url)
155 http.../72/ubuntu-hoary-translations-update.tar.gz155 http.../72/ubuntu-hoary-translations-update.tar.gz
156 >>> print(browser.getLink('2007-09-10 19:15:19 UTC').url)156 >>> print(browser.getLink('2007-09-10 19:15:19 UTC').url) # noqa
157 http://translations.launchpad.test/ubuntu/hoary/+latest-delta-language-pack157 http://translations.launchpad.test/ubuntu/hoary/+latest-delta-language-pack
diff --git a/lib/lp/translations/stories/importqueue/xx-translation-import-queue.txt b/lib/lp/translations/stories/importqueue/xx-translation-import-queue.txt
index 04ffefa..15c7a95 100644
--- a/lib/lp/translations/stories/importqueue/xx-translation-import-queue.txt
+++ b/lib/lp/translations/stories/importqueue/xx-translation-import-queue.txt
@@ -116,7 +116,7 @@ Now, we attach a new file to an already existing translation resource.
116 >>> upload.add_file(BytesIO(b'# foo\n'),116 >>> upload.add_file(BytesIO(b'# foo\n'),
117 ... 'text/x-gettext-translation-template', 'evolution.pot')117 ... 'text/x-gettext-translation-template', 'evolution.pot')
118 >>> browser.getControl('Upload').click()118 >>> browser.getControl('Upload').click()
119 >>> print(browser.url)119 >>> print(browser.url) # noqa
120 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/+upload120 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/+upload
121 >>> for tag in find_tags_by_class(browser.contents, 'message'):121 >>> for tag in find_tags_by_class(browser.contents, 'message'):
122 ... print(tag.decode_contents())122 ... print(tag.decode_contents())
diff --git a/lib/lp/translations/stories/navigation-links/pofile.txt b/lib/lp/translations/stories/navigation-links/pofile.txt
index a69c22f..351b23e 100644
--- a/lib/lp/translations/stories/navigation-links/pofile.txt
+++ b/lib/lp/translations/stories/navigation-links/pofile.txt
@@ -27,7 +27,7 @@ Taking an IPOFile for ISourcePackage context:
27 >>> admin_browser.open(27 >>> admin_browser.open(
28 ... 'http://translations.launchpad.test/ubuntu/hoary/+source/'28 ... 'http://translations.launchpad.test/ubuntu/hoary/+source/'
29 ... 'evolution/+pots/evolution-2.2/es')29 ... 'evolution/+pots/evolution-2.2/es')
30 >>> print(admin_browser.url)30 >>> print(admin_browser.url) # noqa
31 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es31 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es
3232
33The Application tabs should point to IDistributionSourcePackage URLs.33The Application tabs should point to IDistributionSourcePackage URLs.
diff --git a/lib/lp/translations/stories/navigation-links/pomsgset.txt b/lib/lp/translations/stories/navigation-links/pomsgset.txt
index d561963..be7fe16 100644
--- a/lib/lp/translations/stories/navigation-links/pomsgset.txt
+++ b/lib/lp/translations/stories/navigation-links/pomsgset.txt
@@ -10,7 +10,7 @@ Taking an IPOMsgSet for IProductSeries context:
10We get a +translate page because that's the only page for an IPOMsgSet and the10We get a +translate page because that's the only page for an IPOMsgSet and the
11system forwards automatically there.11system forwards automatically there.
1212
13 >>> print(browser.url)13 >>> print(browser.url) # noqa
14 http://translations.launchpad.test/evolution/trunk/+pots/evolution-2.2/es/1/+translate14 http://translations.launchpad.test/evolution/trunk/+pots/evolution-2.2/es/1/+translate
1515
16The Application tabs should point to IProductSeries URLs.16The Application tabs should point to IProductSeries URLs.
@@ -32,7 +32,7 @@ Taking an IPOMsgSet for ISourcePackage context:
32We get a +translate page because that's the only page for an IPOMsgSet and the32We get a +translate page because that's the only page for an IPOMsgSet and the
33system forwards automatically there.33system forwards automatically there.
3434
35 >>> print(browser.url)35 >>> print(browser.url) # noqa
36 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/1/+translate36 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/1/+translate
3737
38The Application tabs should point to ISourcePackage URLs.38The Application tabs should point to ISourcePackage URLs.
diff --git a/lib/lp/translations/stories/navigation-links/potemplate.txt b/lib/lp/translations/stories/navigation-links/potemplate.txt
index 164754b..bd2015f 100644
--- a/lib/lp/translations/stories/navigation-links/potemplate.txt
+++ b/lib/lp/translations/stories/navigation-links/potemplate.txt
@@ -24,7 +24,7 @@ Taking an IPOTemplate for ISourcePackage context:
24 >>> admin_browser.open(24 >>> admin_browser.open(
25 ... 'http://translations.launchpad.test/ubuntu/hoary/+source/'25 ... 'http://translations.launchpad.test/ubuntu/hoary/+source/'
26 ... 'evolution/+pots/evolution-2.2')26 ... 'evolution/+pots/evolution-2.2')
27 >>> print(admin_browser.url)27 >>> print(admin_browser.url) # noqa
28 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.228 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2
2929
30The Application tabs should point to IDistributionSourcePackage URLs.30The Application tabs should point to IDistributionSourcePackage URLs.
diff --git a/lib/lp/translations/stories/productseries/xx-productseries-translations.txt b/lib/lp/translations/stories/productseries/xx-productseries-translations.txt
index b2b562c..5ce1df9 100644
--- a/lib/lp/translations/stories/productseries/xx-productseries-translations.txt
+++ b/lib/lp/translations/stories/productseries/xx-productseries-translations.txt
@@ -88,7 +88,7 @@ count links to the correctly filtered PO file pages.
88 >>> logout()88 >>> logout()
8989
90 >>> browser.open(frobnicator_trunk_url)90 >>> browser.open(frobnicator_trunk_url)
91 >>> print_language_stats(browser)91 >>> print_language_stats(browser) # noqa
92 Language Untranslated Unreviewed92 Language Untranslated Unreviewed
93 Serbian 6 593 Serbian 6 5
94 Untranslated link: /frobnicator/trunk/+pots/template1/sr/+translate?show=untranslated94 Untranslated link: /frobnicator/trunk/+pots/template1/sr/+translate?show=untranslated
@@ -391,4 +391,5 @@ page togheter with link for uploading a template from that series
391391
392 >>> print(admin_browser.getLink(392 >>> print(admin_browser.getLink(
393 ... 'automatic', url='/evolution/evo-new/+translations-settings').url)393 ... 'automatic', url='/evolution/evo-new/+translations-settings').url)
394 ... # noqa
394 http://translations.launchpad.test/evolution/evo-new/+translations-settings395 http://translations.launchpad.test/evolution/evo-new/+translations-settings
diff --git a/lib/lp/translations/stories/standalone/xx-language.txt b/lib/lp/translations/stories/standalone/xx-language.txt
index 25dfa68..438f687 100644
--- a/lib/lp/translations/stories/standalone/xx-language.txt
+++ b/lib/lp/translations/stories/standalone/xx-language.txt
@@ -98,7 +98,7 @@ From the top languages page, anyone can find languages.
98 >>> text_search = browser.getControl(name='field.search_lang')98 >>> text_search = browser.getControl(name='field.search_lang')
99 >>> text_search.value = 'Spanish'99 >>> text_search.value = 'Spanish'
100 >>> browser.getControl('Find language', index=0).click()100 >>> browser.getControl('Find language', index=0).click()
101 >>> print(browser.url)101 >>> print(browser.url) # noqa
102 http://translations.launchpad.test/+languages/+index?field.search_lang=Spanish102 http://translations.launchpad.test/+languages/+index?field.search_lang=Spanish
103103
104104
diff --git a/lib/lp/translations/stories/standalone/xx-pofile-auto-alt-languages.txt b/lib/lp/translations/stories/standalone/xx-pofile-auto-alt-languages.txt
index add4f2d..a5ccfeb 100644
--- a/lib/lp/translations/stories/standalone/xx-pofile-auto-alt-languages.txt
+++ b/lib/lp/translations/stories/standalone/xx-pofile-auto-alt-languages.txt
@@ -11,7 +11,7 @@ should have the Spanish language selected as its alternate, by default.
11 >>> browser.open(11 >>> browser.open(
12 ... 'http://translations.launchpad.test/evolution/trunk/+pots/'12 ... 'http://translations.launchpad.test/evolution/trunk/+pots/'
13 ... 'evolution-2.2/es_MX/+translate')13 ... 'evolution-2.2/es_MX/+translate')
14 >>> print(browser.url)14 >>> print(browser.url) # noqa
15 http://translations.launchpad.test/evolution/trunk/+pots/evolution-2.2/es_MX/+translate15 http://translations.launchpad.test/evolution/trunk/+pots/evolution-2.2/es_MX/+translate
1616
17 >>> browser.getControl(name='field.alternative_language', index=0).value17 >>> browser.getControl(name='field.alternative_language', index=0).value
@@ -23,7 +23,7 @@ not show pt by default for pt_BR translators:
23 >>> browser.open(23 >>> browser.open(
24 ... 'http://translations.launchpad.test/evolution/trunk/+pots/'24 ... 'http://translations.launchpad.test/evolution/trunk/+pots/'
25 ... 'evolution-2.2/pt_BR/+translate')25 ... 'evolution-2.2/pt_BR/+translate')
26 >>> print(browser.url)26 >>> print(browser.url) # noqa
27 http://translations.launchpad.test/evolution/trunk/+pots/evolution-2.2/pt_BR/+translate27 http://translations.launchpad.test/evolution/trunk/+pots/evolution-2.2/pt_BR/+translate
2828
29 >>> browser.getControl(name='field.alternative_language', index=0).value29 >>> browser.getControl(name='field.alternative_language', index=0).value
@@ -35,7 +35,7 @@ French!
35 >>> browser.open(35 >>> browser.open(
36 ... 'http://translations.launchpad.test/evolution/trunk/+pots/'36 ... 'http://translations.launchpad.test/evolution/trunk/+pots/'
37 ... 'evolution-2.2/fr/+translate')37 ... 'evolution-2.2/fr/+translate')
38 >>> print(browser.url)38 >>> print(browser.url) # noqa
39 http://translations.launchpad.test/evolution/trunk/+pots/evolution-2.2/fr/+translate39 http://translations.launchpad.test/evolution/trunk/+pots/evolution-2.2/fr/+translate
4040
41 >>> browser.getControl(name='field.alternative_language', index=0).value41 >>> browser.getControl(name='field.alternative_language', index=0).value
diff --git a/lib/lp/translations/stories/standalone/xx-pofile-translate-empty-strings-without-validation.txt b/lib/lp/translations/stories/standalone/xx-pofile-translate-empty-strings-without-validation.txt
index 497cf73..5a9552e 100644
--- a/lib/lp/translations/stories/standalone/xx-pofile-translate-empty-strings-without-validation.txt
+++ b/lib/lp/translations/stories/standalone/xx-pofile-translate-empty-strings-without-validation.txt
@@ -27,5 +27,5 @@ Submit the form.
27We should be redirected to the next page because the validation didn't get27We should be redirected to the next page because the validation didn't get
28it as an error.28it as an error.
2929
30 >>> print(browser.url)30 >>> print(browser.url) # noqa
31 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/+translate?batch=1&memo=13&start=1331 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/+translate?batch=1&memo=13&start=13
diff --git a/lib/lp/translations/stories/standalone/xx-pofile-translate-gettext-error-middle-page.txt b/lib/lp/translations/stories/standalone/xx-pofile-translate-gettext-error-middle-page.txt
index 553f9d6..010c251 100644
--- a/lib/lp/translations/stories/standalone/xx-pofile-translate-gettext-error-middle-page.txt
+++ b/lib/lp/translations/stories/standalone/xx-pofile-translate-gettext-error-middle-page.txt
@@ -32,7 +32,7 @@ And submit the form.
3232
33We remain at the same page:33We remain at the same page:
3434
35 >>> print(browser.url)35 >>> print(browser.url) # noqa
36 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/+translate?start=10&batch=536 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/+translate?start=10&batch=5
3737
38The valid translation is stored:38The valid translation is stored:
diff --git a/lib/lp/translations/stories/standalone/xx-pofile-translate-html-tags-escape.txt b/lib/lp/translations/stories/standalone/xx-pofile-translate-html-tags-escape.txt
index 91b15e0..f977e54 100644
--- a/lib/lp/translations/stories/standalone/xx-pofile-translate-html-tags-escape.txt
+++ b/lib/lp/translations/stories/standalone/xx-pofile-translate-html-tags-escape.txt
@@ -20,7 +20,7 @@ textarea, and
2020
21We are in next form page.21We are in next form page.
2222
23 >>> print(user_browser.url)23 >>> print(user_browser.url) # noqa
24 http://translations.launchpad.test/ubuntu/hoary/+source/pmount/+pots/pmount/hr/+translate?memo=10&start=1024 http://translations.launchpad.test/ubuntu/hoary/+source/pmount/+pots/pmount/hr/+translate?memo=10&start=10
2525
26Let's go back to the modified message.26Let's go back to the modified message.
diff --git a/lib/lp/translations/stories/standalone/xx-pofile-translate-needs-review-flags-preserved.txt b/lib/lp/translations/stories/standalone/xx-pofile-translate-needs-review-flags-preserved.txt
index 3f79034..cab3aef 100644
--- a/lib/lp/translations/stories/standalone/xx-pofile-translate-needs-review-flags-preserved.txt
+++ b/lib/lp/translations/stories/standalone/xx-pofile-translate-needs-review-flags-preserved.txt
@@ -41,7 +41,7 @@ a translator needs to mark the needs review checkbox.
41 >>> user_browser.getControl(41 >>> user_browser.getControl(
42 ... name='msgset_130_es_translation_0_new').value = "New suggestion"42 ... name='msgset_130_es_translation_0_new').value = "New suggestion"
43 >>> user_browser.getControl('Save & Continue').click()43 >>> user_browser.getControl('Save & Continue').click()
44 >>> print(user_browser.url)44 >>> print(user_browser.url) # noqa
45 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/2/+translate45 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/2/+translate
4646
47The needs review flag is unset when we go back to the previous message.47The needs review flag is unset when we go back to the previous message.
diff --git a/lib/lp/translations/stories/standalone/xx-pofile-translate-newlines-check.txt b/lib/lp/translations/stories/standalone/xx-pofile-translate-newlines-check.txt
index d92801d..1ee8394 100644
--- a/lib/lp/translations/stories/standalone/xx-pofile-translate-newlines-check.txt
+++ b/lib/lp/translations/stories/standalone/xx-pofile-translate-newlines-check.txt
@@ -41,7 +41,7 @@ answer should have exactly those strings.
41 >>> browser.getControl(41 >>> browser.getControl(
42 ... name='msgset_149_es_translation_0_new').value = '\r\nfoo\r\n\r\n'42 ... name='msgset_149_es_translation_0_new').value = '\r\nfoo\r\n\r\n'
43 >>> browser.getControl(name='submit_translations').click()43 >>> browser.getControl(name='submit_translations').click()
44 >>> print(browser.url)44 >>> print(browser.url) # noqa
45 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/+translate?start=19&batch=145 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/+translate?start=19&batch=1
46 >>> print(find_tag_by_id(46 >>> print(find_tag_by_id(
47 ... browser.contents, 'msgset_149_es_translation_0_new'))47 ... browser.contents, 'msgset_149_es_translation_0_new'))
@@ -61,7 +61,7 @@ change the test, to be 100% sure that the textarea content is the right one.
61 >>> browser.getControl(name='msgset_149_es_translation_0_new').value = (61 >>> browser.getControl(name='msgset_149_es_translation_0_new').value = (
62 ... 'foo')62 ... 'foo')
63 >>> browser.getControl(name='submit_translations').click()63 >>> browser.getControl(name='submit_translations').click()
64 >>> print(browser.url)64 >>> print(browser.url) # noqa
65 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/+translate?start=19&batch=165 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/+translate?start=19&batch=1
66 >>> print(find_tag_by_id(66 >>> print(find_tag_by_id(
67 ... browser.contents,67 ... browser.contents,
@@ -85,7 +85,7 @@ Launchpad adds it automatically.
8585
86We were redirected to the next form, the translation was accepted.86We were redirected to the next form, the translation was accepted.
8787
88 >>> print(browser.url)88 >>> print(browser.url) # noqa
89 http://translations.launchpad.test/evolution/trunk/+pots/evolution-2.2/es/+translate?batch=189 http://translations.launchpad.test/evolution/trunk/+pots/evolution-2.2/es/+translate?batch=1
9090
91Get previous page to check that the save translation is the right one.91Get previous page to check that the save translation is the right one.
@@ -116,7 +116,7 @@ Now, we do the right submit, with one trailing new line...
116116
117We were redirected to the next form, the translation was accepted.117We were redirected to the next form, the translation was accepted.
118118
119 >>> print(browser.url)119 >>> print(browser.url) # noqa
120 http://translations.launchpad.test/evolution/trunk/+pots/evolution-2.2/es/+translate?batch=1120 http://translations.launchpad.test/evolution/trunk/+pots/evolution-2.2/es/+translate?batch=1
121121
122Get previous page to check that the save translation is the right one.122Get previous page to check that the save translation is the right one.
@@ -147,7 +147,7 @@ Last check, the user sends two new line chars instead of just one...
147147
148We were redirected to the next form, the translation was accepted.148We were redirected to the next form, the translation was accepted.
149149
150 >>> print(browser.url)150 >>> print(browser.url) # noqa
151 http://translations.launchpad.test/evolution/trunk/+pots/evolution-2.2/es/+translate?batch=1151 http://translations.launchpad.test/evolution/trunk/+pots/evolution-2.2/es/+translate?batch=1
152152
153Get previous page to check that the save translation is the right one.153Get previous page to check that the save translation is the right one.
diff --git a/lib/lp/translations/stories/standalone/xx-pofile-translate-performance.txt b/lib/lp/translations/stories/standalone/xx-pofile-translate-performance.txt
index ed6edf8..f8882b6 100644
--- a/lib/lp/translations/stories/standalone/xx-pofile-translate-performance.txt
+++ b/lib/lp/translations/stories/standalone/xx-pofile-translate-performance.txt
@@ -20,7 +20,7 @@ this test a tripwire for the number potentially getting out of hand.
20 >>> anon_browser.open(20 >>> anon_browser.open(
21 ... 'http://translations.launchpad.test/ubuntu/hoary/+source/'21 ... 'http://translations.launchpad.test/ubuntu/hoary/+source/'
22 ... 'evolution/+pots/evolution-2.2/es/+translate')22 ... 'evolution/+pots/evolution-2.2/es/+translate')
23 >>> anon_browser.url23 >>> anon_browser.url # noqa
24 'http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/+translate'24 'http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/+translate'
25 >>> print(anon_browser.contents)25 >>> print(anon_browser.contents)
26 <...26 <...
@@ -38,7 +38,7 @@ queries, but it still shouldn't run in the hundreds.
38 >>> admin_browser.open(38 >>> admin_browser.open(
39 ... 'http://translations.launchpad.test/ubuntu/hoary/+source/'39 ... 'http://translations.launchpad.test/ubuntu/hoary/+source/'
40 ... 'evolution/+pots/evolution-2.2/es/+translate')40 ... 'evolution/+pots/evolution-2.2/es/+translate')
41 >>> admin_browser.url41 >>> admin_browser.url # noqa
42 'http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/+translate'42 'http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/+translate'
4343
44XXX: JeroenVermeulen 2008-06-20 bug=241394: This has just started44XXX: JeroenVermeulen 2008-06-20 bug=241394: This has just started
diff --git a/lib/lp/translations/stories/standalone/xx-potemplate-export.txt b/lib/lp/translations/stories/standalone/xx-potemplate-export.txt
index 54dfa56..4b69f55 100644
--- a/lib/lp/translations/stories/standalone/xx-potemplate-export.txt
+++ b/lib/lp/translations/stories/standalone/xx-potemplate-export.txt
@@ -47,7 +47,7 @@ added to the export queue and individual requests are added for the PO files.
47 >>> browser.getControl('Everything').selected = True47 >>> browser.getControl('Everything').selected = True
48 >>> browser.getControl('Format:').value = ['PO']48 >>> browser.getControl('Format:').value = ['PO']
49 >>> browser.getControl('Request Download').click()49 >>> browser.getControl('Request Download').click()
50 >>> print(browser.url)50 >>> print(browser.url) # noqa
51 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.251 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2
5252
53 >>> print_feedback_messages(browser.contents)53 >>> print_feedback_messages(browser.contents)
@@ -62,7 +62,7 @@ This is a no-op: (See bug https://launchpad.net/rosetta/+bug/1558)
62 >>> browser.getControl('The PO template').selected = True62 >>> browser.getControl('The PO template').selected = True
63 >>> browser.getControl('Format:').value = ['PO']63 >>> browser.getControl('Format:').value = ['PO']
64 >>> browser.getControl('Request Download').click()64 >>> browser.getControl('Request Download').click()
65 >>> print(browser.url)65 >>> print(browser.url) # noqa
66 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.266 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2
6767
68 >>> print_feedback_messages(browser.contents)68 >>> print_feedback_messages(browser.contents)
diff --git a/lib/lp/translations/stories/standalone/xx-series-templates.txt b/lib/lp/translations/stories/standalone/xx-series-templates.txt
index 3fe1eeb..e9658b0 100644
--- a/lib/lp/translations/stories/standalone/xx-series-templates.txt
+++ b/lib/lp/translations/stories/standalone/xx-series-templates.txt
@@ -127,7 +127,7 @@ Clicking on a template name will take the user to that template's overview
127page.127page.
128128
129 >>> admin_browser.getLink('pmount').click()129 >>> admin_browser.getLink('pmount').click()
130 >>> print(admin_browser.url)130 >>> print(admin_browser.url) # noqa
131 http://translations.launchpad.test/ubuntu/hoary/+source/pmount/+pots/pmount131 http://translations.launchpad.test/ubuntu/hoary/+source/pmount/+pots/pmount
132132
133Clicking on 'Edit' will take the user to the page to edit the template133Clicking on 'Edit' will take the user to the page to edit the template
diff --git a/lib/lp/translations/stories/standalone/xx-translation-credits.txt b/lib/lp/translations/stories/standalone/xx-translation-credits.txt
index f3a3237..6e73ebd 100644
--- a/lib/lp/translations/stories/standalone/xx-translation-credits.txt
+++ b/lib/lp/translations/stories/standalone/xx-translation-credits.txt
@@ -60,7 +60,7 @@ displayed credits once we submit the translation.
60 ... name='msgset_198_sr_translation_0_new')60 ... name='msgset_198_sr_translation_0_new')
61 >>> inputfield.value = 'Test translation'61 >>> inputfield.value = 'Test translation'
62 >>> browser.getControl('Save & Continue').click()62 >>> browser.getControl('Save & Continue').click()
63 >>> print(browser.url)63 >>> print(browser.url) # noqa
64 http://translations.launchpad.test/alsa-utils/trunk/+pots/alsa-utils/sr/+translate64 http://translations.launchpad.test/alsa-utils/trunk/+pots/alsa-utils/sr/+translate
6565
66Translation has been updated.66Translation has been updated.
diff --git a/lib/lp/translations/stories/translationgroups/xx-translationgroups.txt b/lib/lp/translations/stories/translationgroups/xx-translationgroups.txt
index cd31e56..8286bfc 100644
--- a/lib/lp/translations/stories/translationgroups/xx-translationgroups.txt
+++ b/lib/lp/translations/stories/translationgroups/xx-translationgroups.txt
@@ -1138,7 +1138,7 @@ cannot be handled.
1138 >>> upload = admin_browser.getControl(name='file')1138 >>> upload = admin_browser.getControl(name='file')
1139 >>> upload.add_file(BytesIO(af_file), 'application/msword', 'af.doc')1139 >>> upload.add_file(BytesIO(af_file), 'application/msword', 'af.doc')
1140 >>> admin_browser.getControl('Upload').click()1140 >>> admin_browser.getControl('Upload').click()
1141 >>> print(admin_browser.url)1141 >>> print(admin_browser.url) # noqa
1142 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/af/+upload1142 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/af/+upload
11431143
1144 >>> for tag in find_tags_by_class(admin_browser.contents, 'error'):1144 >>> for tag in find_tags_by_class(admin_browser.contents, 'error'):
@@ -1151,7 +1151,7 @@ With all the correct information, a file can be uploaded.
1151 >>> upload = admin_browser.getControl(name='file')1151 >>> upload = admin_browser.getControl(name='file')
1152 >>> upload.add_file(BytesIO(af_file), 'application/x-po', 'af.po')1152 >>> upload.add_file(BytesIO(af_file), 'application/x-po', 'af.po')
1153 >>> admin_browser.getControl('Upload').click()1153 >>> admin_browser.getControl('Upload').click()
1154 >>> print(admin_browser.url)1154 >>> print(admin_browser.url) # noqa
1155 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/af/+upload1155 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/af/+upload
11561156
1157 >>> for tag in find_tags_by_class(admin_browser.contents, 'message'):1157 >>> for tag in find_tags_by_class(admin_browser.contents, 'message'):
diff --git a/lib/lp/translations/stories/translations/xx-translations.txt b/lib/lp/translations/stories/translations/xx-translations.txt
index 377a9bf..9c26cb1 100644
--- a/lib/lp/translations/stories/translations/xx-translations.txt
+++ b/lib/lp/translations/stories/translations/xx-translations.txt
@@ -134,9 +134,9 @@ pofile) for evolution-2.2
134 True134 True
135 >>> six.ensure_str('Translatable templates') in browser.contents135 >>> six.ensure_str('Translatable templates') in browser.contents
136 True136 True
137 >>> print(browser.getLink('evolution-2.2').url)137 >>> print(browser.getLink('evolution-2.2').url) # noqa
138 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/hr/+translate138 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/hr/+translate
139 >>> print(browser.getLink('man').url)139 >>> print(browser.getLink('man').url) # noqa
140 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/man/hr/+translate140 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/man/hr/+translate
141141
142pmount and pkgconf-mozilla are not in this page, because it belongs to the142pmount and pkgconf-mozilla are not in this page, because it belongs to the
@@ -157,9 +157,9 @@ Let's go to next page.
157157
158Now, we have the other man and pkgconf-mozilla:158Now, we have the other man and pkgconf-mozilla:
159159
160 >>> print(browser.getLink('man').url)160 >>> print(browser.getLink('man').url) # noqa
161 http://translations.launchpad.test/ubuntu/hoary/+source/pmount/+pots/man/hr/+translate161 http://translations.launchpad.test/ubuntu/hoary/+source/pmount/+pots/man/hr/+translate
162 >>> print(browser.getLink('pkgconf-mozilla').url)162 >>> print(browser.getLink('pkgconf-mozilla').url) # noqa
163 http://translations.launchpad.test/ubuntu/hoary/+source/mozilla/+pots/pkgconf-mozilla/hr/+translate163 http://translations.launchpad.test/ubuntu/hoary/+source/mozilla/+pots/pkgconf-mozilla/hr/+translate
164164
165Let's go to next page.165Let's go to next page.
@@ -168,7 +168,7 @@ Let's go to next page.
168168
169And finally, we will get pmount.169And finally, we will get pmount.
170170
171 >>> print(browser.getLink('pmount').url)171 >>> print(browser.getLink('pmount').url) # noqa
172 http://translations.launchpad.test/ubuntu/hoary/+source/pmount/+pots/pmount/hr/+translate172 http://translations.launchpad.test/ubuntu/hoary/+source/pmount/+pots/pmount/hr/+translate
173173
174With its latest translator.174With its latest translator.
@@ -260,7 +260,7 @@ The template title points to the general translate page:
260 >>> unfiltered = all_links[0]260 >>> unfiltered = all_links[0]
261 >>> print(extract_text(unfiltered))261 >>> print(extract_text(unfiltered))
262 evolution-2.2262 evolution-2.2
263 >>> print(extract_link_from_tag(unfiltered, base_href))263 >>> print(extract_link_from_tag(unfiltered, base_href)) # noqa
264 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/+translate264 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/+translate
265265
266The number of untranslated entries points to the same page, which now show266The number of untranslated entries points to the same page, which now show
@@ -272,7 +272,7 @@ has the right filter preselected.
272 15272 15
273 >>> untranslated_link = extract_link_from_tag(untranslated, base_href)273 >>> untranslated_link = extract_link_from_tag(untranslated, base_href)
274 >>> browser.open(untranslated_link)274 >>> browser.open(untranslated_link)
275 >>> browser.url275 >>> browser.url # noqa
276 'http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/+translate?show=untranslated'276 'http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/+translate?show=untranslated'
277 >>> print(browser.getControl(name='show', index=1).value)277 >>> print(browser.getControl(name='show', index=1).value)
278 ['untranslated']278 ['untranslated']
@@ -285,7 +285,7 @@ with the 'with new suggestions' filter selected.
285 1285 1
286 >>> unreviewed_link = extract_link_from_tag(unreviewed, base_href)286 >>> unreviewed_link = extract_link_from_tag(unreviewed, base_href)
287 >>> browser.open(unreviewed_link)287 >>> browser.open(unreviewed_link)
288 >>> browser.url288 >>> browser.url # noqa
289 'http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/+translate?show=new_suggestions'289 'http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/+translate?show=new_suggestions'
290 >>> print(browser.getControl(name='show', index=1).value)290 >>> print(browser.getControl(name='show', index=1).value)
291 ['new_suggestions']291 ['new_suggestions']
@@ -298,7 +298,7 @@ The number of updated entries points to the translation page with the
298 1298 1
299 >>> updated_link = extract_link_from_tag(updated, base_href)299 >>> updated_link = extract_link_from_tag(updated, base_href)
300 >>> browser.open(updated_link)300 >>> browser.open(updated_link)
301 >>> browser.url301 >>> browser.url # noqa
302 'http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/+translate?show=changed_in_ubuntu'302 'http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/+translate?show=changed_in_ubuntu'
303 >>> print(browser.getControl(name='show', index=1).value)303 >>> print(browser.getControl(name='show', index=1).value)
304 ['changed_in_ubuntu']304 ['changed_in_ubuntu']
@@ -434,7 +434,7 @@ Language title points to the general translate page:
434 >>> unfiltered = all_links[0]434 >>> unfiltered = all_links[0]
435 >>> print(extract_text(unfiltered))435 >>> print(extract_text(unfiltered))
436 Spanish436 Spanish
437 >>> print(extract_link_from_tag(unfiltered, base_href))437 >>> print(extract_link_from_tag(unfiltered, base_href)) # noqa
438 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/+translate438 http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/+translate
439439
440The number of untranslated entries points to the same page, which now shows440The number of untranslated entries points to the same page, which now shows
@@ -446,7 +446,7 @@ the right filter preselected.
446 15446 15
447 >>> untranslated_link = extract_link_from_tag(untranslated, base_href)447 >>> untranslated_link = extract_link_from_tag(untranslated, base_href)
448 >>> browser.open(untranslated_link)448 >>> browser.open(untranslated_link)
449 >>> browser.url449 >>> browser.url # noqa
450 'http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/+translate?show=untranslated'450 'http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/+translate?show=untranslated'
451 >>> print(browser.getControl(name='show', index=2).value)451 >>> print(browser.getControl(name='show', index=2).value)
452 untranslated452 untranslated
@@ -459,7 +459,7 @@ with the 'with new suggestions' filter selected.
459 1459 1
460 >>> unreviewed_link = extract_link_from_tag(unreviewed, base_href)460 >>> unreviewed_link = extract_link_from_tag(unreviewed, base_href)
461 >>> browser.open(unreviewed_link)461 >>> browser.open(unreviewed_link)
462 >>> browser.url462 >>> browser.url # noqa
463 'http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/+translate?show=new_suggestions'463 'http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/+translate?show=new_suggestions'
464 >>> print(browser.getControl(name='show', index=2).value)464 >>> print(browser.getControl(name='show', index=2).value)
465 new_suggestions465 new_suggestions
@@ -472,7 +472,7 @@ The number of updated entries points to the translation page with the
472 1472 1
473 >>> updated_link = extract_link_from_tag(updated, base_href)473 >>> updated_link = extract_link_from_tag(updated, base_href)
474 >>> browser.open(updated_link)474 >>> browser.open(updated_link)
475 >>> browser.url475 >>> browser.url # noqa
476 'http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/+translate?show=changed_in_ubuntu'476 'http://translations.launchpad.test/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es/+translate?show=changed_in_ubuntu'
477 >>> print(browser.getControl(name='show', index=2).value)477 >>> print(browser.getControl(name='show', index=2).value)
478 changed_in_ubuntu478 changed_in_ubuntu
diff --git a/lib/lp/translations/utilities/doc/gettext_mo_exporter.txt b/lib/lp/translations/utilities/doc/gettext_mo_exporter.txt
index bce7a5d..04ea523 100644
--- a/lib/lp/translations/utilities/doc/gettext_mo_exporter.txt
+++ b/lib/lp/translations/utilities/doc/gettext_mo_exporter.txt
@@ -132,7 +132,7 @@ get an export error exception:
132132
133 >>> mofile = compiler.compile(b'''133 >>> mofile = compiler.compile(b'''
134 ... blah134 ... blah
135 ... ''')135 ... ''') # noqa
136 Traceback (most recent call last):136 Traceback (most recent call last):
137 ...137 ...
138 lp.translations.interfaces.translationexporter.UnknownTranslationExporterError: ...138 lp.translations.interfaces.translationexporter.UnknownTranslationExporterError: ...
diff --git a/lib/lp/translations/utilities/doc/gettext_po_exporter.txt b/lib/lp/translations/utilities/doc/gettext_po_exporter.txt
index 6edf323..e5c8e84 100644
--- a/lib/lp/translations/utilities/doc/gettext_po_exporter.txt
+++ b/lib/lp/translations/utilities/doc/gettext_po_exporter.txt
@@ -154,7 +154,7 @@ It's time to test the wrapping with the '-' char:
154 ... TranslationConstants.SINGULAR_FORM,154 ... TranslationConstants.SINGULAR_FORM,
155 ... u"WARNUNG: Unsichere Zugriffsrechte des umgebenden Verzeichnisses"155 ... u"WARNUNG: Unsichere Zugriffsrechte des umgebenden Verzeichnisses"
156 ... u" des Home-Verzeichnisses `%s'\n")156 ... u" des Home-Verzeichnisses `%s'\n")
157 >>> print(export_translation_message(translation_message))157 >>> print(export_translation_message(translation_message)) # noqa
158 msgid "WARNING: unsafe enclosing directory permissions on homedir `%s'\n"158 msgid "WARNING: unsafe enclosing directory permissions on homedir `%s'\n"
159 msgstr ""159 msgstr ""
160 "WARNUNG: Unsichere Zugriffsrechte des umgebenden Verzeichnisses des Home-"160 "WARNUNG: Unsichere Zugriffsrechte des umgebenden Verzeichnisses des Home-"
diff --git a/lib/lp/translations/utilities/doc/gettext_po_parser.txt b/lib/lp/translations/utilities/doc/gettext_po_parser.txt
index d1dd2b9..b6d933c 100644
--- a/lib/lp/translations/utilities/doc/gettext_po_parser.txt
+++ b/lib/lp/translations/utilities/doc/gettext_po_parser.txt
@@ -16,7 +16,7 @@ POParser
16PO files with empty headers are not allowed.16PO files with empty headers are not allowed.
1717
18 >>> parser = POParser()18 >>> parser = POParser()
19 >>> parser.parse(b'msgid "foo"\nmsgstr ""\n')19 >>> parser.parse(b'msgid "foo"\nmsgstr ""\n') # noqa
20 Traceback (most recent call last):20 Traceback (most recent call last):
21 ...21 ...
22 lp.translations.interfaces.translationimporter.TranslationFormatSyntaxError: ...22 lp.translations.interfaces.translationimporter.TranslationFormatSyntaxError: ...
@@ -24,7 +24,7 @@ PO files with empty headers are not allowed.
24PO files with context after msgids are reported as broken.24PO files with context after msgids are reported as broken.
2525
26 >>> parser.parse(b'msgid ""\nmsgstr ""\n'26 >>> parser.parse(b'msgid ""\nmsgstr ""\n'
27 ... b'msgid "blah"\nmsgctxt "foo"\nmsgstr "bar"\n')27 ... b'msgid "blah"\nmsgctxt "foo"\nmsgstr "bar"\n') # noqa
28 Traceback (most recent call last):28 Traceback (most recent call last):
29 ...29 ...
30 lp.translations.interfaces.translationimporter.TranslationFormatSyntaxError: ...30 lp.translations.interfaces.translationimporter.TranslationFormatSyntaxError: ...
@@ -33,7 +33,7 @@ And a msgctxt followed by msgctxt is caught as well.
3333
34 >>> parser.parse(b'msgid ""\nmsgstr ""\n'34 >>> parser.parse(b'msgid ""\nmsgstr ""\n'
35 ... b'msgctxt "foo"\nmsgctxt "foo1"\n'35 ... b'msgctxt "foo"\nmsgctxt "foo1"\n'
36 ... b'msgid "blah"\nmsgstr "bar"\n')36 ... b'msgid "blah"\nmsgstr "bar"\n') # noqa
37 Traceback (most recent call last):37 Traceback (most recent call last):
38 ...38 ...
39 lp.translations.interfaces.translationimporter.TranslationFormatSyntaxError: ...39 lp.translations.interfaces.translationimporter.TranslationFormatSyntaxError: ...
@@ -42,21 +42,21 @@ When a string is followed by non-string, non-space data, it is caught
42as an error.42as an error.
4343
44 >>> parser.parse(b'msgid ""\nmsgstr "something"\n'44 >>> parser.parse(b'msgid ""\nmsgstr "something"\n'
45 ... b'"foo" whatever\n')45 ... b'"foo" whatever\n') # noqa
46 Traceback (most recent call last):46 Traceback (most recent call last):
47 ...47 ...
48 lp.translations.interfaces.translationimporter.TranslationFormatSyntaxError: ...Extra content found after string...48 lp.translations.interfaces.translationimporter.TranslationFormatSyntaxError: ...Extra content found after string...
4949
50Unrecognized escape sequences are caught as well.50Unrecognized escape sequences are caught as well.
5151
52 >>> parser.parse(b'msgid "\!"\nmsgstr ""\n')52 >>> parser.parse(b'msgid "\!"\nmsgstr ""\n') # noqa
53 Traceback (most recent call last):53 Traceback (most recent call last):
54 ...54 ...
55 lp.translations.interfaces.translationimporter.TranslationFormatSyntaxError: ...Unknown escape sequence...55 lp.translations.interfaces.translationimporter.TranslationFormatSyntaxError: ...Unknown escape sequence...
5656
57Unclosed strings (missing closing quotes) are caught.57Unclosed strings (missing closing quotes) are caught.
5858
59 >>> parser.parse(b'msgid ""\nmsgstr "\n')59 >>> parser.parse(b'msgid ""\nmsgstr "\n') # noqa
60 Traceback (most recent call last):60 Traceback (most recent call last):
61 ...61 ...
62 lp.translations.interfaces.translationimporter.TranslationFormatSyntaxError: ...String not terminated...62 lp.translations.interfaces.translationimporter.TranslationFormatSyntaxError: ...String not terminated...
@@ -322,7 +322,7 @@ errors occur:
322 ... msgstr "abcdef"322 ... msgstr "abcdef"
323 ... """ # noqa323 ... """ # noqa
324324
325 >>> parser.parse(content + chunk2)325 >>> parser.parse(content + chunk2) # noqa
326 Traceback (most recent call last):326 Traceback (most recent call last):
327 ...327 ...
328 lp.translations.interfaces.translationimporter.TranslationFormatInvalidInputError: Line 13: Could not decode input from UTF-8328 lp.translations.interfaces.translationimporter.TranslationFormatInvalidInputError: Line 13: Could not decode input from UTF-8

Subscribers

People subscribed via source and target branches

to status/vote changes: