Merge ~cjwatson/launchpad:doctest-remove-py2-exception-module into launchpad:master

Proposed by Colin Watson
Status: Merged
Approved by: Colin Watson
Approved revision: 8a0009dd616aec3499f79a29a31f0eb3480600fb
Merge reported by: Otto Co-Pilot
Merged at revision: not available
Proposed branch: ~cjwatson/launchpad:doctest-remove-py2-exception-module
Merge into: launchpad:master
Diff against target: 7819 lines (+53/-851)
311 files modified
lib/lp/answers/doc/faq.txt (+0/-2)
lib/lp/answers/doc/faqtarget.txt (+0/-1)
lib/lp/answers/doc/questiontarget.txt (+0/-4)
lib/lp/answers/doc/workflow.txt (+0/-5)
lib/lp/answers/stories/distribution-package-answer-contact.txt (+0/-1)
lib/lp/answers/stories/faq-add.txt (+0/-2)
lib/lp/answers/stories/faq-browse-and-search.txt (+0/-2)
lib/lp/answers/stories/faq-edit.txt (+0/-4)
lib/lp/answers/stories/project-add-question.txt (+0/-1)
lib/lp/answers/stories/question-add.txt (+0/-1)
lib/lp/answers/stories/question-browse-and-search.txt (+0/-7)
lib/lp/answers/stories/question-edit.txt (+0/-1)
lib/lp/answers/stories/question-overview.txt (+0/-4)
lib/lp/answers/stories/question-reject-and-change-status.txt (+0/-3)
lib/lp/answers/stories/this-is-a-faq.txt (+0/-3)
lib/lp/app/doc/batch-navigation.txt (+0/-1)
lib/lp/app/doc/displaying-numbers.txt (+0/-1)
lib/lp/app/doc/launchpadform.txt (+0/-1)
lib/lp/app/doc/object-privacy.txt (+0/-1)
lib/lp/app/doc/tales.txt (+0/-3)
lib/lp/app/stories/basics/marketing.txt (+0/-1)
lib/lp/app/stories/basics/max-batch-size.txt (+0/-1)
lib/lp/app/stories/basics/xx-developerexceptions.txt (+0/-1)
lib/lp/app/stories/basics/xx-launchpad-statistics.txt (+0/-1)
lib/lp/app/stories/basics/xx-offsite-form-post.txt (+0/-11)
lib/lp/app/stories/basics/xx-opstats.txt (+0/-1)
lib/lp/app/stories/folder.txt (+7/-7)
lib/lp/app/stories/form/xx-form-layout.txt (+0/-2)
lib/lp/app/stories/launchpad-root/xx-featuredprojects.txt (+0/-3)
lib/lp/app/validators/email.py (+2/-3)
lib/lp/app/validators/tests/validation.txt (+0/-5)
lib/lp/app/validators/url.py (+0/-1)
lib/lp/app/widgets/date.py (+4/-8)
lib/lp/app/widgets/doc/announcement-date-widget.txt (+0/-2)
lib/lp/app/widgets/doc/image-widget.txt (+6/-6)
lib/lp/app/widgets/doc/project-scope-widget.txt (+1/-4)
lib/lp/app/widgets/doc/stripped-text-widget.txt (+1/-1)
lib/lp/app/widgets/doc/zope3-widgets-use-form-ng.txt (+0/-3)
lib/lp/archivepublisher/tests/archive-signing.txt (+0/-1)
lib/lp/archiveuploader/tests/nascentupload-announcements.txt (+1/-1)
lib/lp/archiveuploader/tests/nascentupload-epoch-handling.txt (+0/-2)
lib/lp/archiveuploader/tests/nascentupload.txt (+1/-1)
lib/lp/archiveuploader/tests/nascentuploadfile.txt (+0/-2)
lib/lp/archiveuploader/tests/upload-path-parsing.txt (+0/-16)
lib/lp/blueprints/doc/specgraph.txt (+0/-1)
lib/lp/blueprints/stories/blueprints/xx-creation.txt (+0/-2)
lib/lp/blueprints/stories/blueprints/xx-dependencies.txt (+0/-4)
lib/lp/blueprints/stories/blueprints/xx-editing.txt (+0/-3)
lib/lp/blueprints/stories/sprints/sprint-settopics.txt (+0/-3)
lib/lp/blueprints/stories/sprints/xx-sprints.txt (+0/-3)
lib/lp/blueprints/stories/standalone/subscribing.txt (+0/-1)
lib/lp/blueprints/stories/standalone/xx-branch-links.txt (+0/-1)
lib/lp/blueprints/stories/standalone/xx-views.txt (+0/-1)
lib/lp/bugs/doc/bug-change.txt (+0/-1)
lib/lp/bugs/doc/bug-reported-acknowledgement.txt (+0/-7)
lib/lp/bugs/doc/bug-reporting-guidelines.txt (+0/-7)
lib/lp/bugs/doc/bug-tags.txt (+0/-1)
lib/lp/bugs/doc/bug.txt (+1/-6)
lib/lp/bugs/doc/bugattachments.txt (+1/-6)
lib/lp/bugs/doc/bugmessage-visibility.txt (+0/-1)
lib/lp/bugs/doc/bugsubscription.txt (+0/-1)
lib/lp/bugs/doc/bugtask-assignee-widget.txt (+2/-2)
lib/lp/bugs/doc/bugtask-bugwatch-widget.txt (+0/-1)
lib/lp/bugs/doc/bugtask-package-widget.txt (+2/-5)
lib/lp/bugs/doc/bugtask-retrieval.txt (+1/-2)
lib/lp/bugs/doc/bugtask-search.txt (+0/-1)
lib/lp/bugs/doc/bugtask-status-changes.txt (+0/-1)
lib/lp/bugs/doc/bugtask-status-workflow.txt (+0/-2)
lib/lp/bugs/doc/bugtracker-person.txt (+0/-1)
lib/lp/bugs/doc/bugwatch.txt (+0/-2)
lib/lp/bugs/doc/bugwidget.txt (+0/-1)
lib/lp/bugs/doc/cve-update.txt (+0/-1)
lib/lp/bugs/doc/cve.txt (+0/-1)
lib/lp/bugs/doc/externalbugtracker-bugzilla-api.txt (+0/-8)
lib/lp/bugs/doc/externalbugtracker-bugzilla-lp-plugin.txt (+0/-4)
lib/lp/bugs/doc/externalbugtracker-bugzilla-oddities.txt (+0/-1)
lib/lp/bugs/doc/externalbugtracker-bugzilla.txt (+0/-7)
lib/lp/bugs/doc/externalbugtracker-debbugs.txt (+0/-4)
lib/lp/bugs/doc/externalbugtracker-emailaddress.txt (+0/-1)
lib/lp/bugs/doc/externalbugtracker-mantis-csv.txt (+0/-1)
lib/lp/bugs/doc/externalbugtracker-mantis-logging-in.txt (+0/-1)
lib/lp/bugs/doc/externalbugtracker-mantis.txt (+0/-1)
lib/lp/bugs/doc/externalbugtracker-roundup-python-bugs.txt (+0/-1)
lib/lp/bugs/doc/externalbugtracker-roundup.txt (+0/-2)
lib/lp/bugs/doc/externalbugtracker-rt.txt (+0/-4)
lib/lp/bugs/doc/externalbugtracker-sourceforge.txt (+0/-4)
lib/lp/bugs/doc/externalbugtracker-trac-lp-plugin.txt (+0/-5)
lib/lp/bugs/doc/externalbugtracker-trac.txt (+0/-5)
lib/lp/bugs/doc/externalbugtracker.txt (+0/-3)
lib/lp/bugs/doc/initial-bug-contacts.txt (+0/-2)
lib/lp/bugs/doc/malone-xmlrpc.txt (+0/-8)
lib/lp/bugs/doc/official-bug-tags.txt (+0/-6)
lib/lp/bugs/doc/vocabularies.txt (+0/-1)
lib/lp/bugs/stories/bug-privacy/xx-bug-privacy.txt (+0/-2)
lib/lp/bugs/stories/bug-privacy/xx-presenting-private-bugs.txt (+0/-2)
lib/lp/bugs/stories/bug-release-management/xx-anonymous-bug-nomination.txt (+0/-1)
lib/lp/bugs/stories/bug-release-management/xx-bug-release-management.txt (+0/-6)
lib/lp/bugs/stories/bug-tags/xx-official-bug-tags.txt (+0/-4)
lib/lp/bugs/stories/bugattachments/xx-bugattachments.txt (+0/-1)
lib/lp/bugs/stories/bugs/bug-add-subscriber.txt (+0/-1)
lib/lp/bugs/stories/bugs/xx-bug-comment-attach-file.txt (+0/-1)
lib/lp/bugs/stories/bugs/xx-bug-create-question.txt (+0/-1)
lib/lp/bugs/stories/bugs/xx-bug-edit.txt (+0/-1)
lib/lp/bugs/stories/bugs/xx-bug-hidden-comments.txt (+0/-1)
lib/lp/bugs/stories/bugs/xx-bug-nomination-table-row.txt (+0/-1)
lib/lp/bugs/stories/bugs/xx-bugs-advanced-search-upstream-status.txt (+0/-1)
lib/lp/bugs/stories/bugs/xx-distribution-bugs-page.txt (+0/-1)
lib/lp/bugs/stories/bugs/xx-incomplete-bugs.txt (+0/-1)
lib/lp/bugs/stories/bugs/xx-product-bugs-page.txt (+0/-1)
lib/lp/bugs/stories/bugs/xx-unique-ids-on-bug-page.txt (+0/-1)
lib/lp/bugs/stories/bugtask-management/xx-bug-privileged-statuses.txt (+0/-2)
lib/lp/bugs/stories/bugtask-management/xx-bugtask-edit-forms.txt (+0/-1)
lib/lp/bugs/stories/bugtask-management/xx-view-editable-bug-task.txt (+0/-2)
lib/lp/bugs/stories/bugtask-searches/xx-unexpected-form-data.txt (+0/-3)
lib/lp/bugs/stories/bugtracker/xx-bugtracker-handshake-tokens.txt (+0/-1)
lib/lp/bugs/stories/bugtracker/xx-bugtracker-remote-bug.txt (+0/-2)
lib/lp/bugs/stories/cve/cve-linking.txt (+0/-1)
lib/lp/bugs/stories/feeds/xx-bug-atom.txt (+0/-1)
lib/lp/bugs/stories/feeds/xx-bug-html.txt (+1/-1)
lib/lp/bugs/stories/patches-view/patches-view.txt (+0/-1)
lib/lp/bugs/stories/upstream-bugprivacy/xx-upstream-bug-privacy.txt (+0/-2)
lib/lp/bugs/stories/xx-bugs-statistics-portlet.txt (+0/-3)
lib/lp/bugs/tests/buglinktarget.txt (+1/-4)
lib/lp/bugs/tests/bugs-emailinterface.txt (+0/-2)
lib/lp/bugs/tests/bugzilla-api-xmlrpc-transport.txt (+0/-4)
lib/lp/bugs/tests/bugzilla-xmlrpc-transport.txt (+0/-4)
lib/lp/bugs/tests/externalbugtracker-xmlrpc-transport.txt (+0/-1)
lib/lp/bugs/tests/trac-xmlrpc-transport.txt (+0/-3)
lib/lp/buildmaster/doc/builder.txt (+0/-1)
lib/lp/buildmaster/stories/xx-builder-page.txt (+0/-5)
lib/lp/buildmaster/stories/xx-buildfarm-index.txt (+0/-2)
lib/lp/code/doc/branch.txt (+0/-2)
lib/lp/code/doc/codeimport-machine.txt (+0/-1)
lib/lp/code/doc/codeimport.txt (+0/-3)
lib/lp/code/stories/branches/xx-branch-edit.txt (+0/-1)
lib/lp/code/stories/branches/xx-branch-reference.txt (+0/-2)
lib/lp/code/stories/branches/xx-branchmergeproposals.txt (+0/-3)
lib/lp/code/stories/branches/xx-bug-branch-links.txt (+0/-2)
lib/lp/code/stories/branches/xx-code-review-comments.txt (+0/-1)
lib/lp/code/stories/branches/xx-subscribing-branches.txt (+0/-2)
lib/lp/code/stories/branches/xx-upgrading-branches.txt (+0/-1)
lib/lp/code/stories/codeimport/xx-create-codeimport.txt (+0/-1)
lib/lp/code/stories/codeimport/xx-edit-codeimport.txt (+0/-3)
lib/lp/coop/answersbugs/stories/question-buglink.txt (+0/-1)
lib/lp/coop/answersbugs/stories/question-makebug.txt (+0/-1)
lib/lp/registry/browser/tests/gpg-views.txt (+0/-1)
lib/lp/registry/browser/tests/product-views.txt (+0/-1)
lib/lp/registry/browser/tests/team-views.txt (+0/-1)
lib/lp/registry/doc/announcement.txt (+0/-3)
lib/lp/registry/doc/commercialsubscription.txt (+0/-1)
lib/lp/registry/doc/distribution-mirror.txt (+0/-6)
lib/lp/registry/doc/distribution.txt (+0/-6)
lib/lp/registry/doc/distroseries.txt (+0/-1)
lib/lp/registry/doc/karmacache.txt (+0/-1)
lib/lp/registry/doc/launchpadlib/project-registry.txt.disabled (+2/-2)
lib/lp/registry/doc/milestone.txt (+1/-1)
lib/lp/registry/doc/person-account.txt (+0/-2)
lib/lp/registry/doc/person.txt (+0/-6)
lib/lp/registry/doc/pillar-aliases-field.txt (+0/-5)
lib/lp/registry/doc/pillar.txt (+0/-8)
lib/lp/registry/doc/private-team-roles.txt (+0/-1)
lib/lp/registry/doc/productrelease-file-download.txt (+0/-5)
lib/lp/registry/doc/productseries.txt (+0/-4)
lib/lp/registry/doc/projectgroup.txt (+0/-2)
lib/lp/registry/doc/teammembership-email-notification.txt (+0/-1)
lib/lp/registry/doc/teammembership.txt (+0/-5)
lib/lp/registry/doc/vocabularies.txt (+0/-2)
lib/lp/registry/model/projectgroup.py (+0/-1)
lib/lp/registry/stories/announcements/xx-announcements.txt (+0/-7)
lib/lp/registry/stories/distribution/xx-distribution-launchpad-usage.txt (+0/-3)
lib/lp/registry/stories/distribution/xx-distribution-overview.txt (+0/-3)
lib/lp/registry/stories/distributionmirror/xx-distribution-countrymirrors.txt (+0/-1)
lib/lp/registry/stories/distributionmirror/xx-distribution-mirrors.txt (+0/-3)
lib/lp/registry/stories/distributionmirror/xx-distributionmirror-prober-logs.txt (+0/-2)
lib/lp/registry/stories/distributionmirror/xx-reassign-distributionmirror.txt (+0/-2)
lib/lp/registry/stories/distroseries/distroseries-admin.txt (+0/-2)
lib/lp/registry/stories/distroseries/xx-show-distroseries-packaging.txt (+0/-2)
lib/lp/registry/stories/gpg-coc/xx-ubuntu-codeofconduct-signer.txt (+0/-1)
lib/lp/registry/stories/location/personlocation-edit.txt (+0/-1)
lib/lp/registry/stories/mailinglists/lifecycle.txt (+0/-3)
lib/lp/registry/stories/mailinglists/subscriptions.txt (+0/-2)
lib/lp/registry/stories/milestone/xx-create-milestone-on-distribution.txt (+0/-1)
lib/lp/registry/stories/milestone/xx-milestone-add-and-edit.txt (+0/-5)
lib/lp/registry/stories/object/xx-object-branding.txt (+0/-5)
lib/lp/registry/stories/person/xx-add-sshkey.txt (+0/-3)
lib/lp/registry/stories/person/xx-admin-person-review.txt (+0/-1)
lib/lp/registry/stories/person/xx-adminpeoplemerge.txt (+0/-2)
lib/lp/registry/stories/person/xx-approve-members.txt (+0/-1)
lib/lp/registry/stories/person/xx-deactivate-account.txt (+0/-1)
lib/lp/registry/stories/person/xx-person-claim-merge.txt (+1/-1)
lib/lp/registry/stories/person/xx-person-home.txt (+0/-1)
lib/lp/registry/stories/pillar/xx-pillar-deactivation.txt (+0/-4)
lib/lp/registry/stories/pillar/xx-pillar-traversal.txt (+0/-1)
lib/lp/registry/stories/product/xx-product-files.txt (+0/-2)
lib/lp/registry/stories/product/xx-product-package-pages.txt (+0/-1)
lib/lp/registry/stories/product/xx-projects-index.txt (+0/-1)
lib/lp/registry/stories/productrelease/xx-productrelease-basics.txt (+0/-3)
lib/lp/registry/stories/productrelease/xx-productrelease-delete.txt (+0/-2)
lib/lp/registry/stories/productseries/xx-productseries-add-and-edit.txt (+0/-2)
lib/lp/registry/stories/productseries/xx-productseries-delete.txt (+0/-1)
lib/lp/registry/stories/project/xx-project-add.txt (+0/-1)
lib/lp/registry/stories/project/xx-project-edit.txt (+0/-3)
lib/lp/registry/stories/project/xx-project-index.txt (+0/-10)
lib/lp/registry/stories/team-polls/create-polls.txt (+0/-1)
lib/lp/registry/stories/team-polls/edit-options.txt (+0/-1)
lib/lp/registry/stories/team/xx-team-add-my-teams.txt (+0/-2)
lib/lp/registry/stories/team/xx-team-home.txt (+0/-1)
lib/lp/registry/stories/teammembership/private-team.txt (+0/-2)
lib/lp/registry/stories/teammembership/xx-add-member.txt (+0/-1)
lib/lp/registry/stories/teammembership/xx-member-renewed-membership.txt (+0/-2)
lib/lp/registry/stories/teammembership/xx-team-leave.txt (+0/-2)
lib/lp/registry/stories/teammembership/xx-teammembership.txt (+0/-2)
lib/lp/registry/tests/person_from_principal.txt (+0/-1)
lib/lp/services/database/doc/db-policy.txt (+1/-3)
lib/lp/services/database/doc/multitablecopy.txt (+0/-1)
lib/lp/services/database/doc/storm.txt (+1/-3)
lib/lp/services/feeds/doc/feeds.txt (+0/-4)
lib/lp/services/feeds/stories/xx-navigation.txt (+0/-4)
lib/lp/services/fields/doc/uri-field.txt (+0/-8)
lib/lp/services/gpg/doc/gpg-signatures.txt (+0/-5)
lib/lp/services/gpg/doc/gpghandler.txt (+0/-8)
lib/lp/services/helpers.py (+2/-2)
lib/lp/services/identity/doc/emailaddress.txt (+0/-4)
lib/lp/services/librarian/doc/librarian.txt (+0/-7)
lib/lp/services/mail/doc/emailauthentication.txt (+0/-2)
lib/lp/services/mail/doc/mailbox.txt (+2/-2)
lib/lp/services/mail/doc/notification-recipient-set.txt (+0/-2)
lib/lp/services/mail/tests/incomingmail.txt (+2/-2)
lib/lp/services/messages/doc/message.txt (+0/-4)
lib/lp/services/oauth/doc/oauth-pages.txt (+0/-2)
lib/lp/services/oauth/stories/access-token.txt (+0/-1)
lib/lp/services/oauth/stories/authorize-token.txt (+0/-6)
lib/lp/services/oauth/stories/managing-tokens.txt (+0/-1)
lib/lp/services/temporaryblobstorage/doc/temporaryblobstorage.txt (+0/-1)
lib/lp/services/webapp/doc/canonical_url.txt (+2/-5)
lib/lp/services/webapp/doc/menus.txt (+0/-2)
lib/lp/services/webapp/doc/navigation.txt (+0/-5)
lib/lp/services/webapp/doc/renamed-view.txt (+0/-1)
lib/lp/services/webapp/doc/test_adapter.txt (+0/-7)
lib/lp/services/webapp/doc/test_adapter_permissions.txt (+2/-2)
lib/lp/services/webapp/doc/test_adapter_timeout.txt.disabled (+0/-1)
lib/lp/services/webapp/doc/timeout.txt (+2/-2)
lib/lp/services/webapp/doc/webapp-publication.txt (+0/-9)
lib/lp/services/webservice/doc/launchpadlib.txt (+0/-1)
lib/lp/services/webservice/stories/launchpadlib.txt (+0/-1)
lib/lp/soyuz/browser/tests/archive-views.txt (+0/-1)
lib/lp/soyuz/browser/tests/distroseriesqueue-views.txt (+0/-1)
lib/lp/soyuz/doc/archive.txt (+0/-23)
lib/lp/soyuz/doc/archiveauthtoken.txt (+0/-4)
lib/lp/soyuz/doc/archivepermission.txt (+0/-2)
lib/lp/soyuz/doc/archivesubscriber.txt (+0/-11)
lib/lp/soyuz/doc/build-files.txt (+0/-2)
lib/lp/soyuz/doc/distroseriesqueue.txt (+2/-6)
lib/lp/soyuz/doc/package-diff.txt (+0/-1)
lib/lp/soyuz/doc/publishing-security.txt (+0/-4)
lib/lp/soyuz/stories/distroseries/add-architecture.txt (+0/-2)
lib/lp/soyuz/stories/ppa/xx-copy-packages.txt (+0/-3)
lib/lp/soyuz/stories/ppa/xx-delete-packages.txt (+0/-5)
lib/lp/soyuz/stories/ppa/xx-edit-dependencies.txt (+0/-5)
lib/lp/soyuz/stories/ppa/xx-ppa-files.txt (+0/-3)
lib/lp/soyuz/stories/ppa/xx-ppa-navigation.txt (+0/-4)
lib/lp/soyuz/stories/ppa/xx-ppa-packages.txt (+0/-3)
lib/lp/soyuz/stories/ppa/xx-ppa-workflow.txt (+0/-9)
lib/lp/soyuz/stories/ppa/xx-private-ppa-subscriptions.txt (+0/-3)
lib/lp/soyuz/stories/ppa/xx-private-ppas.txt (+0/-3)
lib/lp/soyuz/stories/ppa/xx-ubuntu-ppas.txt (+0/-3)
lib/lp/soyuz/stories/soyuz/xx-build-record.txt (+0/-6)
lib/lp/soyuz/stories/soyuz/xx-builds-pages.txt (+0/-2)
lib/lp/soyuz/stories/soyuz/xx-distribution-add.txt (+0/-2)
lib/lp/soyuz/stories/soyuz/xx-distribution-archives.txt (+0/-1)
lib/lp/soyuz/stories/soyuz/xx-distributionsourcepackagerelease-pages.txt (+0/-1)
lib/lp/soyuz/stories/soyuz/xx-distroarchseries-binpackages.txt (+0/-1)
lib/lp/soyuz/stories/soyuz/xx-distroarchseries.txt (+0/-1)
lib/lp/soyuz/stories/soyuz/xx-package-diff.txt (+0/-1)
lib/lp/soyuz/stories/soyuz/xx-person-packages.txt (+0/-1)
lib/lp/soyuz/stories/soyuz/xx-private-builds.txt (+0/-1)
lib/lp/soyuz/stories/soyuz/xx-sourcepackage-changelog.txt (+0/-1)
lib/lp/soyuz/stories/webservice/xx-builders.txt (+1/-1)
lib/lp/testing/doc/pagetest-helpers.txt (+0/-1)
lib/lp/translations/browser/tests/pofile-views.txt (+0/-3)
lib/lp/translations/doc/browser-helpers.txt (+0/-2)
lib/lp/translations/doc/potranslation.txt (+0/-1)
lib/lp/translations/doc/translationmessage-destroy.txt (+0/-1)
lib/lp/translations/stories/distribution/xx-distribution-change-language-pack-admins.txt (+0/-2)
lib/lp/translations/stories/distribution/xx-distribution-translations.txt (+0/-2)
lib/lp/translations/stories/distroseries/xx-distroseries-translations.txt (+0/-9)
lib/lp/translations/stories/importqueue/xx-translation-import-queue-filtering.txt (+0/-2)
lib/lp/translations/stories/productseries/xx-productseries-export-to-branch.txt (+0/-1)
lib/lp/translations/stories/productseries/xx-productseries-translation-export.txt (+0/-2)
lib/lp/translations/stories/project/xx-project-translations.txt (+0/-2)
lib/lp/translations/stories/standalone/custom-language-codes.txt (+0/-4)
lib/lp/translations/stories/standalone/xx-language.txt (+0/-6)
lib/lp/translations/stories/standalone/xx-licensing.txt (+0/-2)
lib/lp/translations/stories/standalone/xx-person-editlanguages.txt (+0/-1)
lib/lp/translations/stories/standalone/xx-pofile-export.txt (+0/-1)
lib/lp/translations/stories/standalone/xx-pofile-translate-alternative-language.txt (+0/-1)
lib/lp/translations/stories/standalone/xx-pofile-translate.txt (+0/-1)
lib/lp/translations/stories/standalone/xx-potemplate-admin.txt (+0/-1)
lib/lp/translations/stories/standalone/xx-potemplate-edit.txt (+0/-2)
lib/lp/translations/stories/standalone/xx-potemplate-export.txt (+0/-1)
lib/lp/translations/stories/standalone/xx-potemplate-index.txt (+0/-3)
lib/lp/translations/stories/standalone/xx-product-export.txt (+0/-3)
lib/lp/translations/stories/standalone/xx-product-translations.txt (+0/-3)
lib/lp/translations/stories/standalone/xx-series-templates.txt (+0/-2)
lib/lp/translations/stories/standalone/xx-translationmessage-translate.txt (+0/-5)
lib/lp/translations/stories/translationgroups/xx-change-translation-policy.txt (+0/-2)
lib/lp/translations/stories/translationgroups/xx-translationgroups.txt (+0/-12)
lib/lp/translations/stories/translations/xx-translations.txt (+0/-3)
lib/lp/translations/utilities/doc/gettext_mo_exporter.txt (+0/-1)
lib/lp/translations/utilities/doc/gettext_po_parser.txt (+0/-7)
lib/lp/translations/utilities/gettext_po_parser.py (+0/-5)
Reviewer Review Type Date Requested Status
Cristian Gonzalez (community) Approve
Review via email: mp+407194@code.launchpad.net

Commit message

Remove all uses of IGNORE_EXCEPTION_MODULE_IN_PYTHON2

Description of the change

This is no longer needed now that we require Python 3.

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/answers/doc/faq.txt b/lib/lp/answers/doc/faq.txt
index 594242d..c4af905 100644
--- a/lib/lp/answers/doc/faq.txt
+++ b/lib/lp/answers/doc/faq.txt
@@ -320,7 +320,6 @@ That change is also considered an answer:
320It is not possible to modify the faq attribute directly:320It is not possible to modify the faq attribute directly:
321321
322 >>> fnord_question.faq = None322 >>> fnord_question.faq = None
323 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
324 Traceback (most recent call last):323 Traceback (most recent call last):
325 ...324 ...
326 zope.security.interfaces.ForbiddenAttribute: ...325 zope.security.interfaces.ForbiddenAttribute: ...
@@ -329,7 +328,6 @@ And it is not allowed to call linkFAQ() when the FAQ is already linked:
329328
330 >>> message = fnord_question.linkFAQ(329 >>> message = fnord_question.linkFAQ(
331 ... no_priv, firefox_faq, 'See the FAQ.')330 ... no_priv, firefox_faq, 'See the FAQ.')
332 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
333 Traceback (most recent call last):331 Traceback (most recent call last):
334 ...332 ...
335 lp.answers.errors.FAQTargetError: Cannot call linkFAQ() with already linked FAQ.333 lp.answers.errors.FAQTargetError: Cannot call linkFAQ() with already linked FAQ.
diff --git a/lib/lp/answers/doc/faqtarget.txt b/lib/lp/answers/doc/faqtarget.txt
index 0518e70..d3302d1 100644
--- a/lib/lp/answers/doc/faqtarget.txt
+++ b/lib/lp/answers/doc/faqtarget.txt
@@ -38,7 +38,6 @@ the target.
3838
39 >>> no_priv = getUtility(ILaunchBag).user39 >>> no_priv = getUtility(ILaunchBag).user
40 >>> target.newFAQ(no_priv, 'Title', 'Summary', content='Content')40 >>> target.newFAQ(no_priv, 'Title', 'Summary', content='Content')
41 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
42 Traceback (most recent call last):41 Traceback (most recent call last):
43 ...42 ...
44 zope.security.interfaces.Unauthorized: ...43 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/answers/doc/questiontarget.txt b/lib/lp/answers/doc/questiontarget.txt
index 99731b0..252d463 100644
--- a/lib/lp/answers/doc/questiontarget.txt
+++ b/lib/lp/answers/doc/questiontarget.txt
@@ -89,7 +89,6 @@ Anonymous users cannot use newQuestion().
89 >>> login(ANONYMOUS)89 >>> login(ANONYMOUS)
90 >>> question = target.newQuestion(90 >>> question = target.newQuestion(
91 ... sample_person, 'This will fail', 'Failed?')91 ... sample_person, 'This will fail', 'Failed?')
92 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
93 Traceback (most recent call last):92 Traceback (most recent call last):
94 ...93 ...
95 zope.security.interfaces.Unauthorized: ...94 zope.security.interfaces.Unauthorized: ...
@@ -388,7 +387,6 @@ is only available to registered users.
388387
389 >>> name18 = getUtility(IPersonSet).getByName('name18')388 >>> name18 = getUtility(IPersonSet).getByName('name18')
390 >>> target.addAnswerContact(name18, name18)389 >>> target.addAnswerContact(name18, name18)
391 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
392 Traceback (most recent call last):390 Traceback (most recent call last):
393 ...391 ...
394 zope.security.interfaces.Unauthorized: ...392 zope.security.interfaces.Unauthorized: ...
@@ -419,7 +417,6 @@ languages.
419 >>> len(sample_person.languages)417 >>> len(sample_person.languages)
420 0418 0
421 >>> target.addAnswerContact(sample_person, sample_person)419 >>> target.addAnswerContact(sample_person, sample_person)
422 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
423 Traceback (most recent call last):420 Traceback (most recent call last):
424 ...421 ...
425 lp.answers.errors.AddAnswerContactError: An answer contact must speak a language...422 lp.answers.errors.AddAnswerContactError: An answer contact must speak a language...
@@ -441,7 +438,6 @@ Only registered users can remove an answer contact.
441438
442 >>> login(ANONYMOUS)439 >>> login(ANONYMOUS)
443 >>> target.removeAnswerContact(name18, name18)440 >>> target.removeAnswerContact(name18, name18)
444 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
445 Traceback (most recent call last):441 Traceback (most recent call last):
446 ...442 ...
447 zope.security.interfaces.Unauthorized: ...443 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/answers/doc/workflow.txt b/lib/lp/answers/doc/workflow.txt
index c9d3c74..6f25e23 100644
--- a/lib/lp/answers/doc/workflow.txt
+++ b/lib/lp/answers/doc/workflow.txt
@@ -426,7 +426,6 @@ As a Launchpad administrator, so can Stub.
426 >>> login(marilize.preferredemail.email)426 >>> login(marilize.preferredemail.email)
427 >>> spam_question.reject(427 >>> spam_question.reject(
428 ... marilize, "We don't send free CDs any more.")428 ... marilize, "We don't send free CDs any more.")
429 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
430 Traceback (most recent call last):429 Traceback (most recent call last):
431 ...430 ...
432 zope.security.interfaces.Unauthorized: ...431 zope.security.interfaces.Unauthorized: ...
@@ -485,7 +484,6 @@ It is not possible to change the status attribute directly.
485 >>> login('foo.bar@canonical.com')484 >>> login('foo.bar@canonical.com')
486 >>> question = ubuntu.newQuestion(**new_question_args)485 >>> question = ubuntu.newQuestion(**new_question_args)
487 >>> question.status = QuestionStatus.INVALID486 >>> question.status = QuestionStatus.INVALID
488 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
489 Traceback (most recent call last):487 Traceback (most recent call last):
490 ...488 ...
491 zope.security.interfaces.ForbiddenAttribute: ...489 zope.security.interfaces.ForbiddenAttribute: ...
@@ -544,7 +542,6 @@ permission, an Unauthorized exception is thrown.
544542
545 >>> login('test@canonical.com')543 >>> login('test@canonical.com')
546 >>> question.setStatus(sample_person, QuestionStatus.EXPIRED, 'Expire.')544 >>> question.setStatus(sample_person, QuestionStatus.EXPIRED, 'Expire.')
547 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
548 Traceback (most recent call last):545 Traceback (most recent call last):
549 ...546 ...
550 zope.security.interfaces.Unauthorized: ...547 zope.security.interfaces.Unauthorized: ...
@@ -593,7 +590,6 @@ Users without launchpad.Moderator privileges cannot set the assignee.
593590
594 >>> login('no-priv@canonical.com')591 >>> login('no-priv@canonical.com')
595 >>> question.assignee = sample_person592 >>> question.assignee = sample_person
596 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
597 Traceback (most recent call last):593 Traceback (most recent call last):
598 ...594 ...
599 zope.security.interfaces.Unauthorized: (<lp.answers.model.question.Question ...>, 'assignee', 'launchpad.Append')595 zope.security.interfaces.Unauthorized: (<lp.answers.model.question.Question ...>, 'assignee', 'launchpad.Append')
@@ -767,7 +763,6 @@ method.
767763
768 >>> login(stub.preferredemail.email)764 >>> login(stub.preferredemail.email)
769 >>> question.setStatus(stub, QuestionStatus.OPEN, reject_message)765 >>> question.setStatus(stub, QuestionStatus.OPEN, reject_message)
770 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
771 Traceback (most recent call last):766 Traceback (most recent call last):
772 ...767 ...
773 lp.answers.errors.NotMessageOwnerError: ...768 lp.answers.errors.NotMessageOwnerError: ...
diff --git a/lib/lp/answers/stories/distribution-package-answer-contact.txt b/lib/lp/answers/stories/distribution-package-answer-contact.txt
index 2aa64a0..2d2ebd8 100644
--- a/lib/lp/answers/stories/distribution-package-answer-contact.txt
+++ b/lib/lp/answers/stories/distribution-package-answer-contact.txt
@@ -38,7 +38,6 @@ To register themselves as answer contact, the user clicks on the
38'Set answer contact' link. They need to login to access that function.38'Set answer contact' link. They need to login to access that function.
3939
40 >>> anon_browser.getLink('Set answer contact').click()40 >>> anon_browser.getLink('Set answer contact').click()
41 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
42 Traceback (most recent call last):41 Traceback (most recent call last):
43 ...42 ...
44 zope.security.interfaces.Unauthorized: ...43 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/answers/stories/faq-add.txt b/lib/lp/answers/stories/faq-add.txt
index ac6023e..ae54966 100644
--- a/lib/lp/answers/stories/faq-add.txt
+++ b/lib/lp/answers/stories/faq-add.txt
@@ -11,14 +11,12 @@ the project owner, therefore they cannot create a new FAQ.
11 >>> user_browser.getLink('All FAQs').click()11 >>> user_browser.getLink('All FAQs').click()
1212
13 >>> user_browser.getLink('Create a new FAQ')13 >>> user_browser.getLink('Create a new FAQ')
14 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
15 Traceback (most recent call last):14 Traceback (most recent call last):
16 ...15 ...
17 zope.testbrowser.browser.LinkNotFoundError16 zope.testbrowser.browser.LinkNotFoundError
1817
19 >>> user_browser.open(18 >>> user_browser.open(
20 ... 'http://answers.launchpad.test/firefox/+createfaq')19 ... 'http://answers.launchpad.test/firefox/+createfaq')
21 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
22 Traceback (most recent call last):20 Traceback (most recent call last):
23 ...21 ...
24 zope.security.interfaces.Unauthorized: ...22 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/answers/stories/faq-browse-and-search.txt b/lib/lp/answers/stories/faq-browse-and-search.txt
index fab6403..b911c59 100644
--- a/lib/lp/answers/stories/faq-browse-and-search.txt
+++ b/lib/lp/answers/stories/faq-browse-and-search.txt
@@ -185,13 +185,11 @@ Accessing an FAQ directly
185Asking for a non-existent FAQ or an invalid ID will raise a 404 error.185Asking for a non-existent FAQ or an invalid ID will raise a 404 error.
186186
187 >>> anon_browser.open('http://answers.launchpad.test/ubuntu/+faq/171717')187 >>> anon_browser.open('http://answers.launchpad.test/ubuntu/+faq/171717')
188 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
189 Traceback (most recent call last):188 Traceback (most recent call last):
190 ...189 ...
191 zope.publisher.interfaces.NotFound: ...190 zope.publisher.interfaces.NotFound: ...
192191
193 >>> anon_browser.open('http://answers.launchpad.test/ubuntu/+faq/bad')192 >>> anon_browser.open('http://answers.launchpad.test/ubuntu/+faq/bad')
194 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
195 Traceback (most recent call last):193 Traceback (most recent call last):
196 ...194 ...
197 zope.publisher.interfaces.NotFound: ...195 zope.publisher.interfaces.NotFound: ...
diff --git a/lib/lp/answers/stories/faq-edit.txt b/lib/lp/answers/stories/faq-edit.txt
index 9a635d4..be6a95e 100644
--- a/lib/lp/answers/stories/faq-edit.txt
+++ b/lib/lp/answers/stories/faq-edit.txt
@@ -14,14 +14,12 @@ appear for the anonymous user nor No Privileges Person:
14 FAQ #7 : Questions : Mozilla Firefox14 FAQ #7 : Questions : Mozilla Firefox
1515
16 >>> anon_browser.getLink('Edit FAQ')16 >>> anon_browser.getLink('Edit FAQ')
17 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
18 Traceback (most recent call last):17 Traceback (most recent call last):
19 ...18 ...
20 zope.testbrowser.browser.LinkNotFoundError19 zope.testbrowser.browser.LinkNotFoundError
2120
22 >>> user_browser.open('http://answers.launchpad.test/firefox/+faq/7')21 >>> user_browser.open('http://answers.launchpad.test/firefox/+faq/7')
23 >>> user_browser.getLink('Edit FAQ')22 >>> user_browser.getLink('Edit FAQ')
24 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
25 Traceback (most recent call last):23 Traceback (most recent call last):
26 ...24 ...
27 zope.testbrowser.browser.LinkNotFoundError25 zope.testbrowser.browser.LinkNotFoundError
@@ -30,13 +28,11 @@ Even trying to access the link directly will fail:
3028
31 >>> anon_browser.open(29 >>> anon_browser.open(
32 ... 'http://answers.launchpad.test/firefox/+faq/7/+edit')30 ... 'http://answers.launchpad.test/firefox/+faq/7/+edit')
33 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
34 Traceback (most recent call last):31 Traceback (most recent call last):
35 ...32 ...
36 zope.security.interfaces.Unauthorized: ...33 zope.security.interfaces.Unauthorized: ...
37 >>> user_browser.open(34 >>> user_browser.open(
38 ... 'http://answers.launchpad.test/firefox/+faq/7/+edit')35 ... 'http://answers.launchpad.test/firefox/+faq/7/+edit')
39 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
40 Traceback (most recent call last):36 Traceback (most recent call last):
41 ...37 ...
42 zope.security.interfaces.Unauthorized: ...38 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/answers/stories/project-add-question.txt b/lib/lp/answers/stories/project-add-question.txt
index eb3703c..737952c 100644
--- a/lib/lp/answers/stories/project-add-question.txt
+++ b/lib/lp/answers/stories/project-add-question.txt
@@ -26,7 +26,6 @@ Project in this case.
2626
27 >>> anon_browser.open('http://answers.launchpad.test/mozilla')27 >>> anon_browser.open('http://answers.launchpad.test/mozilla')
28 >>> anon_browser.getLink('Ask a question').click()28 >>> anon_browser.getLink('Ask a question').click()
29 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
30 Traceback (most recent call last):29 Traceback (most recent call last):
31 ...30 ...
32 zope.security.interfaces.Unauthorized: ...31 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/answers/stories/question-add.txt b/lib/lp/answers/stories/question-add.txt
index e7debb4..b24893c 100644
--- a/lib/lp/answers/stories/question-add.txt
+++ b/lib/lp/answers/stories/question-add.txt
@@ -18,7 +18,6 @@ The user sees an involvement link to ask a question.
18Asking a new question requires logging in:18Asking a new question requires logging in:
1919
20 >>> browser.getLink('Ask a question').click()20 >>> browser.getLink('Ask a question').click()
21 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
22 Traceback (most recent call last):21 Traceback (most recent call last):
23 ...22 ...
24 zope.security.interfaces.Unauthorized: ...23 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/answers/stories/question-browse-and-search.txt b/lib/lp/answers/stories/question-browse-and-search.txt
index cbbfaec..0af0cb3 100644
--- a/lib/lp/answers/stories/question-browse-and-search.txt
+++ b/lib/lp/answers/stories/question-browse-and-search.txt
@@ -44,7 +44,6 @@ For projects that don't have products, the Answers facet is disabled.
4444
45 >>> browser.open('http://launchpad.test/aaa')45 >>> browser.open('http://launchpad.test/aaa')
46 >>> browser.getLink('Answers')46 >>> browser.getLink('Answers')
47 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
48 Traceback (most recent call last):47 Traceback (most recent call last):
49 ...48 ...
50 zope.testbrowser.browser.LinkNotFoundError49 zope.testbrowser.browser.LinkNotFoundError
@@ -88,14 +87,12 @@ out.
88 >>> 'Next' in browser.contents87 >>> 'Next' in browser.contents
89 True88 True
90 >>> browser.getLink('Next')89 >>> browser.getLink('Next')
91 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
92 Traceback (most recent call last):90 Traceback (most recent call last):
93 ..91 ..
94 zope.testbrowser.browser.LinkNotFoundError92 zope.testbrowser.browser.LinkNotFoundError
95 >>> 'Last' in browser.contents93 >>> 'Last' in browser.contents
96 True94 True
97 >>> browser.getLink('Last')95 >>> browser.getLink('Last')
98 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
99 Traceback (most recent call last):96 Traceback (most recent call last):
100 ..97 ..
101 zope.testbrowser.browser.LinkNotFoundError98 zope.testbrowser.browser.LinkNotFoundError
@@ -111,14 +108,12 @@ greyed out:
111 >>> 'Previous' in browser.contents108 >>> 'Previous' in browser.contents
112 True109 True
113 >>> browser.getLink('Previous')110 >>> browser.getLink('Previous')
114 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
115 Traceback (most recent call last):111 Traceback (most recent call last):
116 ..112 ..
117 zope.testbrowser.browser.LinkNotFoundError113 zope.testbrowser.browser.LinkNotFoundError
118 >>> 'First' in browser.contents114 >>> 'First' in browser.contents
119 True115 True
120 >>> browser.getLink('First')116 >>> browser.getLink('First')
121 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
122 Traceback (most recent call last):117 Traceback (most recent call last):
123 ..118 ..
124 zope.testbrowser.browser.LinkNotFoundError119 zope.testbrowser.browser.LinkNotFoundError
@@ -386,7 +381,6 @@ They need to login to access that page:
386 ... 'http://launchpad.test/ubuntu/+source/mozilla-firefox/'381 ... 'http://launchpad.test/ubuntu/+source/mozilla-firefox/'
387 ... '+questions')382 ... '+questions')
388 >>> anon_browser.getLink('My questions').click()383 >>> anon_browser.getLink('My questions').click()
389 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
390 Traceback (most recent call last):384 Traceback (most recent call last):
391 ...385 ...
392 zope.security.interfaces.Unauthorized: ...386 zope.security.interfaces.Unauthorized: ...
@@ -460,7 +454,6 @@ They need to login to access that page:
460454
461 >>> anon_browser.open('http://launchpad.test/distros/ubuntu/+questions')455 >>> anon_browser.open('http://launchpad.test/distros/ubuntu/+questions')
462 >>> anon_browser.getLink('Need attention').click()456 >>> anon_browser.getLink('Need attention').click()
463 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
464 Traceback (most recent call last):457 Traceback (most recent call last):
465 ...458 ...
466 zope.security.interfaces.Unauthorized: ...459 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/answers/stories/question-edit.txt b/lib/lp/answers/stories/question-edit.txt
index ef36a05..8aeed0d 100644
--- a/lib/lp/answers/stories/question-edit.txt
+++ b/lib/lp/answers/stories/question-edit.txt
@@ -8,7 +8,6 @@ title and description.
88
9 >>> anon_browser.open('http://launchpad.test/firefox/+question/2')9 >>> anon_browser.open('http://launchpad.test/firefox/+question/2')
10 >>> anon_browser.getLink('Edit question').click()10 >>> anon_browser.getLink('Edit question').click()
11 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
12 Traceback (most recent call last):11 Traceback (most recent call last):
13 ...12 ...
14 zope.security.interfaces.Unauthorized: ...13 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/answers/stories/question-overview.txt b/lib/lp/answers/stories/question-overview.txt
index 374dc16..54afeb6 100644
--- a/lib/lp/answers/stories/question-overview.txt
+++ b/lib/lp/answers/stories/question-overview.txt
@@ -235,13 +235,11 @@ Asking for a non-existent question or an invalid ID will still raise a
235404 though:235404 though:
236236
237 >>> browser.open('http://answers.launchpad.test/questions/255')237 >>> browser.open('http://answers.launchpad.test/questions/255')
238 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
239 Traceback (most recent call last):238 Traceback (most recent call last):
240 ...239 ...
241 zope.publisher.interfaces.NotFound: ...240 zope.publisher.interfaces.NotFound: ...
242241
243 >>> browser.open('http://answers.launchpad.test/questions/bad_id')242 >>> browser.open('http://answers.launchpad.test/questions/bad_id')
244 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
245 Traceback (most recent call last):243 Traceback (most recent call last):
246 ...244 ...
247 zope.publisher.interfaces.NotFound: ...245 zope.publisher.interfaces.NotFound: ...
@@ -268,14 +266,12 @@ It also works with pages below that URL:
268But again, an invalid ID still raises a 404:266But again, an invalid ID still raises a 404:
269267
270 >>> browser.open('http://answers.launchpad.test/ubuntu/+question/255')268 >>> browser.open('http://answers.launchpad.test/ubuntu/+question/255')
271 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
272 Traceback (most recent call last):269 Traceback (most recent call last):
273 ...270 ...
274 zope.publisher.interfaces.NotFound: ...271 zope.publisher.interfaces.NotFound: ...
275272
276 >>> browser.open(273 >>> browser.open(
277 ... 'http://answers.launchpad.test/ubuntu/+question/bad_id')274 ... 'http://answers.launchpad.test/ubuntu/+question/bad_id')
278 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
279 Traceback (most recent call last):275 Traceback (most recent call last):
280 ...276 ...
281 zope.publisher.interfaces.NotFound: ...277 zope.publisher.interfaces.NotFound: ...
diff --git a/lib/lp/answers/stories/question-reject-and-change-status.txt b/lib/lp/answers/stories/question-reject-and-change-status.txt
index c7466fd..bdbffe2 100644
--- a/lib/lp/answers/stories/question-reject-and-change-status.txt
+++ b/lib/lp/answers/stories/question-reject-and-change-status.txt
@@ -10,7 +10,6 @@ don't have access to that feature.
1010
11 >>> user_browser.open('http://launchpad.test/firefox/+question/2')11 >>> user_browser.open('http://launchpad.test/firefox/+question/2')
12 >>> user_browser.getLink('Reject question')12 >>> user_browser.getLink('Reject question')
13 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
14 Traceback (most recent call last):13 Traceback (most recent call last):
15 ...14 ...
16 zope.testbrowser.browser.LinkNotFoundError15 zope.testbrowser.browser.LinkNotFoundError
@@ -20,7 +19,6 @@ error.
2019
21 >>> user_browser.open(20 >>> user_browser.open(
22 ... 'http://launchpad.test/firefox/+question/2/+reject')21 ... 'http://launchpad.test/firefox/+question/2/+reject')
23 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
24 Traceback (most recent call last):22 Traceback (most recent call last):
25 ...23 ...
26 zope.security.interfaces.Unauthorized: ...24 zope.security.interfaces.Unauthorized: ...
@@ -104,7 +102,6 @@ That action isn't available to a non-privileged user:
104102
105 >>> browser.open('http://launchpad.test/firefox/+question/2')103 >>> browser.open('http://launchpad.test/firefox/+question/2')
106 >>> browser.getLink('Change status')104 >>> browser.getLink('Change status')
107 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
108 Traceback (most recent call last):105 Traceback (most recent call last):
109 ...106 ...
110 zope.testbrowser.browser.LinkNotFoundError107 zope.testbrowser.browser.LinkNotFoundError
diff --git a/lib/lp/answers/stories/this-is-a-faq.txt b/lib/lp/answers/stories/this-is-a-faq.txt
index 3438e03..d382d3b 100644
--- a/lib/lp/answers/stories/this-is-a-faq.txt
+++ b/lib/lp/answers/stories/this-is-a-faq.txt
@@ -209,21 +209,18 @@ Since No Privileges Person isn't an answer contact for the project nor
209the project owner, they don't have the possibility to create a new FAQ.209the project owner, they don't have the possibility to create a new FAQ.
210210
211 >>> user_browser.getLink('Create a FAQ')211 >>> user_browser.getLink('Create a FAQ')
212 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
213 Traceback (most recent call last):212 Traceback (most recent call last):
214 ...213 ...
215 zope.testbrowser.browser.LinkNotFoundError214 zope.testbrowser.browser.LinkNotFoundError
216215
217 >>> user_browser.getLink('Link to a FAQ').click()216 >>> user_browser.getLink('Link to a FAQ').click()
218 >>> user_browser.getLink('create a new FAQ')217 >>> user_browser.getLink('create a new FAQ')
219 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
220 Traceback (most recent call last):218 Traceback (most recent call last):
221 ...219 ...
222 zope.testbrowser.browser.LinkNotFoundError220 zope.testbrowser.browser.LinkNotFoundError
223221
224 >>> user_browser.open(222 >>> user_browser.open(
225 ... 'http://answers.launchpad.test/firefox/+question/2/+createfaq')223 ... 'http://answers.launchpad.test/firefox/+question/2/+createfaq')
226 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
227 Traceback (most recent call last):224 Traceback (most recent call last):
228 ...225 ...
229 zope.security.interfaces.Unauthorized: ...226 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/app/doc/batch-navigation.txt b/lib/lp/app/doc/batch-navigation.txt
index eebef5d..7087dc2 100644
--- a/lib/lp/app/doc/batch-navigation.txt
+++ b/lib/lp/app/doc/batch-navigation.txt
@@ -81,7 +81,6 @@ InvalidBatchSizeError is raised.
81 ... """))81 ... """))
82 >>> request = build_request({"start": "0", "batch": "20"})82 >>> request = build_request({"start": "0", "batch": "20"})
83 >>> BatchNavigator(reindeer, request=request )83 >>> BatchNavigator(reindeer, request=request )
84 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
85 Traceback (most recent call last):84 Traceback (most recent call last):
86 ...85 ...
87 lazr.batchnavigator.interfaces.InvalidBatchSizeError: Maximum for "batch" parameter is 5.86 lazr.batchnavigator.interfaces.InvalidBatchSizeError: Maximum for "batch" parameter is 5.
diff --git a/lib/lp/app/doc/displaying-numbers.txt b/lib/lp/app/doc/displaying-numbers.txt
index fcdd4e0..6da695d 100644
--- a/lib/lp/app/doc/displaying-numbers.txt
+++ b/lib/lp/app/doc/displaying-numbers.txt
@@ -59,7 +59,6 @@ Is the same as:
59Here's a set of exhaustive examples:59Here's a set of exhaustive examples:
6060
61 >>> test_tales('foo/fmt:float', foo=12345.67890)61 >>> test_tales('foo/fmt:float', foo=12345.67890)
62 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
63 Traceback (most recent call last):62 Traceback (most recent call last):
64 ...63 ...
65 zope.location.interfaces.LocationError: 'fmt:float requires a single decimal argument'64 zope.location.interfaces.LocationError: 'fmt:float requires a single decimal argument'
diff --git a/lib/lp/app/doc/launchpadform.txt b/lib/lp/app/doc/launchpadform.txt
index a42833f..58239fb 100644
--- a/lib/lp/app/doc/launchpadform.txt
+++ b/lib/lp/app/doc/launchpadform.txt
@@ -568,7 +568,6 @@ request:
568 ... 'field.actions.change': 'Change'})568 ... 'field.actions.change': 'Change'})
569 >>> view = UnsafeActionTestView(context, request)569 >>> view = UnsafeActionTestView(context, request)
570 >>> view.initialize()570 >>> view.initialize()
571 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
572 Traceback (most recent call last):571 Traceback (most recent call last):
573 ...572 ...
574 lp.services.webapp.interfaces.UnsafeFormGetSubmissionError: field.actions.change573 lp.services.webapp.interfaces.UnsafeFormGetSubmissionError: field.actions.change
diff --git a/lib/lp/app/doc/object-privacy.txt b/lib/lp/app/doc/object-privacy.txt
index 18c14e5..7f2c46e 100644
--- a/lib/lp/app/doc/object-privacy.txt
+++ b/lib/lp/app/doc/object-privacy.txt
@@ -30,7 +30,6 @@ private.
3030
31 >>> question = getUtility(IQuestionSet).get(1)31 >>> question = getUtility(IQuestionSet).get(1)
32 >>> question.private32 >>> question.private
33 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
34 Traceback (most recent call last):33 Traceback (most recent call last):
35 ...34 ...
36 zope.security.interfaces.ForbiddenAttribute: ...35 zope.security.interfaces.ForbiddenAttribute: ...
diff --git a/lib/lp/app/doc/tales.txt b/lib/lp/app/doc/tales.txt
index 0d56ac6..e5d2284 100644
--- a/lib/lp/app/doc/tales.txt
+++ b/lib/lp/app/doc/tales.txt
@@ -1314,7 +1314,6 @@ Everything you can do with 'something/fmt:foo', you should be able to do
1314with 'None/fmt:foo'.1314with 'None/fmt:foo'.
13151315
1316 >>> test_tales('foo/fmt:shorten', foo=None)1316 >>> test_tales('foo/fmt:shorten', foo=None)
1317 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
1318 Traceback (most recent call last):1317 Traceback (most recent call last):
1319 ...1318 ...
1320 zope.location.interfaces.LocationError: 'you need to traverse a number after fmt:shorten'1319 zope.location.interfaces.LocationError: 'you need to traverse a number after fmt:shorten'
@@ -1417,7 +1416,6 @@ We don't get a ValueError when we use a value that doesn't appear in the
1417DBSchema the item comes from.1416DBSchema the item comes from.
14181417
1419 >>> test_tales('deb/enumvalue:CHEESEFISH', deb=udeb)1418 >>> test_tales('deb/enumvalue:CHEESEFISH', deb=udeb)
1420 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
1421 Traceback (most recent call last):1419 Traceback (most recent call last):
1422 ...1420 ...
1423 zope.location.interfaces.LocationError: 'The enumerated type BinaryPackageFormat does not have a value CHEESEFISH.'1421 zope.location.interfaces.LocationError: 'The enumerated type BinaryPackageFormat does not have a value CHEESEFISH.'
@@ -1439,7 +1437,6 @@ dbschema items too:
1439 False1437 False
14401438
1441 >>> test_tales('deb/enumvalue:CHEESEFISH', deb=wrapped_deb)1439 >>> test_tales('deb/enumvalue:CHEESEFISH', deb=wrapped_deb)
1442 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
1443 Traceback (most recent call last):1440 Traceback (most recent call last):
1444 ...1441 ...
1445 zope.location.interfaces.LocationError: 'The enumerated type BinaryPackageFormat does not have a value CHEESEFISH.'1442 zope.location.interfaces.LocationError: 'The enumerated type BinaryPackageFormat does not have a value CHEESEFISH.'
diff --git a/lib/lp/app/stories/basics/marketing.txt b/lib/lp/app/stories/basics/marketing.txt
index eeb08b6..4ccc41a 100644
--- a/lib/lp/app/stories/basics/marketing.txt
+++ b/lib/lp/app/stories/basics/marketing.txt
@@ -45,7 +45,6 @@ But the source directory isn't available:
4545
46 >>> browser.open(46 >>> browser.open(
47 ... 'http://launchpad.test/+tour/source/code-hosting_SVG.svg')47 ... 'http://launchpad.test/+tour/source/code-hosting_SVG.svg')
48 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
49 Traceback (most recent call last):48 Traceback (most recent call last):
50 ...49 ...
51 zope.publisher.interfaces.NotFound: ...50 zope.publisher.interfaces.NotFound: ...
diff --git a/lib/lp/app/stories/basics/max-batch-size.txt b/lib/lp/app/stories/basics/max-batch-size.txt
index ce3d44b..71c9635 100644
--- a/lib/lp/app/stories/basics/max-batch-size.txt
+++ b/lib/lp/app/stories/basics/max-batch-size.txt
@@ -8,7 +8,6 @@ large and what is the current maximum.
88
9 >>> anon_browser.handleErrors = True9 >>> anon_browser.handleErrors = True
10 >>> anon_browser.open('http://launchpad.test/projects/+all?start=0&batch=1000')10 >>> anon_browser.open('http://launchpad.test/projects/+all?start=0&batch=1000')
11 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
12 Traceback (most recent call last):11 Traceback (most recent call last):
13 ...12 ...
14 urllib.error.HTTPError: HTTP Error 400: Bad Request13 urllib.error.HTTPError: HTTP Error 400: Bad Request
diff --git a/lib/lp/app/stories/basics/xx-developerexceptions.txt b/lib/lp/app/stories/basics/xx-developerexceptions.txt
index b8373f8..42a794d 100644
--- a/lib/lp/app/stories/basics/xx-developerexceptions.txt
+++ b/lib/lp/app/stories/basics/xx-developerexceptions.txt
@@ -106,7 +106,6 @@ want to see tracebacks instead of error pages.
106 >>> print(http(r"""106 >>> print(http(r"""
107 ... GET /whatever HTTP/1.1107 ... GET /whatever HTTP/1.1
108 ... """, handle_errors=False))108 ... """, handle_errors=False))
109 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
110 Traceback (most recent call last):109 Traceback (most recent call last):
111 ...110 ...
112 zope.publisher.interfaces.NotFound: ...111 zope.publisher.interfaces.NotFound: ...
diff --git a/lib/lp/app/stories/basics/xx-launchpad-statistics.txt b/lib/lp/app/stories/basics/xx-launchpad-statistics.txt
index f7185c7..c81ca7a 100644
--- a/lib/lp/app/stories/basics/xx-launchpad-statistics.txt
+++ b/lib/lp/app/stories/basics/xx-launchpad-statistics.txt
@@ -3,7 +3,6 @@ We also have the special Launchpad Statistics summary page. This is only
3acessible to launchpad Admins:3acessible to launchpad Admins:
44
5 >>> user_browser.open('http://launchpad.test/+statistics')5 >>> user_browser.open('http://launchpad.test/+statistics')
6 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
7 Traceback (most recent call last):6 Traceback (most recent call last):
8 ...7 ...
9 zope.security.interfaces.Unauthorized: ...8 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/app/stories/basics/xx-offsite-form-post.txt b/lib/lp/app/stories/basics/xx-offsite-form-post.txt
index f00a78e..12d4127 100644
--- a/lib/lp/app/stories/basics/xx-offsite-form-post.txt
+++ b/lib/lp/app/stories/basics/xx-offsite-form-post.txt
@@ -44,7 +44,6 @@ If we try to create a new team with with the referrer set to
44 >>> browser.getControl('Name', index=0).value = 'team1'44 >>> browser.getControl('Name', index=0).value = 'team1'
45 >>> browser.getControl('Display Name').value = 'Team 1'45 >>> browser.getControl('Display Name').value = 'Team 1'
46 >>> browser.getControl('Create').click()46 >>> browser.getControl('Create').click()
47 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
48 Traceback (most recent call last):47 Traceback (most recent call last):
49 ...48 ...
50 lp.services.webapp.interfaces.OffsiteFormPostError: http://evil.people.com/49 lp.services.webapp.interfaces.OffsiteFormPostError: http://evil.people.com/
@@ -57,7 +56,6 @@ Similarly, posting with a garbage referer fails:
57 >>> browser.getControl('Name', index=0).value = 'team2'56 >>> browser.getControl('Name', index=0).value = 'team2'
58 >>> browser.getControl('Display Name').value = 'Team 2'57 >>> browser.getControl('Display Name').value = 'Team 2'
59 >>> browser.getControl('Create').click()58 >>> browser.getControl('Create').click()
60 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
61 Traceback (most recent call last):59 Traceback (most recent call last):
62 ...60 ...
63 lp.services.webapp.interfaces.OffsiteFormPostError: not a url61 lp.services.webapp.interfaces.OffsiteFormPostError: not a url
@@ -70,7 +68,6 @@ It also fails if there is no referrer.
70 >>> browser.getControl('Name', index=0).value = 'team3'68 >>> browser.getControl('Name', index=0).value = 'team3'
71 >>> browser.getControl('Display Name').value = 'Team 3'69 >>> browser.getControl('Display Name').value = 'Team 3'
72 >>> browser.getControl('Create').click()70 >>> browser.getControl('Create').click()
73 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
74 Traceback (most recent call last):71 Traceback (most recent call last):
75 ...72 ...
76 lp.services.webapp.interfaces.NoReferrerError: No value for REFERER header73 lp.services.webapp.interfaces.NoReferrerError: No value for REFERER header
@@ -84,7 +81,6 @@ present a hopefully helpful error message.
84 >>> browser.getControl('Name', index=0).value = 'team3'81 >>> browser.getControl('Name', index=0).value = 'team3'
85 >>> browser.getControl('Display Name').value = 'Team 3'82 >>> browser.getControl('Display Name').value = 'Team 3'
86 >>> browser.getControl('Create').click()83 >>> browser.getControl('Create').click()
87 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
88 Traceback (most recent call last):84 Traceback (most recent call last):
89 ...85 ...
90 urllib.error.HTTPError: ...86 urllib.error.HTTPError: ...
@@ -117,7 +113,6 @@ exception for +access-token, it would result in an
117OffsiteFormPostError.113OffsiteFormPostError.
118114
119 >>> browser.post('http://launchpad.test/+access-token', 'x=1')115 >>> browser.post('http://launchpad.test/+access-token', 'x=1')
120 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
121 Traceback (most recent call last):116 Traceback (most recent call last):
122 ...117 ...
123 urllib.error.HTTPError: HTTP Error 401: Unauthorized118 urllib.error.HTTPError: HTTP Error 401: Unauthorized
@@ -154,14 +149,12 @@ a referrerless POST request to the browser-accessible API.
154149
155 >>> browser.post(150 >>> browser.post(
156 ... 'http://launchpad.test/api/devel/people', 'ws.op=foo&x=1')151 ... 'http://launchpad.test/api/devel/people', 'ws.op=foo&x=1')
157 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
158 Traceback (most recent call last):152 Traceback (most recent call last):
159 ...153 ...
160 lp.services.webapp.interfaces.OffsiteFormPostError: http://evil.people.com/154 lp.services.webapp.interfaces.OffsiteFormPostError: http://evil.people.com/
161155
162 >>> no_referrer_browser.post(156 >>> no_referrer_browser.post(
163 ... 'http://launchpad.test/api/devel/people', 'ws.op=foo&x=1')157 ... 'http://launchpad.test/api/devel/people', 'ws.op=foo&x=1')
164 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
165 Traceback (most recent call last):158 Traceback (most recent call last):
166 ...159 ...
167 lp.services.webapp.interfaces.NoReferrerError: No value for REFERER header160 lp.services.webapp.interfaces.NoReferrerError: No value for REFERER header
@@ -172,7 +165,6 @@ though it were signed with OAuth.
172 >>> browser.post(165 >>> browser.post(
173 ... 'http://launchpad.test/',166 ... 'http://launchpad.test/',
174 ... 'oauth_consumer_key=foo&oauth_token=bar')167 ... 'oauth_consumer_key=foo&oauth_token=bar')
175 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
176 Traceback (most recent call last):168 Traceback (most recent call last):
177 ...169 ...
178 lp.services.webapp.interfaces.OffsiteFormPostError: http://evil.people.com/170 lp.services.webapp.interfaces.OffsiteFormPostError: http://evil.people.com/
@@ -180,7 +172,6 @@ though it were signed with OAuth.
180 >>> no_referrer_browser.post(172 >>> no_referrer_browser.post(
181 ... 'http://launchpad.test/',173 ... 'http://launchpad.test/',
182 ... 'oauth_consumer_key=foo&oauth_token=bar')174 ... 'oauth_consumer_key=foo&oauth_token=bar')
183 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
184 Traceback (most recent call last):175 Traceback (most recent call last):
185 ...176 ...
186 lp.services.webapp.interfaces.NoReferrerError: No value for REFERER header177 lp.services.webapp.interfaces.NoReferrerError: No value for REFERER header
@@ -200,7 +191,6 @@ But the browser-accessible API ignores OAuth credentials altogether.
200191
201 >>> browser.post(192 >>> browser.post(
202 ... 'http://launchpad.test/api/devel/projects', sig)193 ... 'http://launchpad.test/api/devel/projects', sig)
203 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
204 Traceback (most recent call last):194 Traceback (most recent call last):
205 ...195 ...
206 lp.services.webapp.interfaces.OffsiteFormPostError: http://evil.people.com/196 lp.services.webapp.interfaces.OffsiteFormPostError: http://evil.people.com/
@@ -209,7 +199,6 @@ If you go through the 'api' vhost, the signed request will be
209processed despite the bogus referrer, but...199processed despite the bogus referrer, but...
210200
211 >>> browser.post('http://api.launchpad.test/devel/projects', sig)201 >>> browser.post('http://api.launchpad.test/devel/projects', sig)
212 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
213 Traceback (most recent call last):202 Traceback (most recent call last):
214 ...203 ...
215 storm.exceptions.NoneError: None isn't acceptable as a value for Product...204 storm.exceptions.NoneError: None isn't acceptable as a value for Product...
diff --git a/lib/lp/app/stories/basics/xx-opstats.txt b/lib/lp/app/stories/basics/xx-opstats.txt
index 32002b3..de80e59 100644
--- a/lib/lp/app/stories/basics/xx-opstats.txt
+++ b/lib/lp/app/stories/basics/xx-opstats.txt
@@ -352,7 +352,6 @@ But our database connections are broken.
352 >>> from lp.services.database.interfaces import IStore352 >>> from lp.services.database.interfaces import IStore
353 >>> from lp.registry.model.person import Person353 >>> from lp.registry.model.person import Person
354 >>> IStore(Person).find(Person, name='janitor')354 >>> IStore(Person).find(Person, name='janitor')
355 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
356 Traceback (most recent call last):355 Traceback (most recent call last):
357 ...356 ...
358 storm.exceptions.DisconnectionError: FATAL: database "nonexistant" does not exist357 storm.exceptions.DisconnectionError: FATAL: database "nonexistant" does not exist
diff --git a/lib/lp/app/stories/folder.txt b/lib/lp/app/stories/folder.txt
index 8124932..8bde596 100644
--- a/lib/lp/app/stories/folder.txt
+++ b/lib/lp/app/stories/folder.txt
@@ -67,7 +67,7 @@ Requesting a directory raises a NotFound.
6767
68 >>> view = MyFolder(object(), FakeRequest(version="devel"))68 >>> view = MyFolder(object(), FakeRequest(version="devel"))
69 >>> view = view.publishTraverse(view.request, 'a_dir')69 >>> view = view.publishTraverse(view.request, 'a_dir')
70 >>> view() # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON270 >>> view()
71 Traceback (most recent call last):71 Traceback (most recent call last):
72 ...72 ...
73 zope.publisher.interfaces.NotFound: ...73 zope.publisher.interfaces.NotFound: ...
@@ -78,7 +78,7 @@ this)
78 >>> view = MyFolder(object(), FakeRequest(version="devel"))78 >>> view = MyFolder(object(), FakeRequest(version="devel"))
79 >>> view = view.publishTraverse(view.request, 'a_dir')79 >>> view = view.publishTraverse(view.request, 'a_dir')
80 >>> view = view.publishTraverse(view.request, 'other.txt')80 >>> view = view.publishTraverse(view.request, 'other.txt')
81 >>> view() # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON281 >>> view()
82 Traceback (most recent call last):82 Traceback (most recent call last):
83 ...83 ...
84 zope.publisher.interfaces.NotFound: ...84 zope.publisher.interfaces.NotFound: ...
@@ -86,7 +86,7 @@ this)
86Not requesting any file, also raises NotFound.86Not requesting any file, also raises NotFound.
8787
88 >>> view = MyFolder(object(), FakeRequest(version="devel"))88 >>> view = MyFolder(object(), FakeRequest(version="devel"))
89 >>> view() # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON289 >>> view()
90 Traceback (most recent call last):90 Traceback (most recent call last):
91 ...91 ...
92 zope.publisher.interfaces.NotFound: ...92 zope.publisher.interfaces.NotFound: ...
@@ -95,7 +95,7 @@ As requesting a non-existent file.
9595
96 >>> view = MyFolder(object(), FakeRequest(version="devel"))96 >>> view = MyFolder(object(), FakeRequest(version="devel"))
97 >>> view = view.publishTraverse(view.request, 'image2')97 >>> view = view.publishTraverse(view.request, 'image2')
98 >>> view() # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON298 >>> view()
99 Traceback (most recent call last):99 Traceback (most recent call last):
100 ...100 ...
101 zope.publisher.interfaces.NotFound: ...101 zope.publisher.interfaces.NotFound: ...
@@ -176,7 +176,7 @@ But traversing to the subdirectory itself will raise a NotFound.
176176
177 >>> view = MyTree(object(), FakeRequest(version="devel"))177 >>> view = MyTree(object(), FakeRequest(version="devel"))
178 >>> view = view.publishTraverse(view.request, 'public')178 >>> view = view.publishTraverse(view.request, 'public')
179 >>> view() # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2179 >>> view()
180 Traceback (most recent call last):180 Traceback (most recent call last):
181 ...181 ...
182 zope.publisher.interfaces.NotFound: ...182 zope.publisher.interfaces.NotFound: ...
@@ -186,7 +186,7 @@ Trying to request a non-existent file, will also raise a NotFound.
186 >>> view = MyTree(object(), FakeRequest(version="devel"))186 >>> view = MyTree(object(), FakeRequest(version="devel"))
187 >>> view = view.publishTraverse(view.request, 'public')187 >>> view = view.publishTraverse(view.request, 'public')
188 >>> view = view.publishTraverse(view.request, 'nosuchfile.txt')188 >>> view = view.publishTraverse(view.request, 'nosuchfile.txt')
189 >>> view() # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2189 >>> view()
190 Traceback (most recent call last):190 Traceback (most recent call last):
191 ...191 ...
192 zope.publisher.interfaces.NotFound: ...192 zope.publisher.interfaces.NotFound: ...
@@ -199,7 +199,7 @@ NotFound.
199 >>> view = view.publishTraverse(view.request, 'subdir1')199 >>> view = view.publishTraverse(view.request, 'subdir1')
200 >>> view = view.publishTraverse(view.request, 'test1.txt')200 >>> view = view.publishTraverse(view.request, 'test1.txt')
201 >>> view = view.publishTraverse(view.request, 'nosuchpath')201 >>> view = view.publishTraverse(view.request, 'nosuchpath')
202 >>> view() # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2202 >>> view()
203 Traceback (most recent call last):203 Traceback (most recent call last):
204 ...204 ...
205 zope.publisher.interfaces.NotFound: ...205 zope.publisher.interfaces.NotFound: ...
diff --git a/lib/lp/app/stories/form/xx-form-layout.txt b/lib/lp/app/stories/form/xx-form-layout.txt
index c9b09ea..478c97e 100644
--- a/lib/lp/app/stories/form/xx-form-layout.txt
+++ b/lib/lp/app/stories/form/xx-form-layout.txt
@@ -98,7 +98,6 @@ display forms.
9898
99 >>> cprov_browser.open(99 >>> cprov_browser.open(
100 ... 'http://launchpad.test/~cprov/+editsshkeys/++form++')100 ... 'http://launchpad.test/~cprov/+editsshkeys/++form++')
101 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
102 Traceback (most recent call last):101 Traceback (most recent call last):
103 ...102 ...
104 zope.publisher.interfaces.NotFound: ...103 zope.publisher.interfaces.NotFound: ...
@@ -107,7 +106,6 @@ Nor will it allow unauthorized access to data that it should not present.
107106
108 >>> browser.open(107 >>> browser.open(
109 ... 'http://launchpad.test/~cprov/+archive/ppa/+edit/++form++')108 ... 'http://launchpad.test/~cprov/+archive/ppa/+edit/++form++')
110 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
111 Traceback (most recent call last):109 Traceback (most recent call last):
112 ...110 ...
113 zope.security.interfaces.Unauthorized: ...111 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/app/stories/launchpad-root/xx-featuredprojects.txt b/lib/lp/app/stories/launchpad-root/xx-featuredprojects.txt
index 060a023..8e54d4c 100644
--- a/lib/lp/app/stories/launchpad-root/xx-featuredprojects.txt
+++ b/lib/lp/app/stories/launchpad-root/xx-featuredprojects.txt
@@ -52,7 +52,6 @@ Adding a featured project
52Anonymous users cannot see the link to administer featured projects:52Anonymous users cannot see the link to administer featured projects:
5353
54 >>> anon_browser.getLink(MANAGE_LINK)54 >>> anon_browser.getLink(MANAGE_LINK)
55 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
56 Traceback (most recent call last):55 Traceback (most recent call last):
57 ...56 ...
58 zope.testbrowser.browser.LinkNotFoundError57 zope.testbrowser.browser.LinkNotFoundError
@@ -61,7 +60,6 @@ A user without privileges cannot see the administration link, either:
6160
62 >>> user_browser.open('http://launchpad.test/')61 >>> user_browser.open('http://launchpad.test/')
63 >>> user_browser.getLink(MANAGE_LINK)62 >>> user_browser.getLink(MANAGE_LINK)
64 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
65 Traceback (most recent call last):63 Traceback (most recent call last):
66 ...64 ...
67 zope.testbrowser.browser.LinkNotFoundError65 zope.testbrowser.browser.LinkNotFoundError
@@ -76,7 +74,6 @@ But Foo Bar, who is an administrator, can see the management link:
76No Privilege persons is denied access to this page:74No Privilege persons is denied access to this page:
7775
78 >>> user_browser.open('http://launchpad.test/+featuredprojects')76 >>> user_browser.open('http://launchpad.test/+featuredprojects')
79 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
80 Traceback (most recent call last):77 Traceback (most recent call last):
81 ...78 ...
82 zope.security.interfaces.Unauthorized: ...79 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/app/validators/email.py b/lib/lp/app/validators/email.py
index 04599f8..8f57276 100644
--- a/lib/lp/app/validators/email.py
+++ b/lib/lp/app/validators/email.py
@@ -77,11 +77,10 @@ def email_validator(emailaddr):
77 >>> email_validator('bugs@example.com')77 >>> email_validator('bugs@example.com')
78 True78 True
79 >>> email_validator('not-valid')79 >>> email_validator('not-valid')
80 ... # noqa
81 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
82 Traceback (most recent call last):80 Traceback (most recent call last):
83 ...81 ...
84 lp.app.validators.LaunchpadValidationError: Invalid email &#x27;not-valid&#x27;.82 lp.app.validators.LaunchpadValidationError: Invalid email
83 &#x27;not-valid&#x27;.
85 """84 """
86 if not valid_email(emailaddr):85 if not valid_email(emailaddr):
87 raise LaunchpadValidationError(_(86 raise LaunchpadValidationError(_(
diff --git a/lib/lp/app/validators/tests/validation.txt b/lib/lp/app/validators/tests/validation.txt
index a8d4a8e..b66c031 100644
--- a/lib/lp/app/validators/tests/validation.txt
+++ b/lib/lp/app/validators/tests/validation.txt
@@ -38,13 +38,11 @@ fail for that specific series.
3838
39 >>> nomination = bug.addNomination(no_priv, firefox.series[0])39 >>> nomination = bug.addNomination(no_priv, firefox.series[0])
40 >>> can_be_nominated_for_series(firefox.series)40 >>> can_be_nominated_for_series(firefox.series)
41 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
42 Traceback (most recent call last):41 Traceback (most recent call last):
43 ...42 ...
44 lp.app.validators.LaunchpadValidationError: ...43 lp.app.validators.LaunchpadValidationError: ...
4544
46 >>> can_be_nominated_for_series([firefox.series[0]])45 >>> can_be_nominated_for_series([firefox.series[0]])
47 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
48 Traceback (most recent call last):46 Traceback (most recent call last):
49 ...47 ...
50 lp.app.validators.LaunchpadValidationError: ...48 lp.app.validators.LaunchpadValidationError: ...
@@ -62,7 +60,6 @@ fail:
62 ... 'foo.bar@canonical.com')60 ... 'foo.bar@canonical.com')
63 >>> nomination.approve(foo_bar)61 >>> nomination.approve(foo_bar)
64 >>> can_be_nominated_for_series([firefox.series[0]])62 >>> can_be_nominated_for_series([firefox.series[0]])
65 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
66 Traceback (most recent call last):63 Traceback (most recent call last):
67 ...64 ...
68 lp.app.validators.LaunchpadValidationError: ...65 lp.app.validators.LaunchpadValidationError: ...
@@ -73,7 +70,6 @@ nominated.
73 >>> trunk_nomination = bug.addNomination(70 >>> trunk_nomination = bug.addNomination(
74 ... no_priv, firefox.series[1])71 ... no_priv, firefox.series[1])
75 >>> can_be_nominated_for_series(firefox.series)72 >>> can_be_nominated_for_series(firefox.series)
76 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
77 Traceback (most recent call last):73 Traceback (most recent call last):
78 ...74 ...
79 lp.app.validators.LaunchpadValidationError: This bug has already been nominated for these series: 1.0, Trunk75 lp.app.validators.LaunchpadValidationError: This bug has already been nominated for these series: 1.0, Trunk
@@ -115,7 +111,6 @@ Or a name that is not already in use.
115But you can't use Mark's name, of course. ;)111But you can't use Mark's name, of course. ;)
116112
117 >>> field.validate(u'mark')113 >>> field.validate(u'mark')
118 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
119 Traceback (most recent call last):114 Traceback (most recent call last):
120 ...115 ...
121 lp.app.validators.LaunchpadValidationError: ...mark is already in use by another person or team...116 lp.app.validators.LaunchpadValidationError: ...mark is already in use by another person or team...
diff --git a/lib/lp/app/validators/url.py b/lib/lp/app/validators/url.py
index 8df0a18..8dcc05b 100644
--- a/lib/lp/app/validators/url.py
+++ b/lib/lp/app/validators/url.py
@@ -152,7 +152,6 @@ def valid_webref(web_ref):
152 >>> valid_webref('sftp://example.com//absolute/path/maybe')152 >>> valid_webref('sftp://example.com//absolute/path/maybe')
153 True153 True
154 >>> valid_webref('other://example.com/moo')154 >>> valid_webref('other://example.com/moo')
155 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
156 Traceback (most recent call last):155 Traceback (most recent call last):
157 ...156 ...
158 lp.app.validators.LaunchpadValidationError: ...157 lp.app.validators.LaunchpadValidationError: ...
diff --git a/lib/lp/app/widgets/date.py b/lib/lp/app/widgets/date.py
index c24da8f..4d58907 100644
--- a/lib/lp/app/widgets/date.py
+++ b/lib/lp/app/widgets/date.py
@@ -85,12 +85,11 @@ class DateTimeWidget(TextWidget):
85 >>> widget.from_date = datetime(2006, 5, 23,85 >>> widget.from_date = datetime(2006, 5, 23,
86 ... tzinfo=pytz.timezone('UTC'))86 ... tzinfo=pytz.timezone('UTC'))
87 >>> print(widget.getInputValue())87 >>> print(widget.getInputValue())
88 ... # noqa
89 ... # doctest: +NORMALIZE_WHITESPACE,+ELLIPSIS88 ... # doctest: +NORMALIZE_WHITESPACE,+ELLIPSIS
90 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
91 Traceback (most recent call last):89 Traceback (most recent call last):
92 ...90 ...
93 zope.formlib.interfaces.WidgetInputError: (...Please pick a date after 2006-05-22 17:00:00...)91 zope.formlib.interfaces.WidgetInputError:
92 (...Please pick a date after 2006-05-22 17:00:00...)
9493
95 If the date provided is greater than from_date then the widget works as94 If the date provided is greater than from_date then the widget works as
96 expected.95 expected.
@@ -104,12 +103,11 @@ class DateTimeWidget(TextWidget):
104 >>> widget.to_date = datetime(2008, 1, 26,103 >>> widget.to_date = datetime(2008, 1, 26,
105 ... tzinfo=pytz.timezone('UTC'))104 ... tzinfo=pytz.timezone('UTC'))
106 >>> print(widget.getInputValue())105 >>> print(widget.getInputValue())
107 ... # noqa
108 ... # doctest: +NORMALIZE_WHITESPACE,+ELLIPSIS106 ... # doctest: +NORMALIZE_WHITESPACE,+ELLIPSIS
109 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
110 Traceback (most recent call last):107 Traceback (most recent call last):
111 ...108 ...
112 zope.formlib.interfaces.WidgetInputError: (...Please pick a date before 2008-01-25 16:00:00...)109 zope.formlib.interfaces.WidgetInputError:
110 (...Please pick a date before 2008-01-25 16:00:00...)
113111
114 A datetime picker can be disabled initially:112 A datetime picker can be disabled initially:
115113
@@ -392,7 +390,6 @@ class DateTimeWidget(TextWidget):
392390
393 >>> print(widget._parseInput('not a date'))391 >>> print(widget._parseInput('not a date'))
394 ... # doctest: +NORMALIZE_WHITESPACE,+ELLIPSIS392 ... # doctest: +NORMALIZE_WHITESPACE,+ELLIPSIS
395 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
396 Traceback (most recent call last):393 Traceback (most recent call last):
397 ...394 ...
398 zope.formlib.interfaces.ConversionError: ('Invalid date value', ...)395 zope.formlib.interfaces.ConversionError: ('Invalid date value', ...)
@@ -555,7 +552,6 @@ class DateWidget(DateTimeWidget):
555552
556 >>> print(widget._toFieldValue('not a date'))553 >>> print(widget._toFieldValue('not a date'))
557 ... # doctest: +NORMALIZE_WHITESPACE,+ELLIPSIS554 ... # doctest: +NORMALIZE_WHITESPACE,+ELLIPSIS
558 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
559 Traceback (most recent call last):555 Traceback (most recent call last):
560 ...556 ...
561 zope.formlib.interfaces.ConversionError: ('Invalid date value', ...)557 zope.formlib.interfaces.ConversionError: ('Invalid date value', ...)
diff --git a/lib/lp/app/widgets/doc/announcement-date-widget.txt b/lib/lp/app/widgets/doc/announcement-date-widget.txt
index b33fcaa..a50a431 100644
--- a/lib/lp/app/widgets/doc/announcement-date-widget.txt
+++ b/lib/lp/app/widgets/doc/announcement-date-widget.txt
@@ -57,7 +57,6 @@ If you choose to publish immediately, the date field must be empty.
57 >>> action_widget.request.form[action_widget.name] = 'immediately'57 >>> action_widget.request.form[action_widget.name] = 'immediately'
58 >>> date_widget.request.form[date_widget.name] = '2005-07-23'58 >>> date_widget.request.form[date_widget.name] = '2005-07-23'
59 >>> print(widget.getInputValue())59 >>> print(widget.getInputValue())
60 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
61 Traceback (most recent call last):60 Traceback (most recent call last):
62 ...61 ...
63 zope.formlib.interfaces.WidgetInputError: ('field.foo', ...'Foo', LaunchpadValidationError(...'Please do not provide a date if you want to publish immediately.'))62 zope.formlib.interfaces.WidgetInputError: ('field.foo', ...'Foo', LaunchpadValidationError(...'Please do not provide a date if you want to publish immediately.'))
@@ -68,7 +67,6 @@ must be filled.
68 >>> action_widget.request.form[action_widget.name] = 'specific'67 >>> action_widget.request.form[action_widget.name] = 'specific'
69 >>> date_widget.request.form[date_widget.name] = ''68 >>> date_widget.request.form[date_widget.name] = ''
70 >>> print(widget.getInputValue())69 >>> print(widget.getInputValue())
71 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
72 Traceback (most recent call last):70 Traceback (most recent call last):
73 ...71 ...
74 zope.formlib.interfaces.WidgetInputError: ('field.foo', ...'Foo', LaunchpadValidationError(...'Please provide a publication date.'))72 zope.formlib.interfaces.WidgetInputError: ('field.foo', ...'Foo', LaunchpadValidationError(...'Please provide a publication date.'))
diff --git a/lib/lp/app/widgets/doc/image-widget.txt b/lib/lp/app/widgets/doc/image-widget.txt
index 0d68f3b..35bc4ab 100644
--- a/lib/lp/app/widgets/doc/image-widget.txt
+++ b/lib/lp/app/widgets/doc/image-widget.txt
@@ -266,7 +266,7 @@ dimensions smaller than person_mugshot.dimensions, it must be rejected.
266 >>> form = {'field.mugshot.action': 'change', 'field.mugshot.image': logo}266 >>> form = {'field.mugshot.action': 'change', 'field.mugshot.image': logo}
267 >>> widget = ImageChangeWidget(267 >>> widget = ImageChangeWidget(
268 ... person_mugshot, LaunchpadTestRequest(form=form), edit_style)268 ... person_mugshot, LaunchpadTestRequest(form=form), edit_style)
269 >>> widget.getInputValue() # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2269 >>> widget.getInputValue()
270 Traceback (most recent call last):270 Traceback (most recent call last):
271 ...271 ...
272 zope.formlib.interfaces.WidgetInputError: ('field.mugshot', ...'Mugshot', LaunchpadValidationError(...'\nThis image is not exactly 192x192\npixels in size.'))272 zope.formlib.interfaces.WidgetInputError: ('field.mugshot', ...'Mugshot', LaunchpadValidationError(...'\nThis image is not exactly 192x192\npixels in size.'))
@@ -310,7 +310,7 @@ image, we'll get a validation error.
310 >>> _ = mugshot.seek(0)310 >>> _ = mugshot.seek(0)
311 >>> widget = ImageChangeWidget(311 >>> widget = ImageChangeWidget(
312 ... person_mugshot, LaunchpadTestRequest(form=form), edit_style)312 ... person_mugshot, LaunchpadTestRequest(form=form), edit_style)
313 >>> widget.getInputValue() # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2313 >>> widget.getInputValue()
314 Traceback (most recent call last):314 Traceback (most recent call last):
315 ...315 ...
316 zope.formlib.interfaces.WidgetInputError: ('field.mugshot', ...'Mugshot', LaunchpadValidationError(...'\nThis image exceeds the maximum allowed size in bytes.'))316 zope.formlib.interfaces.WidgetInputError: ('field.mugshot', ...'Mugshot', LaunchpadValidationError(...'\nThis image exceeds the maximum allowed size in bytes.'))
@@ -323,7 +323,7 @@ the maximum we allow.
323 >>> _ = mugshot.seek(0)323 >>> _ = mugshot.seek(0)
324 >>> widget = ImageChangeWidget(324 >>> widget = ImageChangeWidget(
325 ... person_mugshot, LaunchpadTestRequest(form=form), edit_style)325 ... person_mugshot, LaunchpadTestRequest(form=form), edit_style)
326 >>> widget.getInputValue() # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2326 >>> widget.getInputValue()
327 Traceback (most recent call last):327 Traceback (most recent call last):
328 ...328 ...
329 zope.formlib.interfaces.WidgetInputError: ('field.mugshot', ...'Mugshot', LaunchpadValidationError(...'\nThis image is not exactly 191x193\npixels in size.'))329 zope.formlib.interfaces.WidgetInputError: ('field.mugshot', ...'Mugshot', LaunchpadValidationError(...'\nThis image is not exactly 191x193\npixels in size.'))
@@ -332,7 +332,7 @@ the maximum we allow.
332 >>> _ = mugshot.seek(0)332 >>> _ = mugshot.seek(0)
333 >>> widget = ImageChangeWidget(333 >>> widget = ImageChangeWidget(
334 ... person_mugshot, LaunchpadTestRequest(form=form), edit_style)334 ... person_mugshot, LaunchpadTestRequest(form=form), edit_style)
335 >>> widget.getInputValue() # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2335 >>> widget.getInputValue()
336 Traceback (most recent call last):336 Traceback (most recent call last):
337 ...337 ...
338 zope.formlib.interfaces.WidgetInputError: ('field.mugshot', ...'Mugshot', LaunchpadValidationError(...'\nThis image is not exactly 193x191\npixels in size.'))338 zope.formlib.interfaces.WidgetInputError: ('field.mugshot', ...'Mugshot', LaunchpadValidationError(...'\nThis image is not exactly 193x191\npixels in size.'))
@@ -343,7 +343,7 @@ a file to be uploaded.
343 >>> form = {'field.mugshot.action': 'change', 'field.mugshot.image': ''}343 >>> form = {'field.mugshot.action': 'change', 'field.mugshot.image': ''}
344 >>> widget = ImageChangeWidget(344 >>> widget = ImageChangeWidget(
345 ... person_mugshot, LaunchpadTestRequest(form=form), edit_style)345 ... person_mugshot, LaunchpadTestRequest(form=form), edit_style)
346 >>> widget.getInputValue() # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2346 >>> widget.getInputValue()
347 Traceback (most recent call last):347 Traceback (most recent call last):
348 ...348 ...
349 zope.formlib.interfaces.WidgetInputError: ('field.mugshot', ...'Mugshot', LaunchpadValidationError(...'Please specify the image you want to use.'))349 zope.formlib.interfaces.WidgetInputError: ('field.mugshot', ...'Mugshot', LaunchpadValidationError(...'Please specify the image you want to use.'))
@@ -365,7 +365,7 @@ by setting the exact_dimensions attribute of the field to False:
365 ... 'field.mugshot.image': mugshot}365 ... 'field.mugshot.image': mugshot}
366 >>> widget = ImageChangeWidget(366 >>> widget = ImageChangeWidget(
367 ... person_mugshot, LaunchpadTestRequest(form=form), edit_style)367 ... person_mugshot, LaunchpadTestRequest(form=form), edit_style)
368 >>> widget.getInputValue() # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2368 >>> widget.getInputValue()
369 Traceback (most recent call last):369 Traceback (most recent call last):
370 ...370 ...
371 zope.formlib.interfaces.WidgetInputError: ('field.mugshot', ...'Mugshot', LaunchpadValidationError(...'\nThis image is larger than 64x64\npixels in size.'))371 zope.formlib.interfaces.WidgetInputError: ('field.mugshot', ...'Mugshot', LaunchpadValidationError(...'\nThis image is larger than 64x64\npixels in size.'))
diff --git a/lib/lp/app/widgets/doc/project-scope-widget.txt b/lib/lp/app/widgets/doc/project-scope-widget.txt
index e0bf442..1f11593 100644
--- a/lib/lp/app/widgets/doc/project-scope-widget.txt
+++ b/lib/lp/app/widgets/doc/project-scope-widget.txt
@@ -52,7 +52,7 @@ If the widget is required, getInputValue() raises UnexpectedFormData if
52there is no input.52there is no input.
5353
54 >>> widget.required = True54 >>> widget.required = True
55 >>> widget.getInputValue() # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON255 >>> widget.getInputValue()
56 Traceback (most recent call last):56 Traceback (most recent call last):
57 ...57 ...
58 lp.app.errors.UnexpectedFormData: No valid option was selected.58 lp.app.errors.UnexpectedFormData: No valid option was selected.
@@ -120,7 +120,6 @@ raised:
120 >>> widget.hasInput()120 >>> widget.hasInput()
121 True121 True
122 >>> selected_scope = widget.getInputValue()122 >>> selected_scope = widget.getInputValue()
123 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
124 Traceback (most recent call last):123 Traceback (most recent call last):
125 ...124 ...
126 zope.formlib.interfaces.WidgetInputError: ('field.scope', ...'', LaunchpadValidationError(...'There is no project named &#x27;invalid&#x27; registered in Launchpad'))125 zope.formlib.interfaces.WidgetInputError: ('field.scope', ...'', LaunchpadValidationError(...'There is no project named &#x27;invalid&#x27; registered in Launchpad'))
@@ -139,7 +138,6 @@ If no project name is given at all, a widget error is also raised:
139 >>> widget.hasInput()138 >>> widget.hasInput()
140 True139 True
141 >>> selected_scope = widget.getInputValue()140 >>> selected_scope = widget.getInputValue()
142 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
143 Traceback (most recent call last):141 Traceback (most recent call last):
144 ...142 ...
145 zope.formlib.interfaces.WidgetInputError: ('field.scope', ...'', LaunchpadValidationError(...'Please enter a project name'))143 zope.formlib.interfaces.WidgetInputError: ('field.scope', ...'', LaunchpadValidationError(...'Please enter a project name'))
@@ -154,7 +152,6 @@ If no project name is given at all, a widget error is also raised:
154 >>> widget.hasInput()152 >>> widget.hasInput()
155 True153 True
156 >>> selected_scope = widget.getInputValue()154 >>> selected_scope = widget.getInputValue()
157 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
158 Traceback (most recent call last):155 Traceback (most recent call last):
159 ...156 ...
160 zope.formlib.interfaces.WidgetInputError: ('field.scope', ...'', LaunchpadValidationError(...'Please enter a project name'))157 zope.formlib.interfaces.WidgetInputError: ('field.scope', ...'', LaunchpadValidationError(...'Please enter a project name'))
diff --git a/lib/lp/app/widgets/doc/stripped-text-widget.txt b/lib/lp/app/widgets/doc/stripped-text-widget.txt
index 7648db0..7c393da 100644
--- a/lib/lp/app/widgets/doc/stripped-text-widget.txt
+++ b/lib/lp/app/widgets/doc/stripped-text-widget.txt
@@ -60,7 +60,7 @@ provided.
60 ... __name__=six.ensure_str('field'), title=u'Title', required=True)60 ... __name__=six.ensure_str('field'), title=u'Title', required=True)
61 >>> request = LaunchpadTestRequest(form={'field.field':' \n '})61 >>> request = LaunchpadTestRequest(form={'field.field':' \n '})
62 >>> widget = StrippedTextWidget(required_field, request)62 >>> widget = StrippedTextWidget(required_field, request)
63 >>> widget.getInputValue() # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON263 >>> widget.getInputValue()
64 Traceback (most recent call last):64 Traceback (most recent call last):
65 ...65 ...
66 zope.formlib.interfaces.WidgetInputError: ('field', ...'Title', RequiredMissing('field'))66 zope.formlib.interfaces.WidgetInputError: ('field', ...'Title', RequiredMissing('field'))
diff --git a/lib/lp/app/widgets/doc/zope3-widgets-use-form-ng.txt b/lib/lp/app/widgets/doc/zope3-widgets-use-form-ng.txt
index 5888dee..dea969a 100644
--- a/lib/lp/app/widgets/doc/zope3-widgets-use-form-ng.txt
+++ b/lib/lp/app/widgets/doc/zope3-widgets-use-form-ng.txt
@@ -41,7 +41,6 @@ contains more than one argument.
41 >>> Zope3WidgetsUseIBrowserFormNGMonkeyPatch.install()41 >>> Zope3WidgetsUseIBrowserFormNGMonkeyPatch.install()
4242
43 >>> int_widget.getInputValue()43 >>> int_widget.getInputValue()
44 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
45 Traceback (most recent call last):44 Traceback (most recent call last):
46 ...45 ...
47 lp.app.errors.UnexpectedFormData: ...46 lp.app.errors.UnexpectedFormData: ...
@@ -51,7 +50,6 @@ contains more than one argument.
51 ... form={'field.text': ['two', 'strings']})50 ... form={'field.text': ['two', 'strings']})
52 >>> text_widget = TextWidget(text_field, request)51 >>> text_widget = TextWidget(text_field, request)
53 >>> text_widget.getInputValue()52 >>> text_widget.getInputValue()
54 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
55 Traceback (most recent call last):53 Traceback (most recent call last):
56 ...54 ...
57 lp.app.errors.UnexpectedFormData: ...55 lp.app.errors.UnexpectedFormData: ...
@@ -63,7 +61,6 @@ with the Launchpad widgets extending it:
6361
64 >>> stripped_text_widget = StrippedTextWidget(text_field, request)62 >>> stripped_text_widget = StrippedTextWidget(text_field, request)
65 >>> stripped_text_widget.getInputValue()63 >>> stripped_text_widget.getInputValue()
66 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
67 Traceback (most recent call last):64 Traceback (most recent call last):
68 ...65 ...
69 lp.app.errors.UnexpectedFormData: ...66 lp.app.errors.UnexpectedFormData: ...
diff --git a/lib/lp/archivepublisher/tests/archive-signing.txt b/lib/lp/archivepublisher/tests/archive-signing.txt
index d2efc4f..266b42b 100644
--- a/lib/lp/archivepublisher/tests/archive-signing.txt
+++ b/lib/lp/archivepublisher/tests/archive-signing.txt
@@ -457,7 +457,6 @@ have a 'signing_key' set, it raises an error.
457 >>> del get_property_cache(cprov.archive).signing_key457 >>> del get_property_cache(cprov.archive).signing_key
458458
459 >>> archive_signing_key.signRepository(test_suite)459 >>> archive_signing_key.signRepository(test_suite)
460 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
461 Traceback (most recent call last):460 Traceback (most recent call last):
462 ...461 ...
463 lp.archivepublisher.interfaces.archivegpgsigningkey.CannotSignArchive: No signing key available for PPA for Celso Providelo462 lp.archivepublisher.interfaces.archivegpgsigningkey.CannotSignArchive: No signing key available for PPA for Celso Providelo
diff --git a/lib/lp/archiveuploader/tests/nascentupload-announcements.txt b/lib/lp/archiveuploader/tests/nascentupload-announcements.txt
index 9f7c2f9..fc12cfd 100644
--- a/lib/lp/archiveuploader/tests/nascentupload-announcements.txt
+++ b/lib/lp/archiveuploader/tests/nascentupload-announcements.txt
@@ -754,7 +754,7 @@ And then try to upload using the changes file with the malformed name.
754754
755 >>> bar_src = NascentUpload.from_changesfile_path(755 >>> bar_src = NascentUpload.from_changesfile_path(
756 ... copyp, sync_policy, DevNullLogger())756 ... copyp, sync_policy, DevNullLogger())
757 >>> bar_src.process() # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2757 >>> bar_src.process()
758 Traceback (most recent call last):758 Traceback (most recent call last):
759 ...759 ...
760 lp.archiveuploader.nascentupload.EarlyReturnUploadError: An error occurred that prevented further processing.760 lp.archiveuploader.nascentupload.EarlyReturnUploadError: An error occurred that prevented further processing.
diff --git a/lib/lp/archiveuploader/tests/nascentupload-epoch-handling.txt b/lib/lp/archiveuploader/tests/nascentupload-epoch-handling.txt
index 45190aa..cb4c2ef 100644
--- a/lib/lp/archiveuploader/tests/nascentupload-epoch-handling.txt
+++ b/lib/lp/archiveuploader/tests/nascentupload-epoch-handling.txt
@@ -151,7 +151,6 @@ Published the 'non-epoched' bar source version as the base package:
151When publishing the 'epoched' bar source the collision is detected:151When publishing the 'epoched' bar source the collision is detected:
152152
153 >>> bar_src_queue_epoch.realiseUpload()153 >>> bar_src_queue_epoch.realiseUpload()
154 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
155 Traceback (most recent call last):154 Traceback (most recent call last):
156 ...155 ...
157 lp.soyuz.interfaces.queue.QueueInconsistentStateError: bar_1.0-1.diff.gz is already published in archive for hoary156 lp.soyuz.interfaces.queue.QueueInconsistentStateError: bar_1.0-1.diff.gz is already published in archive for hoary
@@ -170,7 +169,6 @@ containing a orig file with diferent contents than the one already
170published in 'non-epoched' version:169published in 'non-epoched' version:
171170
172 >>> bar_src_queue_epoch2.realiseUpload()171 >>> bar_src_queue_epoch2.realiseUpload()
173 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
174 Traceback (most recent call last):172 Traceback (most recent call last):
175 ...173 ...
176 lp.soyuz.interfaces.queue.QueueInconsistentStateError: bar_1.0.orig.tar.gz is already published in archive for hoary with a different SHA1 hash (e918d6f5ec2184ae1d795a130da36c9a82c4beaf != 73a04163fee97fd2257ab266bd48f1d3d528e012)174 lp.soyuz.interfaces.queue.QueueInconsistentStateError: bar_1.0.orig.tar.gz is already published in archive for hoary with a different SHA1 hash (e918d6f5ec2184ae1d795a130da36c9a82c4beaf != 73a04163fee97fd2257ab266bd48f1d3d528e012)
diff --git a/lib/lp/archiveuploader/tests/nascentupload.txt b/lib/lp/archiveuploader/tests/nascentupload.txt
index 20fb5f1..30272a4 100644
--- a/lib/lp/archiveuploader/tests/nascentupload.txt
+++ b/lib/lp/archiveuploader/tests/nascentupload.txt
@@ -54,7 +54,7 @@ on that.
5454
55 >>> nonexistent = NascentUpload.from_changesfile_path(55 >>> nonexistent = NascentUpload.from_changesfile_path(
56 ... datadir("DOES-NOT-EXIST"), buildd_policy, FakeLogger())56 ... datadir("DOES-NOT-EXIST"), buildd_policy, FakeLogger())
57 >>> nonexistent.process() # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON257 >>> nonexistent.process()
58 Traceback (most recent call last):58 Traceback (most recent call last):
59 ...59 ...
60 lp.archiveuploader.nascentupload.EarlyReturnUploadError: An error occurred that prevented further processing.60 lp.archiveuploader.nascentupload.EarlyReturnUploadError: An error occurred that prevented further processing.
diff --git a/lib/lp/archiveuploader/tests/nascentuploadfile.txt b/lib/lp/archiveuploader/tests/nascentuploadfile.txt
index 60ea018..0747315 100644
--- a/lib/lp/archiveuploader/tests/nascentuploadfile.txt
+++ b/lib/lp/archiveuploader/tests/nascentuploadfile.txt
@@ -44,7 +44,6 @@ Construct the base object with just enough data to do the check:
44The filename tries to use an epoch in an invalid way:44The filename tries to use an epoch in an invalid way:
4545
46 >>> upload_file.checkNameIsTaintFree()46 >>> upload_file.checkNameIsTaintFree()
47 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
48 Traceback (most recent call last):47 Traceback (most recent call last):
49 ...48 ...
50 lp.archiveuploader.utils.UploadError: Invalid character(s) in filename: 'package-1.1.2-3:0ubuntu4'.49 lp.archiveuploader.utils.UploadError: Invalid character(s) in filename: 'package-1.1.2-3:0ubuntu4'.
@@ -263,7 +262,6 @@ Launchpad:
263If the address is unparsable, we get an error.262If the address is unparsable, we get an error.
264263
265 >>> sig_file.parseAddress("Cannot Parse Me <FOOO>")264 >>> sig_file.parseAddress("Cannot Parse Me <FOOO>")
266 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
267 Traceback (most recent call last):265 Traceback (most recent call last):
268 ...266 ...
269 lp.archiveuploader.utils.UploadError: Cannot Parse Me <FOOO>: no @ found in email address part.267 lp.archiveuploader.utils.UploadError: Cannot Parse Me <FOOO>: no @ found in email address part.
diff --git a/lib/lp/archiveuploader/tests/upload-path-parsing.txt b/lib/lp/archiveuploader/tests/upload-path-parsing.txt
index c4c998d..41a834e 100644
--- a/lib/lp/archiveuploader/tests/upload-path-parsing.txt
+++ b/lib/lp/archiveuploader/tests/upload-path-parsing.txt
@@ -48,7 +48,6 @@ If such distribution doesn't exist, parse_upload_path() raises
48`UploadPathError`.48`UploadPathError`.
4949
50 >>> check_upload('does-not-exist')50 >>> check_upload('does-not-exist')
51 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
52 Traceback (most recent call last):51 Traceback (most recent call last):
53 ...52 ...
54 lp.archiveuploader.uploadprocessor.UploadPathError: Could not find distribution 'does-not-exist'.53 lp.archiveuploader.uploadprocessor.UploadPathError: Could not find distribution 'does-not-exist'.
@@ -70,7 +69,6 @@ Again, if the given suite name can not be found an `UploadPathError`
70is raised.69is raised.
7170
72 >>> check_upload('debian/imaginary')71 >>> check_upload('debian/imaginary')
73 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
74 Traceback (most recent call last):72 Traceback (most recent call last):
75 ...73 ...
76 lp.archiveuploader.uploadprocessor.UploadPathError: Could not find suite 'imaginary'.74 lp.archiveuploader.uploadprocessor.UploadPathError: Could not find suite 'imaginary'.
@@ -104,13 +102,11 @@ up as a Person in Launchpad.
104 Suite: None102 Suite: None
105103
106 >>> check_upload('~does-not-exist/ubuntu/ppa')104 >>> check_upload('~does-not-exist/ubuntu/ppa')
107 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
108 Traceback (most recent call last):105 Traceback (most recent call last):
109 ...106 ...
110 lp.archiveuploader.uploadprocessor.PPAUploadPathError: Could not find person or team named 'does-not-exist'.107 lp.archiveuploader.uploadprocessor.PPAUploadPathError: Could not find person or team named 'does-not-exist'.
111108
112 >>> check_upload('~cprov/notbuntu/ppa')109 >>> check_upload('~cprov/notbuntu/ppa')
113 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
114 Traceback (most recent call last):110 Traceback (most recent call last):
115 ...111 ...
116 lp.archiveuploader.uploadprocessor.PPAUploadPathError: Could not find distribution 'notbuntu'.112 lp.archiveuploader.uploadprocessor.PPAUploadPathError: Could not find distribution 'notbuntu'.
@@ -148,7 +144,6 @@ valid. It's also supported for uploads to the deprecated paths.
148 Suite: warty-backports144 Suite: warty-backports
149145
150 >>> check_upload('~cprov/ppa/ubuntu/boing')146 >>> check_upload('~cprov/ppa/ubuntu/boing')
151 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
152 Traceback (most recent call last):147 Traceback (most recent call last):
153 ...148 ...
154 lp.archiveuploader.uploadprocessor.PPAUploadPathError: Could not find suite 'boing'.149 lp.archiveuploader.uploadprocessor.PPAUploadPathError: Could not find suite 'boing'.
@@ -164,13 +159,11 @@ an error.
164 >>> transaction.commit()159 >>> transaction.commit()
165160
166 >>> check_upload('~cprov/ubuntu/ppa')161 >>> check_upload('~cprov/ubuntu/ppa')
167 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
168 Traceback (most recent call last):162 Traceback (most recent call last):
169 ...163 ...
170 lp.archiveuploader.uploadprocessor.PPAUploadPathError: PPA for Celso Providelo is disabled.164 lp.archiveuploader.uploadprocessor.PPAUploadPathError: PPA for Celso Providelo is disabled.
171165
172 >>> check_upload('~cprov/ppa/ubuntu')166 >>> check_upload('~cprov/ppa/ubuntu')
173 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
174 Traceback (most recent call last):167 Traceback (most recent call last):
175 ...168 ...
176 lp.archiveuploader.uploadprocessor.PPAUploadPathError: PPA for Celso Providelo is disabled.169 lp.archiveuploader.uploadprocessor.PPAUploadPathError: PPA for Celso Providelo is disabled.
@@ -178,13 +171,11 @@ an error.
178Uploading to named PPA that does not exist fails.171Uploading to named PPA that does not exist fails.
179172
180 >>> check_upload('~cprov/ubuntu/beta')173 >>> check_upload('~cprov/ubuntu/beta')
181 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
182 Traceback (most recent call last):174 Traceback (most recent call last):
183 ...175 ...
184 lp.archiveuploader.uploadprocessor.PPAUploadPathError: Could not find a PPA owned by 'cprov' for 'ubuntu' named 'beta'.176 lp.archiveuploader.uploadprocessor.PPAUploadPathError: Could not find a PPA owned by 'cprov' for 'ubuntu' named 'beta'.
185177
186 >>> check_upload('~cprov/beta/ubuntu')178 >>> check_upload('~cprov/beta/ubuntu')
187 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
188 Traceback (most recent call last):179 Traceback (most recent call last):
189 ...180 ...
190 lp.archiveuploader.uploadprocessor.PPAUploadPathError: Could not find a PPA owned by 'cprov' for 'ubuntu' named 'beta'.181 lp.archiveuploader.uploadprocessor.PPAUploadPathError: Could not find a PPA owned by 'cprov' for 'ubuntu' named 'beta'.
@@ -216,7 +207,6 @@ identifies and warns users accordingly.
216An extra path part that cannot be processed for distribution uploads.207An extra path part that cannot be processed for distribution uploads.
217208
218 >>> check_upload('ubuntu/warty/ding-dong')209 >>> check_upload('ubuntu/warty/ding-dong')
219 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
220 Traceback (most recent call last):210 Traceback (most recent call last):
221 ...211 ...
222 lp.archiveuploader.uploadprocessor.UploadPathError: Path format mismatch.212 lp.archiveuploader.uploadprocessor.UploadPathError: Path format mismatch.
@@ -225,7 +215,6 @@ A distribution specific uploads starting with '~' as if it was a
225person name. Note that users can't be named like distribution anyways.215person name. Note that users can't be named like distribution anyways.
226216
227 >>> check_upload('~ubuntu')217 >>> check_upload('~ubuntu')
228 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
229 Traceback (most recent call last):218 Traceback (most recent call last):
230 ...219 ...
231 lp.archiveuploader.uploadprocessor.UploadPathError: Path format mismatch.220 lp.archiveuploader.uploadprocessor.UploadPathError: Path format mismatch.
@@ -233,7 +222,6 @@ person name. Note that users can't be named like distribution anyways.
233An extra path part that cannot be processed for PPA uploads.222An extra path part that cannot be processed for PPA uploads.
234223
235 >>> check_upload('~cprov/ubuntu/ppa/warty/ding-dong')224 >>> check_upload('~cprov/ubuntu/ppa/warty/ding-dong')
236 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
237 Traceback (most recent call last):225 Traceback (most recent call last):
238 ...226 ...
239 lp.archiveuploader.uploadprocessor.UploadPathError: Path format mismatch.227 lp.archiveuploader.uploadprocessor.UploadPathError: Path format mismatch.
@@ -241,7 +229,6 @@ An extra path part that cannot be processed for PPA uploads.
241A PPA upload missing '~':229A PPA upload missing '~':
242230
243 >>> check_upload('cprov/ubuntu/ppa')231 >>> check_upload('cprov/ubuntu/ppa')
244 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
245 Traceback (most recent call last):232 Traceback (most recent call last):
246 ...233 ...
247 lp.archiveuploader.uploadprocessor.UploadPathError: Path format mismatch.234 lp.archiveuploader.uploadprocessor.UploadPathError: Path format mismatch.
@@ -249,7 +236,6 @@ A PPA upload missing '~':
249A old-style PPA upload missing '~':236A old-style PPA upload missing '~':
250237
251 >>> check_upload('cprov/ubuntu')238 >>> check_upload('cprov/ubuntu')
252 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
253 Traceback (most recent call last):239 Traceback (most recent call last):
254 ...240 ...
255 lp.archiveuploader.uploadprocessor.UploadPathError: Could not find distribution 'cprov'.241 lp.archiveuploader.uploadprocessor.UploadPathError: Could not find distribution 'cprov'.
@@ -257,7 +243,6 @@ A old-style PPA upload missing '~':
257An old-style named PPA upload missing '~'.243An old-style named PPA upload missing '~'.
258244
259 >>> check_upload('cprov/ppa/ubuntu')245 >>> check_upload('cprov/ppa/ubuntu')
260 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
261 Traceback (most recent call last):246 Traceback (most recent call last):
262 ...247 ...
263 lp.archiveuploader.uploadprocessor.UploadPathError: Path format mismatch.248 lp.archiveuploader.uploadprocessor.UploadPathError: Path format mismatch.
@@ -301,7 +286,6 @@ In the case where an archive cannot be found an 'UploadPathError' exception
301is raised.286is raised.
302287
303 >>> check_upload('1234567890/ubuntu')288 >>> check_upload('1234567890/ubuntu')
304 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
305 Traceback (most recent call last):289 Traceback (most recent call last):
306 ...290 ...
307 lp.archiveuploader.uploadprocessor.UploadPathError: Could not find archive with id=1234567890.291 lp.archiveuploader.uploadprocessor.UploadPathError: Could not find archive with id=1234567890.
diff --git a/lib/lp/blueprints/doc/specgraph.txt b/lib/lp/blueprints/doc/specgraph.txt
index ad3114e..4e2f985 100644
--- a/lib/lp/blueprints/doc/specgraph.txt
+++ b/lib/lp/blueprints/doc/specgraph.txt
@@ -306,7 +306,6 @@ to the command is bad:
306 ... (svg_support, request), name="+deptreeimgtag")306 ... (svg_support, request), name="+deptreeimgtag")
307 >>> graph_view.initialize()307 >>> graph_view.initialize()
308 >>> graph_view.renderGraphvizGraph('cmapx')308 >>> graph_view.renderGraphvizGraph('cmapx')
309 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
310 Traceback (most recent call last):309 Traceback (most recent call last):
311 ...310 ...
312 lp.blueprints.browser.specification.ProblemRenderingGraph: (... syntax error in line 1 near 'bad'...)311 lp.blueprints.browser.specification.ProblemRenderingGraph: (... syntax error in line 1 near 'bad'...)
diff --git a/lib/lp/blueprints/stories/blueprints/xx-creation.txt b/lib/lp/blueprints/stories/blueprints/xx-creation.txt
index 265dbff..c95ab67 100644
--- a/lib/lp/blueprints/stories/blueprints/xx-creation.txt
+++ b/lib/lp/blueprints/stories/blueprints/xx-creation.txt
@@ -723,7 +723,6 @@ individual user's blueprint listing page:
723723
724 >>> user_browser.open('http://blueprints.launchpad.test/~mark')724 >>> user_browser.open('http://blueprints.launchpad.test/~mark')
725 >>> print(user_browser.getLink('Register a blueprint'))725 >>> print(user_browser.getLink('Register a blueprint'))
726 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
727 Traceback (most recent call last):726 Traceback (most recent call last):
728 ...727 ...
729 zope.testbrowser.browser.LinkNotFoundError728 zope.testbrowser.browser.LinkNotFoundError
@@ -733,7 +732,6 @@ listing page:
733732
734 >>> user_browser.open('http://blueprints.launchpad.test/~admins')733 >>> user_browser.open('http://blueprints.launchpad.test/~admins')
735 >>> print(user_browser.getLink('Register a blueprint'))734 >>> print(user_browser.getLink('Register a blueprint'))
736 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
737 Traceback (most recent call last):735 Traceback (most recent call last):
738 ...736 ...
739 zope.testbrowser.browser.LinkNotFoundError737 zope.testbrowser.browser.LinkNotFoundError
diff --git a/lib/lp/blueprints/stories/blueprints/xx-dependencies.txt b/lib/lp/blueprints/stories/blueprints/xx-dependencies.txt
index 39b6a01..0164163 100644
--- a/lib/lp/blueprints/stories/blueprints/xx-dependencies.txt
+++ b/lib/lp/blueprints/stories/blueprints/xx-dependencies.txt
@@ -41,14 +41,12 @@ users with launchpad.Edit permission for the blueprint.
41 >>> user_browser.open(41 >>> user_browser.open(
42 ... 'http://blueprints.launchpad.test/firefox/+spec/canvas')42 ... 'http://blueprints.launchpad.test/firefox/+spec/canvas')
43 >>> user_browser.getLink('Add dependency')43 >>> user_browser.getLink('Add dependency')
44 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
45 Traceback (most recent call last):44 Traceback (most recent call last):
46 ...45 ...
47 zope.testbrowser.browser.LinkNotFoundError46 zope.testbrowser.browser.LinkNotFoundError
48 >>> user_browser.open(47 >>> user_browser.open(
49 ... 'http://blueprints.launchpad.test/firefox/+spec/canvas/'48 ... 'http://blueprints.launchpad.test/firefox/+spec/canvas/'
50 ... '+linkdependency')49 ... '+linkdependency')
51 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
52 Traceback (most recent call last):50 Traceback (most recent call last):
53 ...51 ...
54 zope.security.interfaces.Unauthorized: ...52 zope.security.interfaces.Unauthorized: ...
@@ -114,14 +112,12 @@ users with launchpad.Edit permission for the blueprint.
114 >>> user_browser.open(112 >>> user_browser.open(
115 ... 'http://blueprints.launchpad.test/firefox/+spec/canvas')113 ... 'http://blueprints.launchpad.test/firefox/+spec/canvas')
116 >>> user_browser.getLink('Remove dependency')114 >>> user_browser.getLink('Remove dependency')
117 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
118 Traceback (most recent call last):115 Traceback (most recent call last):
119 ...116 ...
120 zope.testbrowser.browser.LinkNotFoundError117 zope.testbrowser.browser.LinkNotFoundError
121 >>> user_browser.open(118 >>> user_browser.open(
122 ... 'http://blueprints.launchpad.test/firefox/+spec/canvas/'119 ... 'http://blueprints.launchpad.test/firefox/+spec/canvas/'
123 ... '+removedependency')120 ... '+removedependency')
124 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
125 Traceback (most recent call last):121 Traceback (most recent call last):
126 ...122 ...
127 zope.security.interfaces.Unauthorized: ...123 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/blueprints/stories/blueprints/xx-editing.txt b/lib/lp/blueprints/stories/blueprints/xx-editing.txt
index cf0a920..8c9009b 100644
--- a/lib/lp/blueprints/stories/blueprints/xx-editing.txt
+++ b/lib/lp/blueprints/stories/blueprints/xx-editing.txt
@@ -116,7 +116,6 @@ Any logged in user can edit a specification whiteboard.
116Regular users can't access the change status page.116Regular users can't access the change status page.
117117
118 >>> user_browser.getLink(url='+status')118 >>> user_browser.getLink(url='+status')
119 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
120 Traceback (most recent call last):119 Traceback (most recent call last):
121 ...120 ...
122 zope.testbrowser.browser.LinkNotFoundError121 zope.testbrowser.browser.LinkNotFoundError
@@ -124,7 +123,6 @@ Regular users can't access the change status page.
124 >>> user_browser.open(123 >>> user_browser.open(
125 ... 'http://blueprints.launchpad.test/kubuntu/'124 ... 'http://blueprints.launchpad.test/kubuntu/'
126 ... '+spec/krunch-desktop-plan/+status')125 ... '+spec/krunch-desktop-plan/+status')
127 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
128 Traceback (most recent call last):126 Traceback (most recent call last):
129 ...127 ...
130 zope.security.interfaces.Unauthorized: ...128 zope.security.interfaces.Unauthorized: ...
@@ -135,7 +133,6 @@ Nor can they change a blueprint's priority.
135 ... 'http://blueprints.launchpad.test/kubuntu/'133 ... 'http://blueprints.launchpad.test/kubuntu/'
136 ... '+spec/krunch-desktop-plan')134 ... '+spec/krunch-desktop-plan')
137 >>> user_browser.getLink(url='+priority')135 >>> user_browser.getLink(url='+priority')
138 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
139 Traceback (most recent call last):136 Traceback (most recent call last):
140 ...137 ...
141 zope.testbrowser.browser.LinkNotFoundError138 zope.testbrowser.browser.LinkNotFoundError
diff --git a/lib/lp/blueprints/stories/sprints/sprint-settopics.txt b/lib/lp/blueprints/stories/sprints/sprint-settopics.txt
index d0185b9..a0a0775 100644
--- a/lib/lp/blueprints/stories/sprints/sprint-settopics.txt
+++ b/lib/lp/blueprints/stories/sprints/sprint-settopics.txt
@@ -23,21 +23,18 @@ Regular users can't approve items to be discussed in a sprint.
2323
24 >>> user_browser.open('http://launchpad.test/sprints/uds-guacamole')24 >>> user_browser.open('http://launchpad.test/sprints/uds-guacamole')
25 >>> user_browser.getLink('proposed')25 >>> user_browser.getLink('proposed')
26 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
27 Traceback (most recent call last):26 Traceback (most recent call last):
28 ...27 ...
29 zope.testbrowser.browser.LinkNotFoundError28 zope.testbrowser.browser.LinkNotFoundError
3029
31 >>> user_browser.getLink('Blueprints').click()30 >>> user_browser.getLink('Blueprints').click()
32 >>> user_browser.getLink('Set agenda').click()31 >>> user_browser.getLink('Set agenda').click()
33 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
34 Traceback (most recent call last):32 Traceback (most recent call last):
35 ...33 ...
36 zope.testbrowser.browser.LinkNotFoundError34 zope.testbrowser.browser.LinkNotFoundError
3735
38 >>> user_browser.open(36 >>> user_browser.open(
39 ... 'http://launchpad.test/sprints/uds-guacamole/+settopics')37 ... 'http://launchpad.test/sprints/uds-guacamole/+settopics')
40 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
41 Traceback (most recent call last):38 Traceback (most recent call last):
42 ...39 ...
43 zope.security.interfaces.Unauthorized: ...40 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/blueprints/stories/sprints/xx-sprints.txt b/lib/lp/blueprints/stories/sprints/xx-sprints.txt
index 0068d91..ea2e537 100644
--- a/lib/lp/blueprints/stories/sprints/xx-sprints.txt
+++ b/lib/lp/blueprints/stories/sprints/xx-sprints.txt
@@ -174,7 +174,6 @@ available to those who have permissions to edit that sprint.
174 Ubuntu Below Zero : Meetings174 Ubuntu Below Zero : Meetings
175175
176 >>> anon_browser.getLink('Change details')176 >>> anon_browser.getLink('Change details')
177 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
178 Traceback (most recent call last):177 Traceback (most recent call last):
179 ...178 ...
180 zope.testbrowser.browser.LinkNotFoundError179 zope.testbrowser.browser.LinkNotFoundError
@@ -498,13 +497,11 @@ Unregistered and anonymous users cannot access the CSV report.
498497
499 >>> user_browser.open('http://launchpad.test/sprints/ubz')498 >>> user_browser.open('http://launchpad.test/sprints/ubz')
500 >>> user_browser.getLink('Export attendees to CSV').click()499 >>> user_browser.getLink('Export attendees to CSV').click()
501 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
502 Traceback (most recent call last):500 Traceback (most recent call last):
503 ...501 ...
504 zope.testbrowser.browser.LinkNotFoundError502 zope.testbrowser.browser.LinkNotFoundError
505503
506 >>> anon_browser.open('http://launchpad.test/sprints/ubz/+attendees-csv')504 >>> anon_browser.open('http://launchpad.test/sprints/ubz/+attendees-csv')
507 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
508 Traceback (most recent call last):505 Traceback (most recent call last):
509 ...506 ...
510 zope.security.interfaces.Unauthorized: ...507 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/blueprints/stories/standalone/subscribing.txt b/lib/lp/blueprints/stories/standalone/subscribing.txt
index f3feaef..beab847 100644
--- a/lib/lp/blueprints/stories/standalone/subscribing.txt
+++ b/lib/lp/blueprints/stories/standalone/subscribing.txt
@@ -18,7 +18,6 @@ First, let's make sure we can see the link called "Subscribe..."
18If I try to go to the subscription page I will be told to login.18If I try to go to the subscription page I will be told to login.
1919
20 >>> subscribe_link.click()20 >>> subscribe_link.click()
21 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
22 Traceback (most recent call last):21 Traceback (most recent call last):
23 ...22 ...
24 zope.security.interfaces.Unauthorized: ...AnyP...23 zope.security.interfaces.Unauthorized: ...AnyP...
diff --git a/lib/lp/blueprints/stories/standalone/xx-branch-links.txt b/lib/lp/blueprints/stories/standalone/xx-branch-links.txt
index f95f051..9af766c 100644
--- a/lib/lp/blueprints/stories/standalone/xx-branch-links.txt
+++ b/lib/lp/blueprints/stories/standalone/xx-branch-links.txt
@@ -19,7 +19,6 @@ If the user is not logged in, they will be asked to log in.
19 >>> anon_browser.open(19 >>> anon_browser.open(
20 ... 'http://code.launchpad.test/~name12/firefox/main')20 ... 'http://code.launchpad.test/~name12/firefox/main')
21 >>> anon_browser.getLink('Link to a blueprint').click()21 >>> anon_browser.getLink('Link to a blueprint').click()
22 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
23 Traceback (most recent call last):22 Traceback (most recent call last):
24 ...23 ...
25 zope.security.interfaces.Unauthorized: (...launchpad.AnyPerson')24 zope.security.interfaces.Unauthorized: (...launchpad.AnyPerson')
diff --git a/lib/lp/blueprints/stories/standalone/xx-views.txt b/lib/lp/blueprints/stories/standalone/xx-views.txt
index 570fa1d..05bec72 100644
--- a/lib/lp/blueprints/stories/standalone/xx-views.txt
+++ b/lib/lp/blueprints/stories/standalone/xx-views.txt
@@ -223,7 +223,6 @@ second blueprint is no longer visible:
223 >>> browser.getLink('blueprint-1')223 >>> browser.getLink('blueprint-1')
224 <Link...224 <Link...
225 >>> browser.getLink('blueprint-2')225 >>> browser.getLink('blueprint-2')
226 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
227 Traceback (most recent call last):226 Traceback (most recent call last):
228 ...227 ...
229 zope.testbrowser.browser.LinkNotFoundError228 zope.testbrowser.browser.LinkNotFoundError
diff --git a/lib/lp/bugs/doc/bug-change.txt b/lib/lp/bugs/doc/bug-change.txt
index f51c352..3e6acb7 100644
--- a/lib/lp/bugs/doc/bug-change.txt
+++ b/lib/lp/bugs/doc/bug-change.txt
@@ -208,7 +208,6 @@ If get_bug_change_class() is asked for a BugChange for an object or
208field that it doesn't know about, it will raise a NoBugChangeFoundError.208field that it doesn't know about, it will raise a NoBugChangeFoundError.
209209
210 >>> get_bug_change_class(object(), 'fooix')210 >>> get_bug_change_class(object(), 'fooix')
211 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
212 Traceback (most recent call last):211 Traceback (most recent call last):
213 ...212 ...
214 lp.bugs.adapters.bugchange.NoBugChangeFoundError: Unable to find a suitable BugChange for field 'fooix' on object <object object at ...>213 lp.bugs.adapters.bugchange.NoBugChangeFoundError: Unable to find a suitable BugChange for field 'fooix' on object <object object at ...>
diff --git a/lib/lp/bugs/doc/bug-reported-acknowledgement.txt b/lib/lp/bugs/doc/bug-reported-acknowledgement.txt
index 393b23b..cdb4ebd 100644
--- a/lib/lp/bugs/doc/bug-reported-acknowledgement.txt
+++ b/lib/lp/bugs/doc/bug-reported-acknowledgement.txt
@@ -54,19 +54,16 @@ read-only property, and the security proxies also only allow read
54access.54access.
5555
56 >>> distro_series.bug_reported_acknowledgement = 'Foobar'56 >>> distro_series.bug_reported_acknowledgement = 'Foobar'
57 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
58 Traceback (most recent call last):57 Traceback (most recent call last):
59 ...58 ...
60 zope.security.interfaces.ForbiddenAttribute: ...59 zope.security.interfaces.ForbiddenAttribute: ...
6160
62 >>> source_package.bug_reported_acknowledgement = 'Foobar'61 >>> source_package.bug_reported_acknowledgement = 'Foobar'
63 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
64 Traceback (most recent call last):62 Traceback (most recent call last):
65 ...63 ...
66 zope.security.interfaces.ForbiddenAttribute: ...64 zope.security.interfaces.ForbiddenAttribute: ...
6765
68 >>> product_series.bug_reported_acknowledgement = 'Foobar'66 >>> product_series.bug_reported_acknowledgement = 'Foobar'
69 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
70 Traceback (most recent call last):67 Traceback (most recent call last):
71 ...68 ...
72 zope.security.interfaces.ForbiddenAttribute: ...69 zope.security.interfaces.ForbiddenAttribute: ...
@@ -88,25 +85,21 @@ message.
88 ... print(context.bug_reported_acknowledgement)85 ... print(context.bug_reported_acknowledgement)
8986
90 >>> check_access("no-priv@canonical.com", distribution)87 >>> check_access("no-priv@canonical.com", distribution)
91 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
92 Traceback (most recent call last):88 Traceback (most recent call last):
93 ...89 ...
94 zope.security.interfaces.Unauthorized: ...90 zope.security.interfaces.Unauthorized: ...
9591
96 >>> check_access("no-priv@canonical.com", distribution_source_package)92 >>> check_access("no-priv@canonical.com", distribution_source_package)
97 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
98 Traceback (most recent call last):93 Traceback (most recent call last):
99 ...94 ...
100 zope.security.interfaces.Unauthorized: ...95 zope.security.interfaces.Unauthorized: ...
10196
102 >>> check_access("no-priv@canonical.com", project)97 >>> check_access("no-priv@canonical.com", project)
103 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
104 Traceback (most recent call last):98 Traceback (most recent call last):
105 ...99 ...
106 zope.security.interfaces.Unauthorized: ...100 zope.security.interfaces.Unauthorized: ...
107101
108 >>> check_access("no-priv@canonical.com", product)102 >>> check_access("no-priv@canonical.com", product)
109 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
110 Traceback (most recent call last):103 Traceback (most recent call last):
111 ...104 ...
112 zope.security.interfaces.Unauthorized: ...105 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/bugs/doc/bug-reporting-guidelines.txt b/lib/lp/bugs/doc/bug-reporting-guidelines.txt
index 44cb6c4..a89f692 100644
--- a/lib/lp/bugs/doc/bug-reporting-guidelines.txt
+++ b/lib/lp/bugs/doc/bug-reporting-guidelines.txt
@@ -53,19 +53,16 @@ read-only property, and the security proxies also only allow read
53access.53access.
5454
55 >>> distro_series.bug_reporting_guidelines = 'Foobar'55 >>> distro_series.bug_reporting_guidelines = 'Foobar'
56 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
57 Traceback (most recent call last):56 Traceback (most recent call last):
58 ...57 ...
59 zope.security.interfaces.ForbiddenAttribute: ...58 zope.security.interfaces.ForbiddenAttribute: ...
6059
61 >>> source_package.bug_reporting_guidelines = 'Foobar'60 >>> source_package.bug_reporting_guidelines = 'Foobar'
62 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
63 Traceback (most recent call last):61 Traceback (most recent call last):
64 ...62 ...
65 zope.security.interfaces.ForbiddenAttribute: ...63 zope.security.interfaces.ForbiddenAttribute: ...
6664
67 >>> product_series.bug_reporting_guidelines = 'Foobar'65 >>> product_series.bug_reporting_guidelines = 'Foobar'
68 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
69 Traceback (most recent call last):66 Traceback (most recent call last):
70 ...67 ...
71 zope.security.interfaces.ForbiddenAttribute: ...68 zope.security.interfaces.ForbiddenAttribute: ...
@@ -87,25 +84,21 @@ guidelines.
87 ... print(context.bug_reporting_guidelines)84 ... print(context.bug_reporting_guidelines)
8885
89 >>> check_access("no-priv@canonical.com", distribution)86 >>> check_access("no-priv@canonical.com", distribution)
90 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
91 Traceback (most recent call last):87 Traceback (most recent call last):
92 ...88 ...
93 zope.security.interfaces.Unauthorized: ...89 zope.security.interfaces.Unauthorized: ...
9490
95 >>> check_access("no-priv@canonical.com", distribution_source_package)91 >>> check_access("no-priv@canonical.com", distribution_source_package)
96 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
97 Traceback (most recent call last):92 Traceback (most recent call last):
98 ...93 ...
99 zope.security.interfaces.Unauthorized: ...94 zope.security.interfaces.Unauthorized: ...
10095
101 >>> check_access("no-priv@canonical.com", project)96 >>> check_access("no-priv@canonical.com", project)
102 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
103 Traceback (most recent call last):97 Traceback (most recent call last):
104 ...98 ...
105 zope.security.interfaces.Unauthorized: ...99 zope.security.interfaces.Unauthorized: ...
106100
107 >>> check_access("no-priv@canonical.com", product)101 >>> check_access("no-priv@canonical.com", product)
108 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
109 Traceback (most recent call last):102 Traceback (most recent call last):
110 ...103 ...
111 zope.security.interfaces.Unauthorized: ...104 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/bugs/doc/bug-tags.txt b/lib/lp/bugs/doc/bug-tags.txt
index b6aee57..ab49131 100644
--- a/lib/lp/bugs/doc/bug-tags.txt
+++ b/lib/lp/bugs/doc/bug-tags.txt
@@ -138,7 +138,6 @@ wrong.
138 >>> request = LaunchpadTestRequest(form={'field.tags': u'!!!! foo $$$$'})138 >>> request = LaunchpadTestRequest(form={'field.tags': u'!!!! foo $$$$'})
139 >>> tags_widget = BugTagsWidget(bug_tags_field, tag_field, request)139 >>> tags_widget = BugTagsWidget(bug_tags_field, tag_field, request)
140 >>> tags_widget.getInputValue()140 >>> tags_widget.getInputValue()
141 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
142 Traceback (most recent call last):141 Traceback (most recent call last):
143 ...142 ...
144 zope.formlib.interfaces.WidgetInputError: ...143 zope.formlib.interfaces.WidgetInputError: ...
diff --git a/lib/lp/bugs/doc/bug.txt b/lib/lp/bugs/doc/bug.txt
index 41d48d0..7ca7d2b 100644
--- a/lib/lp/bugs/doc/bug.txt
+++ b/lib/lp/bugs/doc/bug.txt
@@ -29,13 +29,12 @@ Or you can use IBugSet.getByNameOrID to get it by its nickname:
29If the bug can't be found, a zope.exceptions.NotFoundError will be29If the bug can't be found, a zope.exceptions.NotFoundError will be
30raised:30raised:
3131
32 >>> bugset.get(123456) # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON232 >>> bugset.get(123456)
33 Traceback (most recent call last):33 Traceback (most recent call last):
34 ...34 ...
35 lp.app.errors.NotFoundError: 'Unable to locate bug with ID 123456.'35 lp.app.errors.NotFoundError: 'Unable to locate bug with ID 123456.'
3636
37 >>> bugset.getByNameOrID('+bugs')37 >>> bugset.getByNameOrID('+bugs')
38 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
39 Traceback (most recent call last):38 Traceback (most recent call last):
40 ...39 ...
41 lp.app.errors.NotFoundError: ...'Unable to locate bug with nickname +bugs.'40 lp.app.errors.NotFoundError: ...'Unable to locate bug with nickname +bugs.'
@@ -176,13 +175,11 @@ private. A bug cannot be made private by an anonymous user.
176 ... return getUtility(ILaunchBag).user175 ... return getUtility(ILaunchBag).user
177176
178 >>> firefox_crashes.private = True177 >>> firefox_crashes.private = True
179 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
180 Traceback (most recent call last):178 Traceback (most recent call last):
181 ...179 ...
182 zope.security.interfaces.ForbiddenAttribute: ('private', ...)180 zope.security.interfaces.ForbiddenAttribute: ('private', ...)
183181
184 >>> firefox_crashes.setPrivate(True, current_user())182 >>> firefox_crashes.setPrivate(True, current_user())
185 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
186 Traceback (most recent call last):183 Traceback (most recent call last):
187 ...184 ...
188 zope.security.interfaces.Unauthorized: (..., 'setPrivate', 'launchpad.Append')185 zope.security.interfaces.Unauthorized: (..., 'setPrivate', 'launchpad.Append')
@@ -208,7 +205,6 @@ Even though we are logged in and subscribed to the bug, we are
208prevented from using the private attribute to mark bug #6 private:205prevented from using the private attribute to mark bug #6 private:
209206
210 >>> firefox_crashes.private = True207 >>> firefox_crashes.private = True
211 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
212 Traceback (most recent call last):208 Traceback (most recent call last):
213 ...209 ...
214 zope.security.interfaces.ForbiddenAttribute: ('private', ...)210 zope.security.interfaces.ForbiddenAttribute: ('private', ...)
@@ -337,7 +333,6 @@ Trying to access a property of this bug will again raise an
337Unauthorized:333Unauthorized:
338334
339 >>> reflow_problems_bug.title335 >>> reflow_problems_bug.title
340 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
341 Traceback (most recent call last):336 Traceback (most recent call last):
342 ...337 ...
343 zope.security.interfaces.Unauthorized: (..., 'title', 'launchpad.View')338 zope.security.interfaces.Unauthorized: (..., 'title', 'launchpad.View')
diff --git a/lib/lp/bugs/doc/bugattachments.txt b/lib/lp/bugs/doc/bugattachments.txt
index 3e58d5f..5a96419 100644
--- a/lib/lp/bugs/doc/bugattachments.txt
+++ b/lib/lp/bugs/doc/bugattachments.txt
@@ -313,7 +313,6 @@ anonymous can read the attachment's attributes, but they can't set them:
313 >>> print(attachment.title)313 >>> print(attachment.title)
314 this fixes the bug314 this fixes the bug
315 >>> attachment.title = 'Better Title'315 >>> attachment.title = 'Better Title'
316 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
317 Traceback (most recent call last):316 Traceback (most recent call last):
318 ...317 ...
319 zope.security.interfaces.Unauthorized: (..., 'title',...318 zope.security.interfaces.Unauthorized: (..., 'title',...
@@ -347,12 +346,10 @@ attachments attributes:
347 >>> login("no-priv@canonical.com")346 >>> login("no-priv@canonical.com")
348347
349 >>> attachment.title348 >>> attachment.title
350 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
351 Traceback (most recent call last):349 Traceback (most recent call last):
352 ...350 ...
353 zope.security.interfaces.Unauthorized: (..., 'title',...351 zope.security.interfaces.Unauthorized: (..., 'title',...
354 >>> attachment.title = 'Better Title'352 >>> attachment.title = 'Better Title'
355 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
356 Traceback (most recent call last):353 Traceback (most recent call last):
357 ...354 ...
358 zope.security.interfaces.Unauthorized: (..., 'title',...355 zope.security.interfaces.Unauthorized: (..., 'title',...
@@ -360,12 +357,11 @@ attachments attributes:
360Of course, anonymous is also not allowed to access or set them:357Of course, anonymous is also not allowed to access or set them:
361358
362 >>> login(ANONYMOUS)359 >>> login(ANONYMOUS)
363 >>> attachment.title # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2360 >>> attachment.title
364 Traceback (most recent call last):361 Traceback (most recent call last):
365 ...362 ...
366 zope.security.interfaces.Unauthorized: (..., 'title',...363 zope.security.interfaces.Unauthorized: (..., 'title',...
367 >>> attachment.title = 'Some info.'364 >>> attachment.title = 'Some info.'
368 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
369 Traceback (most recent call last):365 Traceback (most recent call last):
370 ...366 ...
371 zope.security.interfaces.Unauthorized: (..., 'title',...367 zope.security.interfaces.Unauthorized: (..., 'title',...
@@ -666,7 +662,6 @@ A NotFoundError is raised if the file name passed to getFileByName()
666does not match the file name of the Librarian file.662does not match the file name of the Librarian file.
667663
668 >>> attachment.getFileByName('nonsense')664 >>> attachment.getFileByName('nonsense')
669 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
670 Traceback (most recent call last):665 Traceback (most recent call last):
671 ...666 ...
672 lp.app.errors.NotFoundError: ...'nonsense'667 lp.app.errors.NotFoundError: ...'nonsense'
diff --git a/lib/lp/bugs/doc/bugmessage-visibility.txt b/lib/lp/bugs/doc/bugmessage-visibility.txt
index 43c683e..44f65e0 100644
--- a/lib/lp/bugs/doc/bugmessage-visibility.txt
+++ b/lib/lp/bugs/doc/bugmessage-visibility.txt
@@ -43,7 +43,6 @@ field.
43 >>> abugmessage.message.visible43 >>> abugmessage.message.visible
44 False44 False
45 >>> abugmessage.message.visible = True45 >>> abugmessage.message.visible = True
46 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
47 Traceback (most recent call last):46 Traceback (most recent call last):
48 ...47 ...
49 zope.security.interfaces.Unauthorized: (<Message at ...>, 'visible', 'launchpad.Admin')48 zope.security.interfaces.Unauthorized: (<Message at ...>, 'visible', 'launchpad.Admin')
diff --git a/lib/lp/bugs/doc/bugsubscription.txt b/lib/lp/bugs/doc/bugsubscription.txt
index bf6b69b..4b175ab 100644
--- a/lib/lp/bugs/doc/bugsubscription.txt
+++ b/lib/lp/bugs/doc/bugsubscription.txt
@@ -560,7 +560,6 @@ that the unsubscribing user has the appropriate permissions. unsubscribe
560will raise an exception if the user does not have permission.560will raise an exception if the user does not have permission.
561561
562 >>> bug.unsubscribe(team, non_member)562 >>> bug.unsubscribe(team, non_member)
563 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
564 Traceback (most recent call last):563 Traceback (most recent call last):
565 ...564 ...
566 lp.app.errors.UserCannotUnsubscribePerson: ...565 lp.app.errors.UserCannotUnsubscribePerson: ...
diff --git a/lib/lp/bugs/doc/bugtask-assignee-widget.txt b/lib/lp/bugs/doc/bugtask-assignee-widget.txt
index 5bc18d6..cb4a0d2 100644
--- a/lib/lp/bugs/doc/bugtask-assignee-widget.txt
+++ b/lib/lp/bugs/doc/bugtask-assignee-widget.txt
@@ -129,7 +129,7 @@ The chooser widget got its name updated as well.
129If this option is selected, but no value is entered in129If this option is selected, but no value is entered in
130"field.assignee", validation will fail:130"field.assignee", validation will fail:
131131
132 >>> widget.validate() # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2132 >>> widget.validate()
133 Traceback (most recent call last):133 Traceback (most recent call last):
134 ...134 ...
135 zope.formlib.interfaces.WidgetInputError: ...135 zope.formlib.interfaces.WidgetInputError: ...
@@ -138,7 +138,7 @@ Likewise, if a non-existent field.assignee is provided, the validation
138will fail:138will fail:
139139
140 >>> request.form['foo.assignee'] = 'name'140 >>> request.form['foo.assignee'] = 'name'
141 >>> widget.validate() # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2141 >>> widget.validate()
142 Traceback (most recent call last):142 Traceback (most recent call last):
143 ...143 ...
144 zope.formlib.interfaces.WidgetInputError: ...144 zope.formlib.interfaces.WidgetInputError: ...
diff --git a/lib/lp/bugs/doc/bugtask-bugwatch-widget.txt b/lib/lp/bugs/doc/bugtask-bugwatch-widget.txt
index 2fd1524..d247fd1 100644
--- a/lib/lp/bugs/doc/bugtask-bugwatch-widget.txt
+++ b/lib/lp/bugs/doc/bugtask-bugwatch-widget.txt
@@ -159,7 +159,6 @@ a WidgetInputError is being raised.
159 ... bugwatch_field, bugwatch_field.vocabulary, request)159 ... bugwatch_field, bugwatch_field.vocabulary, request)
160160
161 >>> bugwatch = bugwatch_widget.getInputValue()161 >>> bugwatch = bugwatch_widget.getInputValue()
162 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
163 Traceback (most recent call last):162 Traceback (most recent call last):
164 ...163 ...
165 zope.formlib.interfaces.WidgetInputError: ...164 zope.formlib.interfaces.WidgetInputError: ...
diff --git a/lib/lp/bugs/doc/bugtask-package-widget.txt b/lib/lp/bugs/doc/bugtask-package-widget.txt
index 81722bb..266e62c 100644
--- a/lib/lp/bugs/doc/bugtask-package-widget.txt
+++ b/lib/lp/bugs/doc/bugtask-package-widget.txt
@@ -71,7 +71,6 @@ NotFoundError.
7171
72 >>> gentoo = getUtility(IDistributionSet)['gentoo']72 >>> gentoo = getUtility(IDistributionSet)['gentoo']
73 >>> gentoo.guessPublishedSourcePackageName('evolution')73 >>> gentoo.guessPublishedSourcePackageName('evolution')
74 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
75 Traceback (most recent call last):74 Traceback (most recent call last):
76 ...75 ...
77 lp.app.errors.NotFoundError: ...76 lp.app.errors.NotFoundError: ...
@@ -100,7 +99,7 @@ ConversionError saying that the package name doesn't exist.
100 ... form={'field.sourcepackagename': 'no-package'})99 ... form={'field.sourcepackagename': 'no-package'})
101 >>> widget = BugTaskSourcePackageNameWidget(100 >>> widget = BugTaskSourcePackageNameWidget(
102 ... package_field, package_field.vocabulary, request)101 ... package_field, package_field.vocabulary, request)
103 >>> widget.getInputValue() # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2102 >>> widget.getInputValue()
104 Traceback (most recent call last):103 Traceback (most recent call last):
105 ...104 ...
106 zope.formlib.interfaces.ConversionError: ...105 zope.formlib.interfaces.ConversionError: ...
@@ -133,7 +132,6 @@ name isn't the name of a distro, UnexpectedFormData is raised.
133 >>> BugTaskAlsoAffectsSourcePackageNameWidget(132 >>> BugTaskAlsoAffectsSourcePackageNameWidget(
134 ... package_field, package_field.vocabulary,133 ... package_field, package_field.vocabulary,
135 ... request).getDistribution().name134 ... request).getDistribution().name
136 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
137 Traceback (most recent call last):135 Traceback (most recent call last):
138 ...136 ...
139 lp.app.errors.UnexpectedFormData: ...137 lp.app.errors.UnexpectedFormData: ...
@@ -200,7 +198,6 @@ contain, so IDistribution.guessPublishedSourcePackageName will raise a
200NotFoundError.198NotFoundError.
201199
202 >>> gentoo_task.distribution.guessPublishedSourcePackageName('evolution')200 >>> gentoo_task.distribution.guessPublishedSourcePackageName('evolution')
203 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
204 Traceback (most recent call last):201 Traceback (most recent call last):
205 ...202 ...
206 lp.app.errors.NotFoundError: ...203 lp.app.errors.NotFoundError: ...
@@ -227,7 +224,7 @@ ConversionError saying that the package name doesn't exist.
227 ... form={'field.packagename': 'no-package'})224 ... form={'field.packagename': 'no-package'})
228 >>> widget = FileBugSourcePackageNameWidget(225 >>> widget = FileBugSourcePackageNameWidget(
229 ... package_field, package_field.vocabulary, request)226 ... package_field, package_field.vocabulary, request)
230 >>> widget.getInputValue() # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2227 >>> widget.getInputValue()
231 Traceback (most recent call last):228 Traceback (most recent call last):
232 ...229 ...
233 zope.formlib.interfaces.ConversionError: ...230 zope.formlib.interfaces.ConversionError: ...
diff --git a/lib/lp/bugs/doc/bugtask-retrieval.txt b/lib/lp/bugs/doc/bugtask-retrieval.txt
index 52cc894..287b8cc 100644
--- a/lib/lp/bugs/doc/bugtask-retrieval.txt
+++ b/lib/lp/bugs/doc/bugtask-retrieval.txt
@@ -35,7 +35,6 @@ When given a bug task ID that doesn't exist in the database, the method
35raises a NotFoundError:35raises a NotFoundError:
3636
37 >>> no_such_task = task_set.get(0)37 >>> no_such_task = task_set.get(0)
38 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
39 Traceback (most recent call last):38 Traceback (most recent call last):
40 ...39 ...
41 lp.app.errors.NotFoundError: ...40 lp.app.errors.NotFoundError: ...
@@ -82,7 +81,7 @@ those bug task IDs that are present in the database:
82 >>> task_set.getMultiple([1, 2])81 >>> task_set.getMultiple([1, 2])
83 {2: <BugTask ...>}82 {2: <BugTask ...>}
8483
85 >>> task_set.get(1) # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON284 >>> task_set.get(1)
86 Traceback (most recent call last):85 Traceback (most recent call last):
87 ...86 ...
88 lp.app.errors.NotFoundError: ...87 lp.app.errors.NotFoundError: ...
diff --git a/lib/lp/bugs/doc/bugtask-search.txt b/lib/lp/bugs/doc/bugtask-search.txt
index f00d145..fcbd161 100644
--- a/lib/lp/bugs/doc/bugtask-search.txt
+++ b/lib/lp/bugs/doc/bugtask-search.txt
@@ -107,7 +107,6 @@ Passing invalid tsquery expressions as fast_searchtext raises an exception.
107 >>> bad_search = BugTaskSearchParams(107 >>> bad_search = BugTaskSearchParams(
108 ... user=None, fast_searchtext=u'happens pretty often')108 ... user=None, fast_searchtext=u'happens pretty often')
109 >>> list(firefox.searchTasks(bad_search))109 >>> list(firefox.searchTasks(bad_search))
110 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
111 Traceback (most recent call last):110 Traceback (most recent call last):
112 ...111 ...
113 storm.database.ProgrammingError: syntax error in tsquery: "happens pretty often" ...112 storm.database.ProgrammingError: syntax error in tsquery: "happens pretty often" ...
diff --git a/lib/lp/bugs/doc/bugtask-status-changes.txt b/lib/lp/bugs/doc/bugtask-status-changes.txt
index f7b63f8..c0b3949 100644
--- a/lib/lp/bugs/doc/bugtask-status-changes.txt
+++ b/lib/lp/bugs/doc/bugtask-status-changes.txt
@@ -32,7 +32,6 @@ other status.
3232
33 >>> ignored = login_person(user)33 >>> ignored = login_person(user)
34 >>> bugtask.transitionToStatus(BugTaskStatus.CONFIRMED, user)34 >>> bugtask.transitionToStatus(BugTaskStatus.CONFIRMED, user)
35 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
36 Traceback (most recent call last):35 Traceback (most recent call last):
37 ...36 ...
38 lp.bugs.interfaces.bugtask.UserCannotEditBugTaskStatus: ...37 lp.bugs.interfaces.bugtask.UserCannotEditBugTaskStatus: ...
diff --git a/lib/lp/bugs/doc/bugtask-status-workflow.txt b/lib/lp/bugs/doc/bugtask-status-workflow.txt
index 2ffd3be..3ee347f 100644
--- a/lib/lp/bugs/doc/bugtask-status-workflow.txt
+++ b/lib/lp/bugs/doc/bugtask-status-workflow.txt
@@ -56,7 +56,6 @@ directly.
56 >>> from lp.bugs.interfaces.bugtask import BugTaskStatus56 >>> from lp.bugs.interfaces.bugtask import BugTaskStatus
5757
58 >>> ubuntu_firefox_task.status = BugTaskStatus.CONFIRMED58 >>> ubuntu_firefox_task.status = BugTaskStatus.CONFIRMED
59 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
60 Traceback (most recent call last):59 Traceback (most recent call last):
61 ...60 ...
62 zope.security.interfaces.ForbiddenAttribute: ...61 zope.security.interfaces.ForbiddenAttribute: ...
@@ -282,7 +281,6 @@ setting an assignee has "side effects".
282 >>> sample_person = getUtility(IPersonSet).get(12)281 >>> sample_person = getUtility(IPersonSet).get(12)
283282
284 >>> ubuntu_firefox_task.assignee = foobar283 >>> ubuntu_firefox_task.assignee = foobar
285 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
286 Traceback (most recent call last):284 Traceback (most recent call last):
287 ...285 ...
288 zope.security.interfaces.ForbiddenAttribute: ...286 zope.security.interfaces.ForbiddenAttribute: ...
diff --git a/lib/lp/bugs/doc/bugtracker-person.txt b/lib/lp/bugs/doc/bugtracker-person.txt
index a36932c..d5599f0 100644
--- a/lib/lp/bugs/doc/bugtracker-person.txt
+++ b/lib/lp/bugs/doc/bugtracker-person.txt
@@ -42,7 +42,6 @@ new person to a bugtracker using an existing name will cause an error.
42 >>> foo_bar = getUtility(IPersonSet).getByName('name16')42 >>> foo_bar = getUtility(IPersonSet).getByName('name16')
43 >>> bugtracker_person = bugtracker.linkPersonToSelf(43 >>> bugtracker_person = bugtracker.linkPersonToSelf(
44 ... 'some-name-i-made-up', foo_bar)44 ... 'some-name-i-made-up', foo_bar)
45 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
46 Traceback (most recent call last):45 Traceback (most recent call last):
47 ...46 ...
48 lp.bugs.interfaces.bugtrackerperson.BugTrackerPersonAlreadyExists: Name 'some-name-i-made-up' is already in use for bugtracker 'bugzilla-checkwatches'.47 lp.bugs.interfaces.bugtrackerperson.BugTrackerPersonAlreadyExists: Name 'some-name-i-made-up' is already in use for bugtracker 'bugzilla-checkwatches'.
diff --git a/lib/lp/bugs/doc/bugwatch.txt b/lib/lp/bugs/doc/bugwatch.txt
index f69fdc8..415be41 100644
--- a/lib/lp/bugs/doc/bugwatch.txt
+++ b/lib/lp/bugs/doc/bugwatch.txt
@@ -22,7 +22,6 @@ Bug watches are accessed via a utility that provides IBugWatchSet.
22 >>> from zope.component import getUtility22 >>> from zope.component import getUtility
23 >>> from lp.bugs.interfaces.bugwatch import IBugWatchSet23 >>> from lp.bugs.interfaces.bugwatch import IBugWatchSet
24 >>> getUtility(IBugWatchSet).get(98765)24 >>> getUtility(IBugWatchSet).get(98765)
25 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
26 Traceback (most recent call last):25 Traceback (most recent call last):
27 ...26 ...
28 lp.app.errors.NotFoundError: 9876527 lp.app.errors.NotFoundError: 98765
@@ -627,7 +626,6 @@ Calling setNextCheck() on this watch will cause an Exception,
627BugWatchCannotBeRescheduled, to be raised.626BugWatchCannotBeRescheduled, to be raised.
628627
629 >>> schedulable_watch.setNextCheck(datetime.now(utc))628 >>> schedulable_watch.setNextCheck(datetime.now(utc))
630 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
631 Traceback (most recent call last):629 Traceback (most recent call last):
632 ...630 ...
633 lp.bugs.interfaces.bugwatch.BugWatchCannotBeRescheduled631 lp.bugs.interfaces.bugwatch.BugWatchCannotBeRescheduled
diff --git a/lib/lp/bugs/doc/bugwidget.txt b/lib/lp/bugs/doc/bugwidget.txt
index f20d44a..c3f0012 100644
--- a/lib/lp/bugs/doc/bugwidget.txt
+++ b/lib/lp/bugs/doc/bugwidget.txt
@@ -22,7 +22,6 @@ If non-existant bug number is entered, an error is raised.
22 >>> request = LaunchpadTestRequest(form={'field.bug': '1234567'})22 >>> request = LaunchpadTestRequest(form={'field.bug': '1234567'})
23 >>> bug_widget = BugWidget(bug_field, request)23 >>> bug_widget = BugWidget(bug_field, request)
24 >>> bug_widget.getInputValue()24 >>> bug_widget.getInputValue()
25 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
26 Traceback (most recent call last):25 Traceback (most recent call last):
27 ...26 ...
28 zope.formlib.interfaces.ConversionError: ('Not a valid bug number or nickname.', None)27 zope.formlib.interfaces.ConversionError: ('Not a valid bug number or nickname.', None)
diff --git a/lib/lp/bugs/doc/cve-update.txt b/lib/lp/bugs/doc/cve-update.txt
index 417728a..ad7d8fd 100644
--- a/lib/lp/bugs/doc/cve-update.txt
+++ b/lib/lp/bugs/doc/cve-update.txt
@@ -168,7 +168,6 @@ schema is changed.
168168
169 >>> cve_updater = CVEUpdater('cve-updater', test_args=[])169 >>> cve_updater = CVEUpdater('cve-updater', test_args=[])
170 >>> cve_updater.processCVEXML('<some-xml />')170 >>> cve_updater.processCVEXML('<some-xml />')
171 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
172 Traceback (most recent call last):171 Traceback (most recent call last):
173 ...172 ...
174 lp.services.scripts.base.LaunchpadScriptFailure: No CVEs found in XML file.173 lp.services.scripts.base.LaunchpadScriptFailure: No CVEs found in XML file.
diff --git a/lib/lp/bugs/doc/cve.txt b/lib/lp/bugs/doc/cve.txt
index 3322f40..98e3480 100644
--- a/lib/lp/bugs/doc/cve.txt
+++ b/lib/lp/bugs/doc/cve.txt
@@ -111,7 +111,6 @@ linkCVE are bypassed.
111 >>> private_bug = factory.makeBug(111 >>> private_bug = factory.makeBug(
112 ... information_type=InformationType.USERDATA)112 ... information_type=InformationType.USERDATA)
113 >>> private_bug.linkCVE(cve, user=no_priv)113 >>> private_bug.linkCVE(cve, user=no_priv)
114 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
115 Traceback (most recent call last):114 Traceback (most recent call last):
116 ...115 ...
117 zope.security.interfaces.Unauthorized: ...116 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/bugs/doc/externalbugtracker-bugzilla-api.txt b/lib/lp/bugs/doc/externalbugtracker-bugzilla-api.txt
index e6120cd..c7fb1fa 100644
--- a/lib/lp/bugs/doc/externalbugtracker-bugzilla-api.txt
+++ b/lib/lp/bugs/doc/externalbugtracker-bugzilla-api.txt
@@ -65,7 +65,6 @@ will raise an error:
65 ... xmlrpc_transport=transport)65 ... xmlrpc_transport=transport)
6666
67 >>> non_auth_bugzilla._authenticate()67 >>> non_auth_bugzilla._authenticate()
68 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
69 Traceback (most recent call last):68 Traceback (most recent call last):
70 ...69 ...
71 lp.bugs.externalbugtracker.base.BugTrackerAuthenticationError: http://thiswillfail.example.com: No credentials found.70 lp.bugs.externalbugtracker.base.BugTrackerAuthenticationError: http://thiswillfail.example.com: No credentials found.
@@ -82,7 +81,6 @@ raise an error.
82 ... xmlrpc_transport=transport)81 ... xmlrpc_transport=transport)
8382
84 >>> non_auth_bugzilla._authenticate()83 >>> non_auth_bugzilla._authenticate()
85 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
86 Traceback (most recent call last):84 Traceback (most recent call last):
87 ...85 ...
88 lp.bugs.externalbugtracker.base.BugTrackerAuthenticationError: http://thiswillfail.example.com: Fault 300: The username or password you entered is not valid.86 lp.bugs.externalbugtracker.base.BugTrackerAuthenticationError: http://thiswillfail.example.com: Fault 300: The username or password you entered is not valid.
@@ -305,7 +303,6 @@ severity as a string.
305If a bug can't be found a BugNotFound error will be raised.303If a bug can't be found a BugNotFound error will be raised.
306304
307 >>> bugzilla.getRemoteStatus('no-such-bug')305 >>> bugzilla.getRemoteStatus('no-such-bug')
308 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
309 Traceback (most recent call last):306 Traceback (most recent call last):
310 ...307 ...
311 lp.bugs.externalbugtracker.base.BugNotFound: no-such-bug308 lp.bugs.externalbugtracker.base.BugNotFound: no-such-bug
@@ -316,7 +313,6 @@ error will be raised. We can add a sample bug to demonstrate this.
316313
317 >>> bugzilla._bugs[999] = {}314 >>> bugzilla._bugs[999] = {}
318 >>> bugzilla.getRemoteStatus(999)315 >>> bugzilla.getRemoteStatus(999)
319 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
320 Traceback (most recent call last):316 Traceback (most recent call last):
321 ...317 ...
322 lp.bugs.externalbugtracker.base.UnparsableBugData: No status or resolution defined for bug 999318 lp.bugs.externalbugtracker.base.UnparsableBugData: No status or resolution defined for bug 999
@@ -406,7 +402,6 @@ If the product is requested for a bug that can't be found, BugNotFound
406is raised.402is raised.
407403
408 >>> bugzilla.getRemoteProduct(12345)404 >>> bugzilla.getRemoteProduct(12345)
409 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
410 Traceback (most recent call last):405 Traceback (most recent call last):
411 ...406 ...
412 lp.bugs.externalbugtracker.base.BugNotFound: 12345407 lp.bugs.externalbugtracker.base.BugNotFound: 12345
@@ -469,7 +464,6 @@ getCommentIds() can only be called if initializeRemoteBugDB() has been
469called and the bug exists locally.464called and the bug exists locally.
470465
471 >>> bugzilla.getCommentIds(bug_watch_broken.remotebug)466 >>> bugzilla.getCommentIds(bug_watch_broken.remotebug)
472 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
473 Traceback (most recent call last):467 Traceback (most recent call last):
474 ...468 ...
475 lp.bugs.externalbugtracker.base.BugNotFound: 42469 lp.bugs.externalbugtracker.base.BugNotFound: 42
@@ -619,7 +613,6 @@ then that instance does not provide ISupportsCommentPushing.
619613
620 >>> verifyObject(ISupportsCommentPushing, BugzillaAPI(614 >>> verifyObject(ISupportsCommentPushing, BugzillaAPI(
621 ... 'http://unknown.example.com/', xmlrpc_transport=test_transport))615 ... 'http://unknown.example.com/', xmlrpc_transport=test_transport))
622 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
623 Traceback (most recent call last):616 Traceback (most recent call last):
624 ...617 ...
625 zope.interface.exceptions.DoesNotImplement: ...618 zope.interface.exceptions.DoesNotImplement: ...
@@ -681,7 +674,6 @@ then that instance does not provide ISupportsBackLinking.
681674
682 >>> verifyObject(ISupportsBackLinking, BugzillaAPI(675 >>> verifyObject(ISupportsBackLinking, BugzillaAPI(
683 ... 'http://unknown.example.com/', xmlrpc_transport=test_transport))676 ... 'http://unknown.example.com/', xmlrpc_transport=test_transport))
684 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
685 Traceback (most recent call last):677 Traceback (most recent call last):
686 ...678 ...
687 zope.interface.exceptions.DoesNotImplement: ...679 zope.interface.exceptions.DoesNotImplement: ...
diff --git a/lib/lp/bugs/doc/externalbugtracker-bugzilla-lp-plugin.txt b/lib/lp/bugs/doc/externalbugtracker-bugzilla-lp-plugin.txt
index b13e159..d2dbd78 100644
--- a/lib/lp/bugs/doc/externalbugtracker-bugzilla-lp-plugin.txt
+++ b/lib/lp/bugs/doc/externalbugtracker-bugzilla-lp-plugin.txt
@@ -108,7 +108,6 @@ login_required() raises a fault.
108108
109 >>> test_transport.expireCookie(test_transport.auth_cookie)109 >>> test_transport.expireCookie(test_transport.auth_cookie)
110 >>> test_bugzilla.xmlrpc_proxy.Test.login_required()110 >>> test_bugzilla.xmlrpc_proxy.Test.login_required()
111 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
112 Traceback (most recent call last):111 Traceback (most recent call last):
113 ...112 ...
114 xmlrpc.client.Fault: <Fault 410: 'Login Required'>113 xmlrpc.client.Fault: <Fault 410: 'Login Required'>
@@ -148,7 +147,6 @@ If authentication fails, a BugTrackerAuthenticationError will be raised.
148 ... )147 ... )
149148
150 >>> test_bugzilla._authenticate()149 >>> test_bugzilla._authenticate()
151 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
152 Traceback (most recent call last):150 Traceback (most recent call last):
153 ...151 ...
154 lp.bugs.externalbugtracker.base.BugTrackerAuthenticationError: http://example.com: XML-RPC Fault: 100 "Sorry, you can't log in."152 lp.bugs.externalbugtracker.base.BugTrackerAuthenticationError: http://example.com: XML-RPC Fault: 100 "Sorry, you can't log in."
@@ -158,7 +156,6 @@ This is also true if an error occurs at the protocol level:
158 >>> fail_transport.error = ProtocolError(156 >>> fail_transport.error = ProtocolError(
159 ... 'http://example.com', 500, 'Internal server error', {})157 ... 'http://example.com', 500, 'Internal server error', {})
160 >>> test_bugzilla._authenticate()158 >>> test_bugzilla._authenticate()
161 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
162 Traceback (most recent call last):159 Traceback (most recent call last):
163 ...160 ...
164 lp.bugs.externalbugtracker.base.BugTrackerAuthenticationError: http://example.com: Protocol error: 500 "Internal server error"161 lp.bugs.externalbugtracker.base.BugTrackerAuthenticationError: http://example.com: Protocol error: 500 "Internal server error"
@@ -385,7 +382,6 @@ called and the bug exists locally.
385 >>> transaction.commit()382 >>> transaction.commit()
386383
387 >>> bugzilla.getCommentIds(remote_bug)384 >>> bugzilla.getCommentIds(remote_bug)
388 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
389 Traceback (most recent call last):385 Traceback (most recent call last):
390 ...386 ...
391 lp.bugs.externalbugtracker.base.BugNotFound: 42387 lp.bugs.externalbugtracker.base.BugNotFound: 42
diff --git a/lib/lp/bugs/doc/externalbugtracker-bugzilla-oddities.txt b/lib/lp/bugs/doc/externalbugtracker-bugzilla-oddities.txt
index b6d2f3a..52b1cc7 100644
--- a/lib/lp/bugs/doc/externalbugtracker-bugzilla-oddities.txt
+++ b/lib/lp/bugs/doc/externalbugtracker-bugzilla-oddities.txt
@@ -147,7 +147,6 @@ invalid XML:
147 >>> remote_bugs = ['42', '2000']147 >>> remote_bugs = ['42', '2000']
148 >>> with broken_bugzilla.responses():148 >>> with broken_bugzilla.responses():
149 ... broken_bugzilla.initializeRemoteBugDB(remote_bugs)149 ... broken_bugzilla.initializeRemoteBugDB(remote_bugs)
150 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
151 Traceback (most recent call last):150 Traceback (most recent call last):
152 ...151 ...
153 lp.bugs.externalbugtracker.base.UnparsableBugData: Failed to parse XML description...152 lp.bugs.externalbugtracker.base.UnparsableBugData: Failed to parse XML description...
diff --git a/lib/lp/bugs/doc/externalbugtracker-bugzilla.txt b/lib/lp/bugs/doc/externalbugtracker-bugzilla.txt
index b8a9226..94cc309 100644
--- a/lib/lp/bugs/doc/externalbugtracker-bugzilla.txt
+++ b/lib/lp/bugs/doc/externalbugtracker-bugzilla.txt
@@ -27,7 +27,6 @@ UnparsableBugTrackerVersion is raised:
27 >>> from lp.testing.layers import LaunchpadZopelessLayer27 >>> from lp.testing.layers import LaunchpadZopelessLayer
28 >>> txn = LaunchpadZopelessLayer.txn28 >>> txn = LaunchpadZopelessLayer.txn
29 >>> external_bugzilla = Bugzilla('http://example.com/', version='A.B')29 >>> external_bugzilla = Bugzilla('http://example.com/', version='A.B')
30 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
31 Traceback (most recent call last):30 Traceback (most recent call last):
32 ...31 ...
33 lp.bugs.externalbugtracker.base.UnparsableBugTrackerVersion: Failed to parse version 'A.B' for http://...32 lp.bugs.externalbugtracker.base.UnparsableBugTrackerVersion: Failed to parse version 'A.B' for http://...
@@ -345,12 +344,10 @@ If the status can't be converted an UnknownRemoteStatusError will be
345returned.344returned.
346345
347 >>> external_bugzilla.convertRemoteStatus('FOO').title346 >>> external_bugzilla.convertRemoteStatus('FOO').title
348 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
349 Traceback (most recent call last):347 Traceback (most recent call last):
350 ...348 ...
351 lp.bugs.externalbugtracker.base.UnknownRemoteStatusError: FOO349 lp.bugs.externalbugtracker.base.UnknownRemoteStatusError: FOO
352 >>> external_bugzilla.convertRemoteStatus('CLOSED BAR').title350 >>> external_bugzilla.convertRemoteStatus('CLOSED BAR').title
353 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
354 Traceback (most recent call last):351 Traceback (most recent call last):
355 ...352 ...
356 lp.bugs.externalbugtracker.base.UnknownRemoteStatusError: CLOSED BAR353 lp.bugs.externalbugtracker.base.UnknownRemoteStatusError: CLOSED BAR
@@ -464,12 +461,10 @@ However, we still treat as an error if the priority or severity are set
464to some other unexpected string.461to some other unexpected string.
465462
466 >>> external_bugzilla.convertRemoteImportance('foo bar')463 >>> external_bugzilla.convertRemoteImportance('foo bar')
467 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
468 Traceback (most recent call last):464 Traceback (most recent call last):
469 ...465 ...
470 lp.bugs.externalbugtracker.base.UnknownRemoteImportanceError: foo bar466 lp.bugs.externalbugtracker.base.UnknownRemoteImportanceError: foo bar
471 >>> external_bugzilla.convertRemoteImportance('%&*@*#&$%!')467 >>> external_bugzilla.convertRemoteImportance('%&*@*#&$%!')
472 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
473 Traceback (most recent call last):468 Traceback (most recent call last):
474 ...469 ...
475 lp.bugs.externalbugtracker.base.UnknownRemoteImportanceError: %&*@*#&$%!470 lp.bugs.externalbugtracker.base.UnknownRemoteImportanceError: %&*@*#&$%!
@@ -742,7 +737,6 @@ bug tracker, an error is logged.
742 ... requests_mock.add('POST', re.compile(r'.*'), body='<invalid xml>')737 ... requests_mock.add('POST', re.compile(r'.*'), body='<invalid xml>')
743 ... bug_watch_updater.updateBugWatches(738 ... bug_watch_updater.updateBugWatches(
744 ... external_bugzilla, [bug_watch1, bug_watch2])739 ... external_bugzilla, [bug_watch1, bug_watch2])
745 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
746 Traceback (most recent call last):740 Traceback (most recent call last):
747 ...741 ...
748 lp.bugs.externalbugtracker.base.UnparsableBugData: Failed to parse XML description for https://bugzilla.mozilla.org...742 lp.bugs.externalbugtracker.base.UnparsableBugData: Failed to parse XML description for https://bugzilla.mozilla.org...
@@ -801,7 +795,6 @@ Requesting the product for a bug that doesn't exist raises BugNotFound.
801 >>> with external_bugzilla.responses():795 >>> with external_bugzilla.responses():
802 ... external_bugzilla.initializeRemoteBugDB(['84'])796 ... external_bugzilla.initializeRemoteBugDB(['84'])
803 >>> external_bugzilla.getRemoteProduct('42')797 >>> external_bugzilla.getRemoteProduct('42')
804 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
805 Traceback (most recent call last):798 Traceback (most recent call last):
806 ...799 ...
807 lp.bugs.externalbugtracker.base.BugNotFound: 42800 lp.bugs.externalbugtracker.base.BugNotFound: 42
diff --git a/lib/lp/bugs/doc/externalbugtracker-debbugs.txt b/lib/lp/bugs/doc/externalbugtracker-debbugs.txt
index 3ed2b15..5dc2fe8 100644
--- a/lib/lp/bugs/doc/externalbugtracker-debbugs.txt
+++ b/lib/lp/bugs/doc/externalbugtracker-debbugs.txt
@@ -56,7 +56,6 @@ getRemoteStatus() method. If we pass a bug number that doesn't exist in
56the debbugs db, BugNotFound is raised.56the debbugs db, BugNotFound is raised.
5757
58 >>> external_debbugs.getRemoteStatus('42')58 >>> external_debbugs.getRemoteStatus('42')
59 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
60 Traceback (most recent call last):59 Traceback (most recent call last):
61 ...60 ...
62 lp.bugs.externalbugtracker.base.BugNotFound: 4261 lp.bugs.externalbugtracker.base.BugNotFound: 42
@@ -64,7 +63,6 @@ the debbugs db, BugNotFound is raised.
64If we pass a non-integer bug id, InvalidBugId is raised.63If we pass a non-integer bug id, InvalidBugId is raised.
6564
66 >>> external_debbugs.getRemoteStatus('foo')65 >>> external_debbugs.getRemoteStatus('foo')
67 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
68 Traceback (most recent call last):66 Traceback (most recent call last):
69 ...67 ...
70 lp.bugs.externalbugtracker.base.InvalidBugId: Debbugs bug number not an integer: foo68 lp.bugs.externalbugtracker.base.InvalidBugId: Debbugs bug number not an integer: foo
@@ -281,7 +279,6 @@ If we pass in a malformed status string an UnknownRemoteStatusError will
281be raised.279be raised.
282280
283 >>> print(external_debbugs.convertRemoteStatus('open'))281 >>> print(external_debbugs.convertRemoteStatus('open'))
284 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
285 Traceback (most recent call last):282 Traceback (most recent call last):
286 ...283 ...
287 lp.bugs.externalbugtracker.base.UnknownRemoteStatusError: open284 lp.bugs.externalbugtracker.base.UnknownRemoteStatusError: open
@@ -719,7 +716,6 @@ Trying to call getRemoteProduct() on a bug that doesn't exist will raise
719a BugNotFound error.716a BugNotFound error.
720717
721 >>> print(external_debbugs.getRemoteProduct('42'))718 >>> print(external_debbugs.getRemoteProduct('42'))
722 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
723 Traceback (most recent call last):719 Traceback (most recent call last):
724 ...720 ...
725 lp.bugs.externalbugtracker.base.BugNotFound: 42721 lp.bugs.externalbugtracker.base.BugNotFound: 42
diff --git a/lib/lp/bugs/doc/externalbugtracker-emailaddress.txt b/lib/lp/bugs/doc/externalbugtracker-emailaddress.txt
index 9e6adf8..b0b5c8c 100644
--- a/lib/lp/bugs/doc/externalbugtracker-emailaddress.txt
+++ b/lib/lp/bugs/doc/externalbugtracker-emailaddress.txt
@@ -25,7 +25,6 @@ create a new ExternalBugTracker for an email address will fail.
25 ... new_bugtracker)25 ... new_bugtracker)
26 >>> bug_tracker = get_external_bugtracker(26 >>> bug_tracker = get_external_bugtracker(
27 ... new_bugtracker(BugTrackerType.EMAILADDRESS))27 ... new_bugtracker(BugTrackerType.EMAILADDRESS))
28 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
29 Traceback (most recent call last):28 Traceback (most recent call last):
30 ...29 ...
31 lp.bugs.externalbugtracker.base.UnknownBugTrackerTypeError: EMAILADDRESS30 lp.bugs.externalbugtracker.base.UnknownBugTrackerTypeError: EMAILADDRESS
diff --git a/lib/lp/bugs/doc/externalbugtracker-mantis-csv.txt b/lib/lp/bugs/doc/externalbugtracker-mantis-csv.txt
index d9fb120..05bbcb5 100644
--- a/lib/lp/bugs/doc/externalbugtracker-mantis-csv.txt
+++ b/lib/lp/bugs/doc/externalbugtracker-mantis-csv.txt
@@ -38,7 +38,6 @@ in the form "status: resolution" as follows:
38If the status can't be converted an UnknownRemoteStatusError is raised.38If the status can't be converted an UnknownRemoteStatusError is raised.
3939
40 >>> alsa_mantis.convertRemoteStatus(('foo: bar')).title40 >>> alsa_mantis.convertRemoteStatus(('foo: bar')).title
41 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
42 Traceback (most recent call last):41 Traceback (most recent call last):
43 ...42 ...
44 lp.bugs.externalbugtracker.base.UnknownRemoteStatusError: foo: bar43 lp.bugs.externalbugtracker.base.UnknownRemoteStatusError: foo: bar
diff --git a/lib/lp/bugs/doc/externalbugtracker-mantis-logging-in.txt b/lib/lp/bugs/doc/externalbugtracker-mantis-logging-in.txt
index 259726c..8b87b9f 100644
--- a/lib/lp/bugs/doc/externalbugtracker-mantis-logging-in.txt
+++ b/lib/lp/bugs/doc/externalbugtracker-mantis-logging-in.txt
@@ -56,7 +56,6 @@ when Mantis redirects back to the login page with an error it forgets
56the "return" parameter.56the "return" parameter.
5757
58 >>> run_hook('http://mantis.example.com/login_page.php')58 >>> run_hook('http://mantis.example.com/login_page.php')
59 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
60 Traceback (most recent call last):59 Traceback (most recent call last):
61 ...60 ...
62 lp.bugs.externalbugtracker.base.BugTrackerConnectError: http://mantis.example.com/login_page.php: Mantis redirected us to the login page but did not set a return path.61 lp.bugs.externalbugtracker.base.BugTrackerConnectError: http://mantis.example.com/login_page.php: Mantis redirected us to the login page but did not set a return path.
diff --git a/lib/lp/bugs/doc/externalbugtracker-mantis.txt b/lib/lp/bugs/doc/externalbugtracker-mantis.txt
index bf2768b..0a15a0e 100644
--- a/lib/lp/bugs/doc/externalbugtracker-mantis.txt
+++ b/lib/lp/bugs/doc/externalbugtracker-mantis.txt
@@ -41,7 +41,6 @@ in the form "status: resolution" as follows:
41If the status can't be converted an UnknownRemoteStatusError is raised.41If the status can't be converted an UnknownRemoteStatusError is raised.
4242
43 >>> alsa_mantis.convertRemoteStatus(('foo: bar')).title43 >>> alsa_mantis.convertRemoteStatus(('foo: bar')).title
44 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
45 Traceback (most recent call last):44 Traceback (most recent call last):
46 ...45 ...
47 lp.bugs.externalbugtracker.base.UnknownRemoteStatusError: foo: bar46 lp.bugs.externalbugtracker.base.UnknownRemoteStatusError: foo: bar
diff --git a/lib/lp/bugs/doc/externalbugtracker-roundup-python-bugs.txt b/lib/lp/bugs/doc/externalbugtracker-roundup-python-bugs.txt
index 4c2916a..7225c7f 100644
--- a/lib/lp/bugs/doc/externalbugtracker-roundup-python-bugs.txt
+++ b/lib/lp/bugs/doc/externalbugtracker-roundup-python-bugs.txt
@@ -77,7 +77,6 @@ If the status isn't something that our Python_Bugs ExternalBugTracker can
77understand an UnknownRemoteStatusError will be raised.77understand an UnknownRemoteStatusError will be raised.
7878
79 >>> python_bugs.convertRemoteStatus('7:13').title79 >>> python_bugs.convertRemoteStatus('7:13').title
80 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
81 Traceback (most recent call last):80 Traceback (most recent call last):
82 ...81 ...
83 lp.bugs.externalbugtracker.base.UnknownRemoteStatusError: 7:1382 lp.bugs.externalbugtracker.base.UnknownRemoteStatusError: 7:13
diff --git a/lib/lp/bugs/doc/externalbugtracker-roundup.txt b/lib/lp/bugs/doc/externalbugtracker-roundup.txt
index 1d369a2..44c577b 100644
--- a/lib/lp/bugs/doc/externalbugtracker-roundup.txt
+++ b/lib/lp/bugs/doc/externalbugtracker-roundup.txt
@@ -58,7 +58,6 @@ support), and will generate an error when we have more or less field
58values compared to the expected number of fields.58values compared to the expected number of fields.
5959
60 >>> roundup.convertRemoteStatus('1:2')60 >>> roundup.convertRemoteStatus('1:2')
61 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
62 Traceback (most recent call last):61 Traceback (most recent call last):
63 ...62 ...
64 lp.bugs.externalbugtracker.base.UnknownRemoteStatusError: 1 field(s) expected, got 2: 1:263 lp.bugs.externalbugtracker.base.UnknownRemoteStatusError: 1 field(s) expected, got 2: 1:2
@@ -67,7 +66,6 @@ If the status isn't something that our Roundup ExternalBugTracker can
67understand an UnknownRemoteStatusError will be raised.66understand an UnknownRemoteStatusError will be raised.
6867
69 >>> roundup.convertRemoteStatus('eggs').title68 >>> roundup.convertRemoteStatus('eggs').title
70 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
71 Traceback (most recent call last):69 Traceback (most recent call last):
72 ...70 ...
73 lp.bugs.externalbugtracker.base.UnknownRemoteStatusError: Unrecognized value for field 1 (status): eggs71 lp.bugs.externalbugtracker.base.UnknownRemoteStatusError: Unrecognized value for field 1 (status): eggs
diff --git a/lib/lp/bugs/doc/externalbugtracker-rt.txt b/lib/lp/bugs/doc/externalbugtracker-rt.txt
index d25c1ed..7a1b9bd 100644
--- a/lib/lp/bugs/doc/externalbugtracker-rt.txt
+++ b/lib/lp/bugs/doc/externalbugtracker-rt.txt
@@ -70,7 +70,6 @@ Passing a status which the RequestTracker instance can't understand will
70result in an UnknownRemoteStatusError being raised.70result in an UnknownRemoteStatusError being raised.
7171
72 >>> rt.convertRemoteStatus('spam').title72 >>> rt.convertRemoteStatus('spam').title
73 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
74 Traceback (most recent call last):73 Traceback (most recent call last):
75 ...74 ...
76 lp.bugs.externalbugtracker.base.UnknownRemoteStatusError: spam75 lp.bugs.externalbugtracker.base.UnknownRemoteStatusError: spam
@@ -159,7 +158,6 @@ our test RT instance simulate such a situation.
159158
160 >>> with rt.responses(bad=True):159 >>> with rt.responses(bad=True):
161 ... rt.initializeRemoteBugDB([1585])160 ... rt.initializeRemoteBugDB([1585])
162 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
163 Traceback (most recent call last):161 Traceback (most recent call last):
164 ...162 ...
165 lp.bugs.externalbugtracker.base.BugTrackerConnectError: ...163 lp.bugs.externalbugtracker.base.BugTrackerConnectError: ...
@@ -168,7 +166,6 @@ This can also be demonstrated for importing bugs as a batch:
168166
169 >>> with rt.responses(bad=True):167 >>> with rt.responses(bad=True):
170 ... rt.initializeRemoteBugDB([1585, 1586, 1587, 1588, 1589])168 ... rt.initializeRemoteBugDB([1585, 1586, 1587, 1588, 1589])
171 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
172 Traceback (most recent call last):169 Traceback (most recent call last):
173 ...170 ...
174 lp.bugs.externalbugtracker.base.BugTrackerConnectError: ...171 lp.bugs.externalbugtracker.base.BugTrackerConnectError: ...
@@ -276,7 +273,6 @@ If you try to get the remote product of a bug that doesn't exist you'll
276get a BugNotFound error.273get a BugNotFound error.
277274
278 >>> print(rt.getRemoteProduct('this-doesnt-exist'))275 >>> print(rt.getRemoteProduct('this-doesnt-exist'))
279 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
280 Traceback (most recent call last):276 Traceback (most recent call last):
281 ...277 ...
282 lp.bugs.externalbugtracker.base.BugNotFound: this-doesnt-exist278 lp.bugs.externalbugtracker.base.BugNotFound: this-doesnt-exist
diff --git a/lib/lp/bugs/doc/externalbugtracker-sourceforge.txt b/lib/lp/bugs/doc/externalbugtracker-sourceforge.txt
index 707bbb4..ddaf8b0 100644
--- a/lib/lp/bugs/doc/externalbugtracker-sourceforge.txt
+++ b/lib/lp/bugs/doc/externalbugtracker-sourceforge.txt
@@ -70,7 +70,6 @@ If the status isn't something that our SourceForge ExternalBugTracker can
70understand an UnknownRemoteStatusError will be raised.70understand an UnknownRemoteStatusError will be raised.
7171
72 >>> sourceforge.convertRemoteStatus('eggs').title72 >>> sourceforge.convertRemoteStatus('eggs').title
73 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
74 Traceback (most recent call last):73 Traceback (most recent call last):
75 ...74 ...
76 lp.bugs.externalbugtracker.base.UnknownRemoteStatusError: eggs75 lp.bugs.externalbugtracker.base.UnknownRemoteStatusError: eggs
@@ -100,7 +99,6 @@ resolution, to demonstrate this:
10099
101 >>> with sourceforge.responses():100 >>> with sourceforge.responses():
102 ... sourceforge.initializeRemoteBugDB([0])101 ... sourceforge.initializeRemoteBugDB([0])
103 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
104 Traceback (most recent call last):102 Traceback (most recent call last):
105 ...103 ...
106 lp.bugs.externalbugtracker.base.UnparsableBugData: Remote bug 0 does not define a status.104 lp.bugs.externalbugtracker.base.UnparsableBugData: Remote bug 0 does not define a status.
@@ -134,7 +132,6 @@ Trying to access the remote status of a private bug, however, will raise
134a PrivateRemoteBug error.132a PrivateRemoteBug error.
135133
136 >>> sourceforge.getRemoteStatus(99)134 >>> sourceforge.getRemoteStatus(99)
137 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
138 Traceback (most recent call last):135 Traceback (most recent call last):
139 ...136 ...
140 lp.bugs.externalbugtracker.base.PrivateRemoteBug: Bug 99 on http://example.com is private.137 lp.bugs.externalbugtracker.base.PrivateRemoteBug: Bug 99 on http://example.com is private.
@@ -284,7 +281,6 @@ If you try to get the remote product of a bug that doesn't exist you'll
284get a BugNotFound error.281get a BugNotFound error.
285282
286 >>> print(sourceforge.getRemoteProduct(999999999))283 >>> print(sourceforge.getRemoteProduct(999999999))
287 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
288 Traceback (most recent call last):284 Traceback (most recent call last):
289 ...285 ...
290 lp.bugs.externalbugtracker.base.BugNotFound: 999999999286 lp.bugs.externalbugtracker.base.BugNotFound: 999999999
diff --git a/lib/lp/bugs/doc/externalbugtracker-trac-lp-plugin.txt b/lib/lp/bugs/doc/externalbugtracker-trac-lp-plugin.txt
index 4fdb9f7..e15b181 100644
--- a/lib/lp/bugs/doc/externalbugtracker-trac-lp-plugin.txt
+++ b/lib/lp/bugs/doc/externalbugtracker-trac-lp-plugin.txt
@@ -132,7 +132,6 @@ If authentication fails, a BugTrackerAuthenticationError will be raised.
132 ... requests_mock.add(132 ... requests_mock.add(
133 ... 'GET', re.compile(r'.*/launchpad-auth/.*'), status=401)133 ... 'GET', re.compile(r'.*/launchpad-auth/.*'), status=401)
134 ... trac._authenticate()134 ... trac._authenticate()
135 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
136 Traceback (most recent call last):135 Traceback (most recent call last):
137 ...136 ...
138 lp.bugs.externalbugtracker.base.BugTrackerAuthenticationError: http://example.com: 401 Client Error: Unauthorized137 lp.bugs.externalbugtracker.base.BugTrackerAuthenticationError: http://example.com: 401 Client Error: Unauthorized
@@ -303,7 +302,6 @@ since that bug wasn't in the list of bugs that were modified since our
303last_checked time.302last_checked time.
304303
305 >>> trac.getRemoteStatus('2')304 >>> trac.getRemoteStatus('2')
306 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
307 Traceback (most recent call last):305 Traceback (most recent call last):
308 ...306 ...
309 lp.bugs.externalbugtracker.base.BugNotFound: 2307 lp.bugs.externalbugtracker.base.BugNotFound: 2
@@ -398,7 +396,6 @@ Trying to call getCommentIds() on a bug that doesn't exist will raise a
398BugNotFound error.396BugNotFound error.
399397
400 >>> trac.getCommentIds(bug_watch_broken.remotebug)398 >>> trac.getCommentIds(bug_watch_broken.remotebug)
401 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
402 Traceback (most recent call last):399 Traceback (most recent call last):
403 ...400 ...
404 lp.bugs.externalbugtracker.base.BugNotFound: 123401 lp.bugs.externalbugtracker.base.BugNotFound: 123
@@ -606,14 +603,12 @@ If we try to call getLaunchpadBugId() or setLaunchpadBugId() for a
606remote bug that doesn't exist, a BugNotFound error will be raised.603remote bug that doesn't exist, a BugNotFound error will be raised.
607604
608 >>> trac.getLaunchpadBugId('12345')605 >>> trac.getLaunchpadBugId('12345')
609 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
610 Traceback (most recent call last):606 Traceback (most recent call last):
611 ...607 ...
612 lp.bugs.externalbugtracker.base.BugNotFound: 12345608 lp.bugs.externalbugtracker.base.BugNotFound: 12345
613609
614 >>> trac.setLaunchpadBugId(610 >>> trac.setLaunchpadBugId(
615 ... '12345', 1, 'http://bugs.launchpad.test/bugs/xxx')611 ... '12345', 1, 'http://bugs.launchpad.test/bugs/xxx')
616 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
617 Traceback (most recent call last):612 Traceback (most recent call last):
618 ...613 ...
619 lp.bugs.externalbugtracker.base.BugNotFound: 12345614 lp.bugs.externalbugtracker.base.BugNotFound: 12345
diff --git a/lib/lp/bugs/doc/externalbugtracker-trac.txt b/lib/lp/bugs/doc/externalbugtracker-trac.txt
index 53df563..b3daf94 100644
--- a/lib/lp/bugs/doc/externalbugtracker-trac.txt
+++ b/lib/lp/bugs/doc/externalbugtracker-trac.txt
@@ -138,7 +138,6 @@ If the status isn't one that our Trac ExternalBugTracker can understand
138an UnknownRemoteStatusError will be raised.138an UnknownRemoteStatusError will be raised.
139139
140 >>> trac.convertRemoteStatus('eggs').title140 >>> trac.convertRemoteStatus('eggs').title
141 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
142 Traceback (most recent call last):141 Traceback (most recent call last):
143 ...142 ...
144 lp.bugs.externalbugtracker.base.UnknownRemoteStatusError: eggs143 lp.bugs.externalbugtracker.base.UnknownRemoteStatusError: eggs
@@ -215,7 +214,6 @@ test.
215214
216 >>> with trac.responses(broken=True):215 >>> with trac.responses(broken=True):
217 ... trac.initializeRemoteBugDB([6, 7, 8, 9, 10])216 ... trac.initializeRemoteBugDB([6, 7, 8, 9, 10])
218 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
219 Traceback (most recent call last):217 Traceback (most recent call last):
220 ...218 ...
221 lp.bugs.externalbugtracker.base.UnparsableBugData: External bugtracker http://test.trac does not define all the necessary fields for bug status imports (Defined field names: ['<html>']).219 lp.bugs.externalbugtracker.base.UnparsableBugData: External bugtracker http://test.trac does not define all the necessary fields for bug status imports (Defined field names: ['<html>']).
@@ -224,7 +222,6 @@ This is also true of the single bug export mode.
224222
225 >>> with trac.responses(broken=True):223 >>> with trac.responses(broken=True):
226 ... trac.initializeRemoteBugDB([6])224 ... trac.initializeRemoteBugDB([6])
227 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
228 Traceback (most recent call last):225 Traceback (most recent call last):
229 ...226 ...
230 lp.bugs.externalbugtracker.base.UnparsableBugData: External bugtracker http://test.trac does not define all the necessary fields for bug status imports (Defined field names: ['<html>']).227 lp.bugs.externalbugtracker.base.UnparsableBugData: External bugtracker http://test.trac does not define all the necessary fields for bug status imports (Defined field names: ['<html>']).
@@ -233,7 +230,6 @@ Trying to get the remote status of the bug will raise a BugNotFound
233error since the bug was never imported.230error since the bug was never imported.
234231
235 >>> trac.getRemoteStatus(6)232 >>> trac.getRemoteStatus(6)
236 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
237 Traceback (most recent call last):233 Traceback (most recent call last):
238 ...234 ...
239 lp.bugs.externalbugtracker.base.BugNotFound: 6235 lp.bugs.externalbugtracker.base.BugNotFound: 6
@@ -263,7 +259,6 @@ export, it will raise an UnparsableBugData error.
263259
264 >>> with trac.responses(broken=True):260 >>> with trac.responses(broken=True):
265 ... trac._fetchBugData(query_url)261 ... trac._fetchBugData(query_url)
266 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
267 Traceback (most recent call last):262 Traceback (most recent call last):
268 ...263 ...
269 lp.bugs.externalbugtracker.base.UnparsableBugData: External bugtracker http://test.trac does not define all the necessary fields for bug status imports (Defined field names: ['<html>']).264 lp.bugs.externalbugtracker.base.UnparsableBugData: External bugtracker http://test.trac does not define all the necessary fields for bug status imports (Defined field names: ['<html>']).
diff --git a/lib/lp/bugs/doc/externalbugtracker.txt b/lib/lp/bugs/doc/externalbugtracker.txt
index 815d9db..9d22920 100644
--- a/lib/lp/bugs/doc/externalbugtracker.txt
+++ b/lib/lp/bugs/doc/externalbugtracker.txt
@@ -345,7 +345,6 @@ is, an error is raised.
345345
346 >>> bug_watch_updater.updateBugWatches(346 >>> bug_watch_updater.updateBugWatches(
347 ... PositiveTimeSkewExternalBugTracker(), [], now=utc_now)347 ... PositiveTimeSkewExternalBugTracker(), [], now=utc_now)
348 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
349 Traceback (most recent call last):348 Traceback (most recent call last):
350 ...349 ...
351 lp.bugs.scripts.checkwatches.core.TooMuchTimeSkew: ...350 lp.bugs.scripts.checkwatches.core.TooMuchTimeSkew: ...
@@ -357,7 +356,6 @@ is, an error is raised.
357356
358 >>> bug_watch_updater.updateBugWatches(357 >>> bug_watch_updater.updateBugWatches(
359 ... NegativeTimeSkewExternalBugTracker(), [], now=utc_now)358 ... NegativeTimeSkewExternalBugTracker(), [], now=utc_now)
360 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
361 Traceback (most recent call last):359 Traceback (most recent call last):
362 ...360 ...
363 lp.bugs.scripts.checkwatches.core.TooMuchTimeSkew: ...361 lp.bugs.scripts.checkwatches.core.TooMuchTimeSkew: ...
@@ -371,7 +369,6 @@ before re-raising the error.
371 >>> server_time = utc_now - timedelta(minutes=25)369 >>> server_time = utc_now - timedelta(minutes=25)
372 >>> bug_watch_updater._getRemoteIdsToCheck(370 >>> bug_watch_updater._getRemoteIdsToCheck(
373 ... NegativeTimeSkewExternalBugTracker(), [], server_time, utc_now)371 ... NegativeTimeSkewExternalBugTracker(), [], server_time, utc_now)
374 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
375 Traceback (most recent call last):372 Traceback (most recent call last):
376 ...373 ...
377 lp.bugs.scripts.checkwatches.core.TooMuchTimeSkew: ...374 lp.bugs.scripts.checkwatches.core.TooMuchTimeSkew: ...
diff --git a/lib/lp/bugs/doc/initial-bug-contacts.txt b/lib/lp/bugs/doc/initial-bug-contacts.txt
index 68e66c0..46e8ed2 100644
--- a/lib/lp/bugs/doc/initial-bug-contacts.txt
+++ b/lib/lp/bugs/doc/initial-bug-contacts.txt
@@ -29,7 +29,6 @@ logged in to call this method:
29 >>> sample_person = personset.getByName("name12")29 >>> sample_person = personset.getByName("name12")
3030
31 >>> debian_firefox.addBugSubscription(sample_person, sample_person)31 >>> debian_firefox.addBugSubscription(sample_person, sample_person)
32 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
33 Traceback (most recent call last):32 Traceback (most recent call last):
34 ...33 ...
35 zope.security.interfaces.Unauthorized: ...34 zope.security.interfaces.Unauthorized: ...
@@ -80,7 +79,6 @@ raises a DeleteSubscriptionError.
8079
81 >>> foobar = personset.getByName("name16")80 >>> foobar = personset.getByName("name16")
82 >>> debian_firefox.removeBugSubscription(foobar, foobar)81 >>> debian_firefox.removeBugSubscription(foobar, foobar)
83 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
84 Traceback (most recent call last):82 Traceback (most recent call last):
85 ...83 ...
86 lp.registry.errors.DeleteSubscriptionError: ...84 lp.registry.errors.DeleteSubscriptionError: ...
diff --git a/lib/lp/bugs/doc/malone-xmlrpc.txt b/lib/lp/bugs/doc/malone-xmlrpc.txt
index 4e6d68d..5df5db6 100644
--- a/lib/lp/bugs/doc/malone-xmlrpc.txt
+++ b/lib/lp/bugs/doc/malone-xmlrpc.txt
@@ -165,7 +165,6 @@ Failing to specify a product or distribution.
165165
166 >>> params = dict()166 >>> params = dict()
167 >>> filebug_api.filebug(params)167 >>> filebug_api.filebug(params)
168 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
169 Traceback (most recent call last):168 Traceback (most recent call last):
170 ...169 ...
171 xmlrpc.client.Fault: <Fault 60: 'Required arguments missing. You must specify either a product or distribution in which the bug exists.'>170 xmlrpc.client.Fault: <Fault 60: 'Required arguments missing. You must specify either a product or distribution in which the bug exists.'>
@@ -174,7 +173,6 @@ Specifying *both* a product and distribution.
174173
175 >>> params = dict(product='firefox', distro='ubuntu')174 >>> params = dict(product='firefox', distro='ubuntu')
176 >>> filebug_api.filebug(params)175 >>> filebug_api.filebug(params)
177 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
178 Traceback (most recent call last):176 Traceback (most recent call last):
179 ...177 ...
180 xmlrpc.client.Fault: <Fault 70: 'Too many arguments. You may specify either a product or a distribution, but not both.'>178 xmlrpc.client.Fault: <Fault 70: 'Too many arguments. You may specify either a product or a distribution, but not both.'>
@@ -183,7 +181,6 @@ Specifying a non-existent product.
183181
184 >>> params = dict(product='nosuchproduct')182 >>> params = dict(product='nosuchproduct')
185 >>> filebug_api.filebug(params)183 >>> filebug_api.filebug(params)
186 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
187 Traceback (most recent call last):184 Traceback (most recent call last):
188 ...185 ...
189 xmlrpc.client.Fault: <Fault 10: 'No such project: nosuchproduct'>186 xmlrpc.client.Fault: <Fault 10: 'No such project: nosuchproduct'>
@@ -192,7 +189,6 @@ Specifying a non-existent distribution.
192189
193 >>> params = dict(distro='nosuchdistro')190 >>> params = dict(distro='nosuchdistro')
194 >>> filebug_api.filebug(params)191 >>> filebug_api.filebug(params)
195 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
196 Traceback (most recent call last):192 Traceback (most recent call last):
197 ...193 ...
198 xmlrpc.client.Fault: <Fault 80: 'No such distribution: nosuchdistro'>194 xmlrpc.client.Fault: <Fault 80: 'No such distribution: nosuchdistro'>
@@ -201,7 +197,6 @@ Specifying a non-existent package.
201197
202 >>> params = dict(distro='ubuntu', package='nosuchpackage')198 >>> params = dict(distro='ubuntu', package='nosuchpackage')
203 >>> filebug_api.filebug(params)199 >>> filebug_api.filebug(params)
204 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
205 Traceback (most recent call last):200 Traceback (most recent call last):
206 ...201 ...
207 xmlrpc.client.Fault: <Fault 90: 'No such package: nosuchpackage'>202 xmlrpc.client.Fault: <Fault 90: 'No such package: nosuchpackage'>
@@ -210,7 +205,6 @@ Missing summary.
210205
211 >>> params = dict(product='firefox')206 >>> params = dict(product='firefox')
212 >>> filebug_api.filebug(params)207 >>> filebug_api.filebug(params)
213 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
214 Traceback (most recent call last):208 Traceback (most recent call last):
215 ...209 ...
216 xmlrpc.client.Fault: <Fault 100: 'Required parameter missing: summary'>210 xmlrpc.client.Fault: <Fault 100: 'Required parameter missing: summary'>
@@ -219,7 +213,6 @@ Missing comment.
219213
220 >>> params = dict(product='firefox', summary='the summary')214 >>> params = dict(product='firefox', summary='the summary')
221 >>> filebug_api.filebug(params)215 >>> filebug_api.filebug(params)
222 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
223 Traceback (most recent call last):216 Traceback (most recent call last):
224 ...217 ...
225 xmlrpc.client.Fault: <Fault 100: 'Required parameter missing: comment'>218 xmlrpc.client.Fault: <Fault 100: 'Required parameter missing: comment'>
@@ -230,7 +223,6 @@ Invalid subscriber.
230 ... product='firefox', summary='summary', comment='comment',223 ... product='firefox', summary='summary', comment='comment',
231 ... subscribers=["foo.bar@canonical.com", "nosuch@subscriber.com"])224 ... subscribers=["foo.bar@canonical.com", "nosuch@subscriber.com"])
232 >>> filebug_api.filebug(params)225 >>> filebug_api.filebug(params)
233 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
234 Traceback (most recent call last):226 Traceback (most recent call last):
235 ...227 ...
236 xmlrpc.client.Fault: <Fault 20: 'Invalid subscriber: No user with the email address "nosuch@subscriber.com" was found'>228 xmlrpc.client.Fault: <Fault 20: 'Invalid subscriber: No user with the email address "nosuch@subscriber.com" was found'>
diff --git a/lib/lp/bugs/doc/official-bug-tags.txt b/lib/lp/bugs/doc/official-bug-tags.txt
index 5d939be..44f7d93 100644
--- a/lib/lp/bugs/doc/official-bug-tags.txt
+++ b/lib/lp/bugs/doc/official-bug-tags.txt
@@ -41,7 +41,6 @@ But bug tags must be unique for each product and distribution.
41 >>> store.add(distro_tag3)41 >>> store.add(distro_tag3)
42 <lp.bugs.model.bugtarget.OfficialBugTag object at...42 <lp.bugs.model.bugtarget.OfficialBugTag object at...
43 >>> store.flush()43 >>> store.flush()
44 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
45 Traceback (most recent call last):44 Traceback (most recent call last):
46 storm.database.IntegrityError: ...45 storm.database.IntegrityError: ...
4746
@@ -116,25 +115,21 @@ Ordinary users cannot add and remove official bug tags.
116115
117 >>> login('no-priv@canonical.com')116 >>> login('no-priv@canonical.com')
118 >>> ubuntu.addOfficialBugTag(u'foo')117 >>> ubuntu.addOfficialBugTag(u'foo')
119 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
120 Traceback (most recent call last):118 Traceback (most recent call last):
121 ...119 ...
122 zope.security.interfaces.Unauthorized: (<Distribution 'Ubuntu' (ubuntu)>, 'addOfficialBugTag', 'launchpad.Edit')120 zope.security.interfaces.Unauthorized: (<Distribution 'Ubuntu' (ubuntu)>, 'addOfficialBugTag', 'launchpad.Edit')
123121
124 >>> ubuntu.removeOfficialBugTag(u'foo')122 >>> ubuntu.removeOfficialBugTag(u'foo')
125 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
126 Traceback (most recent call last):123 Traceback (most recent call last):
127 ...124 ...
128 zope.security.interfaces.Unauthorized: (<Distribution 'Ubuntu' (ubuntu)>, 'removeOfficialBugTag', 'launchpad.Edit')125 zope.security.interfaces.Unauthorized: (<Distribution 'Ubuntu' (ubuntu)>, 'removeOfficialBugTag', 'launchpad.Edit')
129126
130 >>> firefox.addOfficialBugTag(u'foo')127 >>> firefox.addOfficialBugTag(u'foo')
131 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
132 Traceback (most recent call last):128 Traceback (most recent call last):
133 ...129 ...
134 zope.security.interfaces.Unauthorized: (<Product at ...>, 'addOfficialBugTag', 'launchpad.Edit')130 zope.security.interfaces.Unauthorized: (<Product at ...>, 'addOfficialBugTag', 'launchpad.Edit')
135131
136 >>> firefox.removeOfficialBugTag(u'foo')132 >>> firefox.removeOfficialBugTag(u'foo')
137 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
138 Traceback (most recent call last):133 Traceback (most recent call last):
139 ...134 ...
140 zope.security.interfaces.Unauthorized: (<Product at ...>, 'removeOfficialBugTag', 'launchpad.Edit')135 zope.security.interfaces.Unauthorized: (<Product at ...>, 'removeOfficialBugTag', 'launchpad.Edit')
@@ -175,7 +170,6 @@ But only writable for users with edit permissions.
175170
176 >>> login('no-priv@canonical.com')171 >>> login('no-priv@canonical.com')
177 >>> ubuntu.official_bug_tags = [u'foo', u'bar']172 >>> ubuntu.official_bug_tags = [u'foo', u'bar']
178 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
179 Traceback (most recent call last):173 Traceback (most recent call last):
180 ...174 ...
181 zope.security.interfaces.Unauthorized: (<Distribution 'Ubuntu' (ubuntu)>, 'official_bug_tags', 'launchpad.BugSupervisor')175 zope.security.interfaces.Unauthorized: (<Distribution 'Ubuntu' (ubuntu)>, 'official_bug_tags', 'launchpad.BugSupervisor')
diff --git a/lib/lp/bugs/doc/vocabularies.txt b/lib/lp/bugs/doc/vocabularies.txt
index bfd449b..a7916bc 100644
--- a/lib/lp/bugs/doc/vocabularies.txt
+++ b/lib/lp/bugs/doc/vocabularies.txt
@@ -244,7 +244,6 @@ Trying to get a non-existent release will result in a
244NoSuchDistroSeries error.244NoSuchDistroSeries error.
245245
246 >>> series_vocabulary.getTermByToken('non-such-release')246 >>> series_vocabulary.getTermByToken('non-such-release')
247 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
248 Traceback (most recent call last):247 Traceback (most recent call last):
249 ...248 ...
250 lp.registry.errors.NoSuchDistroSeries: ...249 lp.registry.errors.NoSuchDistroSeries: ...
diff --git a/lib/lp/bugs/stories/bug-privacy/xx-bug-privacy.txt b/lib/lp/bugs/stories/bug-privacy/xx-bug-privacy.txt
index a0b911d..f6c5c45 100644
--- a/lib/lp/bugs/stories/bug-privacy/xx-bug-privacy.txt
+++ b/lib/lp/bugs/stories/bug-privacy/xx-bug-privacy.txt
@@ -80,7 +80,6 @@ Anonymous users cannot see private bugs filed on distros, of course!
80Not directly.80Not directly.
8181
82 >>> anon_browser.open("http://launchpad.test/bugs/14")82 >>> anon_browser.open("http://launchpad.test/bugs/14")
83 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
84 Traceback (most recent call last):83 Traceback (most recent call last):
85 ...84 ...
86 zope.publisher.interfaces.NotFound: ...85 zope.publisher.interfaces.NotFound: ...
@@ -97,7 +96,6 @@ Neither directly.
9796
98 >>> browser = setupBrowser("Basic no-privs@canonical.com:test")97 >>> browser = setupBrowser("Basic no-privs@canonical.com:test")
99 >>> browser.open("http://launchpad.test/bugs/14")98 >>> browser.open("http://launchpad.test/bugs/14")
100 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
101 Traceback (most recent call last):99 Traceback (most recent call last):
102 ...100 ...
103 zope.publisher.interfaces.NotFound: ...101 zope.publisher.interfaces.NotFound: ...
diff --git a/lib/lp/bugs/stories/bug-privacy/xx-presenting-private-bugs.txt b/lib/lp/bugs/stories/bug-privacy/xx-presenting-private-bugs.txt
index 81778ee..f56deb7 100644
--- a/lib/lp/bugs/stories/bug-privacy/xx-presenting-private-bugs.txt
+++ b/lib/lp/bugs/stories/bug-privacy/xx-presenting-private-bugs.txt
@@ -61,13 +61,11 @@ But poor old no privs does not, and neither do anonymous users:
6161
62 >>> browser = setupBrowser(auth="Basic no-priv@canonical.com:test")62 >>> browser = setupBrowser(auth="Basic no-priv@canonical.com:test")
63 >>> browser.open('http://bugs.launchpad.test/bugs/4')63 >>> browser.open('http://bugs.launchpad.test/bugs/4')
64 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
65 Traceback (most recent call last):64 Traceback (most recent call last):
66 ...65 ...
67 zope.publisher.interfaces.NotFound: ...66 zope.publisher.interfaces.NotFound: ...
6867
69 >>> anon_browser.open('http://bugs.launchpad.test/bugs/4')68 >>> anon_browser.open('http://bugs.launchpad.test/bugs/4')
70 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
71 Traceback (most recent call last):69 Traceback (most recent call last):
72 ...70 ...
73 zope.publisher.interfaces.NotFound: ...71 zope.publisher.interfaces.NotFound: ...
diff --git a/lib/lp/bugs/stories/bug-release-management/xx-anonymous-bug-nomination.txt b/lib/lp/bugs/stories/bug-release-management/xx-anonymous-bug-nomination.txt
index 947bbb4..52c7c53 100644
--- a/lib/lp/bugs/stories/bug-release-management/xx-anonymous-bug-nomination.txt
+++ b/lib/lp/bugs/stories/bug-release-management/xx-anonymous-bug-nomination.txt
@@ -7,7 +7,6 @@ launchpad.Edit permission is required to do so.:
7 >>> anon_browser.open('http://bugs.launchpad.test/jokosher/+bug/12')7 >>> anon_browser.open('http://bugs.launchpad.test/jokosher/+bug/12')
88
9 >>> anon_browser.getLink('Nominate for series').click()9 >>> anon_browser.getLink('Nominate for series').click()
10 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
11 Traceback (most recent call last):10 Traceback (most recent call last):
12 ...11 ...
13 zope.security.interfaces.Unauthorized: ...'launchpad.Edit'...12 zope.security.interfaces.Unauthorized: ...'launchpad.Edit'...
diff --git a/lib/lp/bugs/stories/bug-release-management/xx-bug-release-management.txt b/lib/lp/bugs/stories/bug-release-management/xx-bug-release-management.txt
index 7da1064..9dff651 100644
--- a/lib/lp/bugs/stories/bug-release-management/xx-bug-release-management.txt
+++ b/lib/lp/bugs/stories/bug-release-management/xx-bug-release-management.txt
@@ -203,7 +203,6 @@ in the release task.
203 >>> ubuntu_edit_url = (203 >>> ubuntu_edit_url = (
204 ... 'http://bugs.launchpad.test/ubuntu/+bug/2/+editstatus')204 ... 'http://bugs.launchpad.test/ubuntu/+bug/2/+editstatus')
205 >>> user_browser.getLink(url=ubuntu_edit_url)205 >>> user_browser.getLink(url=ubuntu_edit_url)
206 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
207 Traceback (most recent call last):206 Traceback (most recent call last):
208 ...207 ...
209 zope.testbrowser.browser.LinkNotFoundError208 zope.testbrowser.browser.LinkNotFoundError
@@ -255,7 +254,6 @@ the distribution task won't be editable.
255 >>> user_browser.getControl('Save Changes').click()254 >>> user_browser.getControl('Save Changes').click()
256255
257 >>> user_browser.getLink(url=ubuntu_edit_url)256 >>> user_browser.getLink(url=ubuntu_edit_url)
258 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
259 Traceback (most recent call last):257 Traceback (most recent call last):
260 ...258 ...
261 zope.testbrowser.browser.LinkNotFoundError259 zope.testbrowser.browser.LinkNotFoundError
@@ -272,7 +270,6 @@ general distribution task will remain uneditable.
272 >>> user_browser.getControl('Save Changes').click()270 >>> user_browser.getControl('Save Changes').click()
273271
274 >>> user_browser.getLink(url=ubuntu_edit_url)272 >>> user_browser.getLink(url=ubuntu_edit_url)
275 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
276 Traceback (most recent call last):273 Traceback (most recent call last):
277 ...274 ...
278 zope.testbrowser.browser.LinkNotFoundError275 zope.testbrowser.browser.LinkNotFoundError
@@ -293,7 +290,6 @@ in the series task.
293 >>> firefox_edit_url = (290 >>> firefox_edit_url = (
294 ... 'http://bugs.launchpad.test/firefox/+bug/4/+editstatus')291 ... 'http://bugs.launchpad.test/firefox/+bug/4/+editstatus')
295 >>> user_browser.getLink(url=firefox_edit_url)292 >>> user_browser.getLink(url=firefox_edit_url)
296 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
297 Traceback (most recent call last):293 Traceback (most recent call last):
298 ...294 ...
299 zope.testbrowser.browser.LinkNotFoundError295 zope.testbrowser.browser.LinkNotFoundError
@@ -347,7 +343,6 @@ the distribution task won't be editable.
347 >>> user_browser.getControl('Save Changes').click()343 >>> user_browser.getControl('Save Changes').click()
348344
349 >>> user_browser.getLink(url=firefox_edit_url)345 >>> user_browser.getLink(url=firefox_edit_url)
350 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
351 Traceback (most recent call last):346 Traceback (most recent call last):
352 ...347 ...
353 zope.testbrowser.browser.LinkNotFoundError348 zope.testbrowser.browser.LinkNotFoundError
@@ -364,7 +359,6 @@ general distribution task will remain uneditable.
364 >>> user_browser.getControl('Save Changes').click()359 >>> user_browser.getControl('Save Changes').click()
365360
366 >>> user_browser.getLink(url=firefox_edit_url)361 >>> user_browser.getLink(url=firefox_edit_url)
367 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
368 Traceback (most recent call last):362 Traceback (most recent call last):
369 ...363 ...
370 zope.testbrowser.browser.LinkNotFoundError364 zope.testbrowser.browser.LinkNotFoundError
diff --git a/lib/lp/bugs/stories/bug-tags/xx-official-bug-tags.txt b/lib/lp/bugs/stories/bug-tags/xx-official-bug-tags.txt
index 9b3596f..4fa1eb4 100644
--- a/lib/lp/bugs/stories/bug-tags/xx-official-bug-tags.txt
+++ b/lib/lp/bugs/stories/bug-tags/xx-official-bug-tags.txt
@@ -28,14 +28,12 @@ distributions but not for other bug targets.
28 >>> admin_browser.open(28 >>> admin_browser.open(
29 ... 'http://bugs.launchpad.test/firefox/1.0')29 ... 'http://bugs.launchpad.test/firefox/1.0')
30 >>> print(admin_browser.getLink('Edit official tags'))30 >>> print(admin_browser.getLink('Edit official tags'))
31 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
32 Traceback (most recent call last):31 Traceback (most recent call last):
33 ...32 ...
34 zope.testbrowser.browser.LinkNotFoundError33 zope.testbrowser.browser.LinkNotFoundError
3534
36 >>> admin_browser.open(35 >>> admin_browser.open(
37 ... 'http://bugs.launchpad.test/firefox/1.0/+manage-official-tags')36 ... 'http://bugs.launchpad.test/firefox/1.0/+manage-official-tags')
38 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
39 Traceback (most recent call last):37 Traceback (most recent call last):
40 ...38 ...
41 zope.publisher.interfaces.NotFound: ...39 zope.publisher.interfaces.NotFound: ...
@@ -45,14 +43,12 @@ administrators but not for ordinary users.
4543
46 >>> browser.open('http://bugs.launchpad.test/firefox')44 >>> browser.open('http://bugs.launchpad.test/firefox')
47 >>> print(browser.getLink('Edit official tags'))45 >>> print(browser.getLink('Edit official tags'))
48 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
49 Traceback (most recent call last):46 Traceback (most recent call last):
50 ...47 ...
51 zope.testbrowser.browser.LinkNotFoundError48 zope.testbrowser.browser.LinkNotFoundError
5249
53 >>> browser.open(50 >>> browser.open(
54 ... 'http://bugs.launchpad.test/firefox/+manage-official-tags')51 ... 'http://bugs.launchpad.test/firefox/+manage-official-tags')
55 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
56 Traceback (most recent call last):52 Traceback (most recent call last):
57 ...53 ...
58 zope.security.interfaces.Unauthorized: ...54 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/bugs/stories/bugattachments/xx-bugattachments.txt b/lib/lp/bugs/stories/bugattachments/xx-bugattachments.txt
index caa26a7..01f6659 100644
--- a/lib/lp/bugs/stories/bugattachments/xx-bugattachments.txt
+++ b/lib/lp/bugs/stories/bugattachments/xx-bugattachments.txt
@@ -2,7 +2,6 @@ We need to login in order to add attachments.
22
3 >>> anon_browser.open(3 >>> anon_browser.open(
4 ... 'http://bugs.launchpad.test/firefox/+bug/1/+addcomment')4 ... 'http://bugs.launchpad.test/firefox/+bug/1/+addcomment')
5 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
6 Traceback (most recent call last):5 Traceback (most recent call last):
7 ...6 ...
8 zope.security.interfaces.Unauthorized: ...7 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/bugs/stories/bugs/bug-add-subscriber.txt b/lib/lp/bugs/stories/bugs/bug-add-subscriber.txt
index 0e82fc5..e0bbfc9 100644
--- a/lib/lp/bugs/stories/bugs/bug-add-subscriber.txt
+++ b/lib/lp/bugs/stories/bugs/bug-add-subscriber.txt
@@ -9,7 +9,6 @@ Anonymous users should not be able to subscribe someone else to a bug.
99
10 >>> anon_browser.open('http://bugs.launchpad.test/firefox/+bug/1')10 >>> anon_browser.open('http://bugs.launchpad.test/firefox/+bug/1')
11 >>> anon_browser.getLink('Subscribe someone else').click()11 >>> anon_browser.getLink('Subscribe someone else').click()
12 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
13 Traceback (most recent call last):12 Traceback (most recent call last):
14 ...13 ...
15 zope.security.interfaces.Unauthorized: ...14 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/bugs/stories/bugs/xx-bug-comment-attach-file.txt b/lib/lp/bugs/stories/bugs/xx-bug-comment-attach-file.txt
index 7d38b84..a870168 100644
--- a/lib/lp/bugs/stories/bugs/xx-bug-comment-attach-file.txt
+++ b/lib/lp/bugs/stories/bugs/xx-bug-comment-attach-file.txt
@@ -6,7 +6,6 @@ case, it means being logged in.
66
7 >>> anon_browser.open(7 >>> anon_browser.open(
8 ... "http://bugs.launchpad.test/firefox/+bug/1/+addcomment-form")8 ... "http://bugs.launchpad.test/firefox/+bug/1/+addcomment-form")
9 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
10 Traceback (most recent call last):9 Traceback (most recent call last):
11 ..10 ..
12 zope.security.interfaces.Unauthorized: ...launchpad.Edit...11 zope.security.interfaces.Unauthorized: ...launchpad.Edit...
diff --git a/lib/lp/bugs/stories/bugs/xx-bug-create-question.txt b/lib/lp/bugs/stories/bugs/xx-bug-create-question.txt
index f9ebcda..b2d2ee3 100644
--- a/lib/lp/bugs/stories/bugs/xx-bug-create-question.txt
+++ b/lib/lp/bugs/stories/bugs/xx-bug-create-question.txt
@@ -17,7 +17,6 @@ An anonymous user cannot create a question.
17 'Bug #10 ... : Bugs : linux-source-2.6.15 package : Ubuntu'17 'Bug #10 ... : Bugs : linux-source-2.6.15 package : Ubuntu'
1818
19 >>> anon_browser.getLink('Convert to a question').click()19 >>> anon_browser.getLink('Convert to a question').click()
20 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
21 Traceback (most recent call last):20 Traceback (most recent call last):
22 ...21 ...
23 zope.security.interfaces.Unauthorized: ...22 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/bugs/stories/bugs/xx-bug-edit.txt b/lib/lp/bugs/stories/bugs/xx-bug-edit.txt
index 9e9af89..7e888cd 100644
--- a/lib/lp/bugs/stories/bugs/xx-bug-edit.txt
+++ b/lib/lp/bugs/stories/bugs/xx-bug-edit.txt
@@ -40,7 +40,6 @@ there is no link to the original description.
4040
41 >>> user_browser.open('http://bugs.launchpad.test/firefox/+bug/4')41 >>> user_browser.open('http://bugs.launchpad.test/firefox/+bug/4')
42 >>> user_browser.getLink('original description')42 >>> user_browser.getLink('original description')
43 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
44 Traceback (most recent call last):43 Traceback (most recent call last):
45 ...44 ...
46 zope.testbrowser.browser.LinkNotFoundError45 zope.testbrowser.browser.LinkNotFoundError
diff --git a/lib/lp/bugs/stories/bugs/xx-bug-hidden-comments.txt b/lib/lp/bugs/stories/bugs/xx-bug-hidden-comments.txt
index 31fb476..1a8c9cc 100644
--- a/lib/lp/bugs/stories/bugs/xx-bug-hidden-comments.txt
+++ b/lib/lp/bugs/stories/bugs/xx-bug-hidden-comments.txt
@@ -59,7 +59,6 @@ Ordinary users also cannot reach the message via direct link.
59 >>> test_browser.open(59 >>> test_browser.open(
60 ... 'http://bugs.launchpad.test'60 ... 'http://bugs.launchpad.test'
61 ... '/jokosher/+bug/11/comments/%d' % (int(latest_index[1:]) + 1))61 ... '/jokosher/+bug/11/comments/%d' % (int(latest_index[1:]) + 1))
62 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
63 Traceback (most recent call last):62 Traceback (most recent call last):
64 ...63 ...
65 zope.publisher.interfaces.NotFound: ...64 zope.publisher.interfaces.NotFound: ...
diff --git a/lib/lp/bugs/stories/bugs/xx-bug-nomination-table-row.txt b/lib/lp/bugs/stories/bugs/xx-bug-nomination-table-row.txt
index f5b0609..747f331 100644
--- a/lib/lp/bugs/stories/bugs/xx-bug-nomination-table-row.txt
+++ b/lib/lp/bugs/stories/bugs/xx-bug-nomination-table-row.txt
@@ -56,7 +56,6 @@ buttons) directly either.
56 >>> user_browser.open(56 >>> user_browser.open(
57 ... "http://launchpad.test/distros/ubuntu/+source/mozilla-firefox/"57 ... "http://launchpad.test/distros/ubuntu/+source/mozilla-firefox/"
58 ... "+bug/1/nominations/2/+edit-form")58 ... "+bug/1/nominations/2/+edit-form")
59 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
60 Traceback (most recent call last):59 Traceback (most recent call last):
61 ...60 ...
62 zope.security.interfaces.Unauthorized: ...61 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/bugs/stories/bugs/xx-bugs-advanced-search-upstream-status.txt b/lib/lp/bugs/stories/bugs/xx-bugs-advanced-search-upstream-status.txt
index cdbc150..b405996 100644
--- a/lib/lp/bugs/stories/bugs/xx-bugs-advanced-search-upstream-status.txt
+++ b/lib/lp/bugs/stories/bugs/xx-bugs-advanced-search-upstream-status.txt
@@ -211,7 +211,6 @@ Other values for status_upstream lead to an error.
211 >>> anon_browser.open(211 >>> anon_browser.open(
212 ... 'http://bugs.launchpad.test/ubuntu/+bugs?' + urlencode(212 ... 'http://bugs.launchpad.test/ubuntu/+bugs?' + urlencode(
213 ... bookmark_params, True))213 ... bookmark_params, True))
214 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
215 Traceback (most recent call last):214 Traceback (most recent call last):
216 ...215 ...
217 lp.app.errors.UnexpectedFormData: Unexpected value for field 'status_upstream'. Perhaps your bookmarks are out of date or you changed the URL by hand?216 lp.app.errors.UnexpectedFormData: Unexpected value for field 'status_upstream'. Perhaps your bookmarks are out of date or you changed the URL by hand?
diff --git a/lib/lp/bugs/stories/bugs/xx-distribution-bugs-page.txt b/lib/lp/bugs/stories/bugs/xx-distribution-bugs-page.txt
index 0a114d2..ef5e0be 100644
--- a/lib/lp/bugs/stories/bugs/xx-distribution-bugs-page.txt
+++ b/lib/lp/bugs/stories/bugs/xx-distribution-bugs-page.txt
@@ -86,7 +86,6 @@ see any link reporting that bugs can expire.
8686
87 >>> anon_browser.open('http://bugs.launchpad.test/debian/+bugs')87 >>> anon_browser.open('http://bugs.launchpad.test/debian/+bugs')
88 >>> expirable_bugs_link = anon_browser.getLink('Incomplete bugs')88 >>> expirable_bugs_link = anon_browser.getLink('Incomplete bugs')
89 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
90 Traceback (most recent call last):89 Traceback (most recent call last):
91 ...90 ...
92 zope.testbrowser.browser.LinkNotFoundError91 zope.testbrowser.browser.LinkNotFoundError
diff --git a/lib/lp/bugs/stories/bugs/xx-incomplete-bugs.txt b/lib/lp/bugs/stories/bugs/xx-incomplete-bugs.txt
index b54b9f1..8bbe996 100644
--- a/lib/lp/bugs/stories/bugs/xx-incomplete-bugs.txt
+++ b/lib/lp/bugs/stories/bugs/xx-incomplete-bugs.txt
@@ -180,7 +180,6 @@ This specialized list does not include the search form. So there is no
180The 'Report a bug' link is also not present.180The 'Report a bug' link is also not present.
181181
182 >>> user_browser.getLink('Report a bug')182 >>> user_browser.getLink('Report a bug')
183 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
184 Traceback (most recent call last):183 Traceback (most recent call last):
185 ...184 ...
186 zope.testbrowser.browser.LinkNotFoundError185 zope.testbrowser.browser.LinkNotFoundError
diff --git a/lib/lp/bugs/stories/bugs/xx-product-bugs-page.txt b/lib/lp/bugs/stories/bugs/xx-product-bugs-page.txt
index 5d17888..fdc8858 100644
--- a/lib/lp/bugs/stories/bugs/xx-product-bugs-page.txt
+++ b/lib/lp/bugs/stories/bugs/xx-product-bugs-page.txt
@@ -98,7 +98,6 @@ cannot see any link reporting that bugs can expire.
9898
99 >>> anon_browser.open('http://bugs.launchpad.test/thunderbird')99 >>> anon_browser.open('http://bugs.launchpad.test/thunderbird')
100 >>> expirable_bugs_link = anon_browser.getLink('Incomplete bugs')100 >>> expirable_bugs_link = anon_browser.getLink('Incomplete bugs')
101 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
102 Traceback (most recent call last):101 Traceback (most recent call last):
103 ...102 ...
104 zope.testbrowser.browser.LinkNotFoundError103 zope.testbrowser.browser.LinkNotFoundError
diff --git a/lib/lp/bugs/stories/bugs/xx-unique-ids-on-bug-page.txt b/lib/lp/bugs/stories/bugs/xx-unique-ids-on-bug-page.txt
index b183d8f..39d7cb4 100644
--- a/lib/lp/bugs/stories/bugs/xx-unique-ids-on-bug-page.txt
+++ b/lib/lp/bugs/stories/bugs/xx-unique-ids-on-bug-page.txt
@@ -11,7 +11,6 @@ For example, bug one has more than one Package field.
1111
12 >>> user_browser.open('http://launchpad.test/bugs/1')12 >>> user_browser.open('http://launchpad.test/bugs/1')
13 >>> user_browser.getControl('Package')13 >>> user_browser.getControl('Package')
14 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
15 Traceback (most recent call last):14 Traceback (most recent call last):
16 ...15 ...
17 zope.testbrowser.browser.AmbiguityError: label ...'Package' matches: ...16 zope.testbrowser.browser.AmbiguityError: label ...'Package' matches: ...
diff --git a/lib/lp/bugs/stories/bugtask-management/xx-bug-privileged-statuses.txt b/lib/lp/bugs/stories/bugtask-management/xx-bug-privileged-statuses.txt
index ff2d0cd..e8b4111 100644
--- a/lib/lp/bugs/stories/bugtask-management/xx-bug-privileged-statuses.txt
+++ b/lib/lp/bugs/stories/bugtask-management/xx-bug-privileged-statuses.txt
@@ -41,13 +41,11 @@ those statuses are not shown in the UI:
41 ['Confirmed']41 ['Confirmed']
4242
43 >>> status_control.displayValue = ["Won't Fix"]43 >>> status_control.displayValue = ["Won't Fix"]
44 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
45 Traceback (most recent call last):44 Traceback (most recent call last):
46 ...45 ...
47 zope.testbrowser.browser.ItemNotFoundError: Won't Fix46 zope.testbrowser.browser.ItemNotFoundError: Won't Fix
4847
49 >>> status_control.displayValue = ["Triaged"]48 >>> status_control.displayValue = ["Triaged"]
50 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
51 Traceback (most recent call last):49 Traceback (most recent call last):
52 ...50 ...
53 zope.testbrowser.browser.ItemNotFoundError: Triaged51 zope.testbrowser.browser.ItemNotFoundError: Triaged
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 d60ed21..dc57806 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
@@ -26,7 +26,6 @@ respective bug task.
26 http://bugs.launchpad.test/firefox/+bug/1/+editstatus26 http://bugs.launchpad.test/firefox/+bug/1/+editstatus
2727
28 >>> print(admin_browser.getLink('Confirmed').url)28 >>> print(admin_browser.getLink('Confirmed').url)
29 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
30 Traceback (most recent call last):29 Traceback (most recent call last):
31 ...30 ...
32 zope.testbrowser.browser.LinkNotFoundError31 zope.testbrowser.browser.LinkNotFoundError
diff --git a/lib/lp/bugs/stories/bugtask-management/xx-view-editable-bug-task.txt b/lib/lp/bugs/stories/bugtask-management/xx-view-editable-bug-task.txt
index 5159513..c906387 100644
--- a/lib/lp/bugs/stories/bugtask-management/xx-view-editable-bug-task.txt
+++ b/lib/lp/bugs/stories/bugtask-management/xx-view-editable-bug-task.txt
@@ -2,7 +2,6 @@ An anonymous user who tries to access the bugtask edit page will be
2redirected to the login page.2redirected to the login page.
33
4 >>> browser.open("http://launchpad.test/thunderbird/+bug/9/+editstatus")4 >>> browser.open("http://launchpad.test/thunderbird/+bug/9/+editstatus")
5 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
6 Traceback (most recent call last):5 Traceback (most recent call last):
7 ...6 ...
8 zope.security.interfaces.Unauthorized: ...7 zope.security.interfaces.Unauthorized: ...
@@ -23,7 +22,6 @@ Even when the product has a bug supervisor, see bug #49891.
23 >>> logout()22 >>> logout()
2423
25 >>> browser.open("http://launchpad.test/firefox/+bug/1/+editstatus")24 >>> browser.open("http://launchpad.test/firefox/+bug/1/+editstatus")
26 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
27 Traceback (most recent call last):25 Traceback (most recent call last):
28 ...26 ...
29 zope.security.interfaces.Unauthorized: ...27 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/bugs/stories/bugtask-searches/xx-unexpected-form-data.txt b/lib/lp/bugs/stories/bugtask-searches/xx-unexpected-form-data.txt
index aefde8b..07c8a85 100644
--- a/lib/lp/bugs/stories/bugtask-searches/xx-unexpected-form-data.txt
+++ b/lib/lp/bugs/stories/bugtask-searches/xx-unexpected-form-data.txt
@@ -4,14 +4,12 @@ is raised.
44
5 >>> browser.open(5 >>> browser.open(
6 ... "http://localhost/ubuntu/+bugs?search=Search&field.status=Fred")6 ... "http://localhost/ubuntu/+bugs?search=Search&field.status=Fred")
7 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
8 Traceback (most recent call last):7 Traceback (most recent call last):
9 ...8 ...
10 lp.app.errors.UnexpectedFormData: Unexpected value for field 'status'...9 lp.app.errors.UnexpectedFormData: Unexpected value for field 'status'...
1110
12 >>> browser.open(11 >>> browser.open(
13 ... "http://localhost/ubuntu/+bugs?search=Search&orderby=foobar")12 ... "http://localhost/ubuntu/+bugs?search=Search&orderby=foobar")
14 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
15 Traceback (most recent call last):13 Traceback (most recent call last):
16 ...14 ...
17 lp.app.errors.UnexpectedFormData: Unknown sort column 'foobar'15 lp.app.errors.UnexpectedFormData: Unknown sort column 'foobar'
@@ -19,7 +17,6 @@ is raised.
19 >>> browser.open(17 >>> browser.open(
20 ... "http://launchpad.test/firefox/+bugs?"18 ... "http://launchpad.test/firefox/+bugs?"
21 ... "field.status_upstream=hide_open")19 ... "field.status_upstream=hide_open")
22 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
23 Traceback (most recent call last):20 Traceback (most recent call last):
24 ...21 ...
25 lp.app.errors.UnexpectedFormData: Unexpected value for field 'status_upstream'...22 lp.app.errors.UnexpectedFormData: Unexpected value for field 'status_upstream'...
diff --git a/lib/lp/bugs/stories/bugtracker/xx-bugtracker-handshake-tokens.txt b/lib/lp/bugs/stories/bugtracker/xx-bugtracker-handshake-tokens.txt
index 7857961..7d7561c 100644
--- a/lib/lp/bugs/stories/bugtracker/xx-bugtracker-handshake-tokens.txt
+++ b/lib/lp/bugs/stories/bugtracker/xx-bugtracker-handshake-tokens.txt
@@ -21,7 +21,6 @@ error if we attempt it as a GET request.
21 ... token_string)21 ... token_string)
2222
23 >>> anon_browser.open(token_url)23 >>> anon_browser.open(token_url)
24 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
25 Traceback (most recent call last):24 Traceback (most recent call last):
26 ...25 ...
27 urllib.error.HTTPError: HTTP Error 405: Method Not Allowed26 urllib.error.HTTPError: HTTP Error 405: Method Not Allowed
diff --git a/lib/lp/bugs/stories/bugtracker/xx-bugtracker-remote-bug.txt b/lib/lp/bugs/stories/bugtracker/xx-bugtracker-remote-bug.txt
index 0e9753f..81fdee9 100644
--- a/lib/lp/bugs/stories/bugtracker/xx-bugtracker-remote-bug.txt
+++ b/lib/lp/bugs/stories/bugtracker/xx-bugtracker-remote-bug.txt
@@ -40,7 +40,6 @@ Found page is generated:
4040
41 >>> browser.handleErrors = True41 >>> browser.handleErrors = True
42 >>> browser.open('http://launchpad.test/bugs/bugtrackers/mozilla.org/99999')42 >>> browser.open('http://launchpad.test/bugs/bugtrackers/mozilla.org/99999')
43 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
44 Traceback (most recent call last):43 Traceback (most recent call last):
45 ...44 ...
46 urllib.error.HTTPError: HTTP Error 404: Not Found45 urllib.error.HTTPError: HTTP Error 404: Not Found
@@ -96,7 +95,6 @@ user logs in):
9695
97 >>> anon_browser.open(96 >>> anon_browser.open(
98 ... 'http://bugs.launchpad.test/bugs/bugtrackers/mozilla.org/2000')97 ... 'http://bugs.launchpad.test/bugs/bugtrackers/mozilla.org/2000')
99 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
100 Traceback (most recent call last):98 Traceback (most recent call last):
101 ...99 ...
102 zope.publisher.interfaces.NotFound: ...100 zope.publisher.interfaces.NotFound: ...
diff --git a/lib/lp/bugs/stories/cve/cve-linking.txt b/lib/lp/bugs/stories/cve/cve-linking.txt
index bdd98f7..2967f58 100644
--- a/lib/lp/bugs/stories/cve/cve-linking.txt
+++ b/lib/lp/bugs/stories/cve/cve-linking.txt
@@ -16,7 +16,6 @@ This link is only available to registered user:
1616
17 >>> anon_browser.open('http://launchpad.test/bugs/cve/2005-2737')17 >>> anon_browser.open('http://launchpad.test/bugs/cve/2005-2737')
18 >>> anon_browser.getLink(url='+linkbug').click()18 >>> anon_browser.getLink(url='+linkbug').click()
19 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
20 Traceback (most recent call last):19 Traceback (most recent call last):
21 ...20 ...
22 zope.security.interfaces.Unauthorized: ...21 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/bugs/stories/feeds/xx-bug-atom.txt b/lib/lp/bugs/stories/feeds/xx-bug-atom.txt
index 86f2876..2d615ed 100644
--- a/lib/lp/bugs/stories/feeds/xx-bug-atom.txt
+++ b/lib/lp/bugs/stories/feeds/xx-bug-atom.txt
@@ -509,7 +509,6 @@ performance problem in production.
509 ... """509 ... """
510 >>> config.push('bug_search_feed_data', bug_search_feed_data)510 >>> config.push('bug_search_feed_data', bug_search_feed_data)
511 >>> browser.open(url)511 >>> browser.open(url)
512 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
513 Traceback (most recent call last):512 Traceback (most recent call last):
514 ...513 ...
515 zope.security.interfaces.Unauthorized: Bug search feed deactivated514 zope.security.interfaces.Unauthorized: Bug search feed deactivated
diff --git a/lib/lp/bugs/stories/feeds/xx-bug-html.txt b/lib/lp/bugs/stories/feeds/xx-bug-html.txt
index ccf57cb..510e91a 100644
--- a/lib/lp/bugs/stories/feeds/xx-bug-html.txt
+++ b/lib/lp/bugs/stories/feeds/xx-bug-html.txt
@@ -201,7 +201,7 @@ performance problem in production.
201 ... is_bug_search_feed_active: False201 ... is_bug_search_feed_active: False
202 ... """202 ... """
203 >>> config.push('bug_search_feed_data', bug_search_feed_data)203 >>> config.push('bug_search_feed_data', bug_search_feed_data)
204 >>> browser.open(url) # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2204 >>> browser.open(url)
205 Traceback (most recent call last):205 Traceback (most recent call last):
206 ...206 ...
207 zope.security.interfaces.Unauthorized: Bug search feed deactivated207 zope.security.interfaces.Unauthorized: Bug search feed deactivated
diff --git a/lib/lp/bugs/stories/patches-view/patches-view.txt b/lib/lp/bugs/stories/patches-view/patches-view.txt
index d8fd8f6..6644208 100644
--- a/lib/lp/bugs/stories/patches-view/patches-view.txt
+++ b/lib/lp/bugs/stories/patches-view/patches-view.txt
@@ -201,7 +201,6 @@ importance and status.
201But we can't sort by things that aren't validated by the view.201But we can't sort by things that aren't validated by the view.
202202
203 >>> anon_browser.open('http://bugs.launchpad.test/patchy-product-1/+patches?orderby=star-sign')203 >>> anon_browser.open('http://bugs.launchpad.test/patchy-product-1/+patches?orderby=star-sign')
204 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
205 Traceback (most recent call last):204 Traceback (most recent call last):
206 ...205 ...
207 lp.app.errors.UnexpectedFormData: Unexpected value for field 'orderby': 'star-sign'206 lp.app.errors.UnexpectedFormData: Unexpected value for field 'orderby': 'star-sign'
diff --git a/lib/lp/bugs/stories/upstream-bugprivacy/xx-upstream-bug-privacy.txt b/lib/lp/bugs/stories/upstream-bugprivacy/xx-upstream-bug-privacy.txt
index 6160429..adfcedf 100644
--- a/lib/lp/bugs/stories/upstream-bugprivacy/xx-upstream-bug-privacy.txt
+++ b/lib/lp/bugs/stories/upstream-bugprivacy/xx-upstream-bug-privacy.txt
@@ -71,7 +71,6 @@ fails, because we pretend that inaccessible private bugs do not exist.
71 >>> browser = setupBrowser()71 >>> browser = setupBrowser()
72 >>> browser.open(72 >>> browser.open(
73 ... "http://launchpad.test/firefox/+bug/%s/+editstatus" % bug_id)73 ... "http://launchpad.test/firefox/+bug/%s/+editstatus" % bug_id)
74 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
75 Traceback (most recent call last):74 Traceback (most recent call last):
76 ...75 ...
77 zope.publisher.interfaces.NotFound: ...76 zope.publisher.interfaces.NotFound: ...
@@ -82,7 +81,6 @@ on which the no-privs is not an explicit subscriber.
82 >>> browser = setupBrowser(auth="Basic no-priv@canonical.com:test")81 >>> browser = setupBrowser(auth="Basic no-priv@canonical.com:test")
83 >>> browser.open(82 >>> browser.open(
84 ... "http://launchpad.test/firefox/+bug/%s/+editstatus" % bug_id)83 ... "http://launchpad.test/firefox/+bug/%s/+editstatus" % bug_id)
85 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
86 Traceback (most recent call last):84 Traceback (most recent call last):
87 ...85 ...
88 zope.publisher.interfaces.NotFound: ...86 zope.publisher.interfaces.NotFound: ...
diff --git a/lib/lp/bugs/stories/xx-bugs-statistics-portlet.txt b/lib/lp/bugs/stories/xx-bugs-statistics-portlet.txt
index 52f4fb7..3ebcac5 100644
--- a/lib/lp/bugs/stories/xx-bugs-statistics-portlet.txt
+++ b/lib/lp/bugs/stories/xx-bugs-statistics-portlet.txt
@@ -216,7 +216,6 @@ Note that the "CVE reports" link is not shown above; distribution
216source packages do not have a CVE reports page.216source packages do not have a CVE reports page.
217217
218 >>> print(user_browser.getLink('CVE report').url)218 >>> print(user_browser.getLink('CVE report').url)
219 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
220 Traceback (most recent call last):219 Traceback (most recent call last):
221 ...220 ...
222 zope.testbrowser.browser.LinkNotFoundError221 zope.testbrowser.browser.LinkNotFoundError
@@ -289,7 +288,6 @@ Note that the "CVE reports" link is not shown above; source packages
289do not have a CVE reports page.288do not have a CVE reports page.
290289
291 >>> print(user_browser.getLink('CVE report').url)290 >>> print(user_browser.getLink('CVE report').url)
292 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
293 Traceback (most recent call last):291 Traceback (most recent call last):
294 ...292 ...
295 zope.testbrowser.browser.LinkNotFoundError293 zope.testbrowser.browser.LinkNotFoundError
@@ -362,7 +360,6 @@ Note that the "CVE reports" link is not shown above; project groups do
362not have a CVE reports page.360not have a CVE reports page.
363361
364 >>> print(user_browser.getLink('CVE report').url)362 >>> print(user_browser.getLink('CVE report').url)
365 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
366 Traceback (most recent call last):363 Traceback (most recent call last):
367 ...364 ...
368 zope.testbrowser.browser.LinkNotFoundError365 zope.testbrowser.browser.LinkNotFoundError
diff --git a/lib/lp/bugs/tests/buglinktarget.txt b/lib/lp/bugs/tests/buglinktarget.txt
index 119c94e..305fa6a 100644
--- a/lib/lp/bugs/tests/buglinktarget.txt
+++ b/lib/lp/bugs/tests/buglinktarget.txt
@@ -78,7 +78,7 @@ Of course, if no new link is created, no events should be fired:
78Anonymous users cannot use linkBug():78Anonymous users cannot use linkBug():
7979
80 >>> login(ANONYMOUS)80 >>> login(ANONYMOUS)
81 >>> target.linkBug(bug2) # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON281 >>> target.linkBug(bug2)
82 Traceback (most recent call last):82 Traceback (most recent call last):
83 ...83 ...
84 zope.security.interfaces.Unauthorized: ...84 zope.security.interfaces.Unauthorized: ...
@@ -91,7 +91,6 @@ if they are an administrator:
91 >>> private_bug.setPrivate(True, factory.makePerson())91 >>> private_bug.setPrivate(True, factory.makePerson())
92 True92 True
93 >>> target.linkBug(private_bug, factory.makePerson())93 >>> target.linkBug(private_bug, factory.makePerson())
94 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
95 Traceback (most recent call last):94 Traceback (most recent call last):
96 ...95 ...
97 zope.security.interfaces.Unauthorized: ...96 zope.security.interfaces.Unauthorized: ...
@@ -121,7 +120,6 @@ This method is only available to registered users:
121120
122 >>> login(ANONYMOUS)121 >>> login(ANONYMOUS)
123 >>> target.unlinkBug(bug2, None)122 >>> target.unlinkBug(bug2, None)
124 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
125 Traceback (most recent call last):123 Traceback (most recent call last):
126 ...124 ...
127 zope.security.interfaces.Unauthorized: ...125 zope.security.interfaces.Unauthorized: ...
@@ -164,7 +162,6 @@ A user can only remove a link to a private bug if they are subscribed to
164the bug or if they are an administrator.162the bug or if they are an administrator.
165163
166 >>> target.unlinkBug(private_bug)164 >>> target.unlinkBug(private_bug)
167 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
168 Traceback (most recent call last):165 Traceback (most recent call last):
169 ...166 ...
170 zope.security.interfaces.Unauthorized: ...167 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/bugs/tests/bugs-emailinterface.txt b/lib/lp/bugs/tests/bugs-emailinterface.txt
index b3e2402..452b6bf 100644
--- a/lib/lp/bugs/tests/bugs-emailinterface.txt
+++ b/lib/lp/bugs/tests/bugs-emailinterface.txt
@@ -430,7 +430,6 @@ IWeaklyAuthenticatedPrincipal was provided by the current principal, no
430changes was made to the bug, and the comment wasn't added.430changes was made to the bug, and the comment wasn't added.
431431
432 >>> added_message = getUtility(IMessageSet).get('<yada-yada-test2>')[0]432 >>> added_message = getUtility(IMessageSet).get('<yada-yada-test2>')[0]
433 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
434 Traceback (most recent call last):433 Traceback (most recent call last):
435 ...434 ...
436 lp.app.errors.NotFoundError: ...435 lp.app.errors.NotFoundError: ...
@@ -465,7 +464,6 @@ The same will happen if we send the same email without signing it:
465 >>> transaction.commit()464 >>> transaction.commit()
466465
467 >>> added_message = getUtility(IMessageSet).get('<yada-yada-test2>')[0]466 >>> added_message = getUtility(IMessageSet).get('<yada-yada-test2>')[0]
468 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
469 Traceback (most recent call last):467 Traceback (most recent call last):
470 ...468 ...
471 lp.app.errors.NotFoundError: ...469 lp.app.errors.NotFoundError: ...
diff --git a/lib/lp/bugs/tests/bugzilla-api-xmlrpc-transport.txt b/lib/lp/bugs/tests/bugzilla-api-xmlrpc-transport.txt
index 2d3cad2..ce0f317 100644
--- a/lib/lp/bugs/tests/bugzilla-api-xmlrpc-transport.txt
+++ b/lib/lp/bugs/tests/bugzilla-api-xmlrpc-transport.txt
@@ -52,7 +52,6 @@ an error being raised.
5252
53 >>> server.User.login(53 >>> server.User.login(
54 ... {'login': 'test@canonical.com', 'password': 'test'})54 ... {'login': 'test@canonical.com', 'password': 'test'})
55 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
56 Traceback (most recent call last):55 Traceback (most recent call last):
57 ...56 ...
58 xmlrpc.client.Fault: <Fault 300: 'The username or password you entered is not valid.'>57 xmlrpc.client.Fault: <Fault 300: 'The username or password you entered is not valid.'>
@@ -455,7 +454,6 @@ add_comment() requires authentication.
455454
456 >>> bugzilla_transport.expireCookie(bugzilla_transport.auth_cookie)455 >>> bugzilla_transport.expireCookie(bugzilla_transport.auth_cookie)
457 >>> server.Bug.add_comment({'id': 1, 'comment': "This won't work"})456 >>> server.Bug.add_comment({'id': 1, 'comment': "This won't work"})
458 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
459 Traceback (most recent call last):457 Traceback (most recent call last):
460 ...458 ...
461 xmlrpc.client.Fault: <Fault 410: 'Login Required'>459 xmlrpc.client.Fault: <Fault 410: 'Login Required'>
@@ -492,7 +490,6 @@ If add_comment is called on a bug that doesn't exist a fault will be
492raised.490raised.
493491
494 >>> server.Bug.add_comment({'id': 42, 'comment': "This breaks"})492 >>> server.Bug.add_comment({'id': 42, 'comment': "This breaks"})
495 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
496 Traceback (most recent call last):493 Traceback (most recent call last):
497 ...494 ...
498 xmlrpc.client.Fault: <Fault 101: 'Bug #42 does not exist.'>495 xmlrpc.client.Fault: <Fault 101: 'Bug #42 does not exist.'>
@@ -545,7 +542,6 @@ Trying to add a non Bugzilla or Launchpad URL will raise a Fault.
545542
546 >>> server.Bug.update_see_also({543 >>> server.Bug.update_see_also({
547 ... 'ids': [1], 'add': ['http://example.com/fail']});544 ... 'ids': [1], 'add': ['http://example.com/fail']});
548 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
549 Traceback (most recent call last):545 Traceback (most recent call last):
550 ...546 ...
551 xmlrpc.client.Fault: <Fault 112: 'Bug URL http://example.com/fail is invalid.'>547 xmlrpc.client.Fault: <Fault 112: 'Bug URL http://example.com/fail is invalid.'>
diff --git a/lib/lp/bugs/tests/bugzilla-xmlrpc-transport.txt b/lib/lp/bugs/tests/bugzilla-xmlrpc-transport.txt
index f7f7027..445dbc6 100644
--- a/lib/lp/bugs/tests/bugzilla-xmlrpc-transport.txt
+++ b/lib/lp/bugs/tests/bugzilla-xmlrpc-transport.txt
@@ -51,7 +51,6 @@ Authentication
51Some methods require authentication.51Some methods require authentication.
5252
53 >>> server.Test.login_required()53 >>> server.Test.login_required()
54 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
55 Traceback (most recent call last):54 Traceback (most recent call last):
56 ...55 ...
57 xmlrpc.client.Fault: <Fault 410: 'Login Required'>56 xmlrpc.client.Fault: <Fault 410: 'Login Required'>
@@ -439,7 +438,6 @@ add_comment() requires authentication.
439438
440 >>> bugzilla_transport.expireCookie(bugzilla_transport.auth_cookie)439 >>> bugzilla_transport.expireCookie(bugzilla_transport.auth_cookie)
441 >>> server.Launchpad.add_comment({'id': 1, 'comment': "This won't work"})440 >>> server.Launchpad.add_comment({'id': 1, 'comment': "This won't work"})
442 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
443 Traceback (most recent call last):441 Traceback (most recent call last):
444 ...442 ...
445 xmlrpc.client.Fault: <Fault 410: 'Login Required'>443 xmlrpc.client.Fault: <Fault 410: 'Login Required'>
@@ -471,7 +469,6 @@ If add_comment is called on a bug that doesn't exist a fault will be
471raised.469raised.
472470
473 >>> server.Launchpad.add_comment({'id': 42, 'comment': "This won't work"})471 >>> server.Launchpad.add_comment({'id': 42, 'comment': "This won't work"})
474 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
475 Traceback (most recent call last):472 Traceback (most recent call last):
476 ...473 ...
477 xmlrpc.client.Fault: <Fault 101: 'Bug #42 does not exist.'>474 xmlrpc.client.Fault: <Fault 101: 'Bug #42 does not exist.'>
@@ -489,7 +486,6 @@ Launchpad.set_link() requires authentication.
489486
490 >>> bugzilla_transport.expireCookie(bugzilla_transport.auth_cookie)487 >>> bugzilla_transport.expireCookie(bugzilla_transport.auth_cookie)
491 >>> server.Launchpad.set_link({'id': 1, 'launchpad_id': 1})488 >>> server.Launchpad.set_link({'id': 1, 'launchpad_id': 1})
492 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
493 Traceback (most recent call last):489 Traceback (most recent call last):
494 ...490 ...
495 xmlrpc.client.Fault: <Fault 410: 'Login Required'>491 xmlrpc.client.Fault: <Fault 410: 'Login Required'>
diff --git a/lib/lp/bugs/tests/externalbugtracker-xmlrpc-transport.txt b/lib/lp/bugs/tests/externalbugtracker-xmlrpc-transport.txt
index a18a9fd..53305fb 100644
--- a/lib/lp/bugs/tests/externalbugtracker-xmlrpc-transport.txt
+++ b/lib/lp/bugs/tests/externalbugtracker-xmlrpc-transport.txt
@@ -89,7 +89,6 @@ If an error occurs trying to make the request, an
89 ... requests_mock.add(89 ... requests_mock.add(
90 ... 'POST', 'http://www.example.com/xmlrpc', status=500)90 ... 'POST', 'http://www.example.com/xmlrpc', status=500)
91 ... transport.request('www.example.com', 'xmlrpc', request_body)91 ... transport.request('www.example.com', 'xmlrpc', request_body)
92 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
93 Traceback (most recent call last):92 Traceback (most recent call last):
94 ...93 ...
95 xmlrpc.client.ProtocolError: <ProtocolError for http://www.example.com/xmlrpc: 500 Internal Server Error>94 xmlrpc.client.ProtocolError: <ProtocolError for http://www.example.com/xmlrpc: 500 Internal Server Error>
diff --git a/lib/lp/bugs/tests/trac-xmlrpc-transport.txt b/lib/lp/bugs/tests/trac-xmlrpc-transport.txt
index 7f52f95..8703cb3 100644
--- a/lib/lp/bugs/tests/trac-xmlrpc-transport.txt
+++ b/lib/lp/bugs/tests/trac-xmlrpc-transport.txt
@@ -16,7 +16,6 @@ installed implement.
16All the methods need an authentication cookie to be sent.16All the methods need an authentication cookie to be sent.
1717
18 >>> server.launchpad.bugtracker_version()18 >>> server.launchpad.bugtracker_version()
19 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
20 Traceback (most recent call last):19 Traceback (most recent call last):
21 ...20 ...
22 xmlrpc.client.ProtocolError: <... 403 Forbidden>21 xmlrpc.client.ProtocolError: <... 403 Forbidden>
@@ -315,7 +314,6 @@ Calling `launchpad.get_launchpad_bug()` on a remote bug that doesn't
315exist will result in a Fault being raised.314exist will result in a Fault being raised.
316315
317 >>> trac_transport.get_launchpad_bug('12345')316 >>> trac_transport.get_launchpad_bug('12345')
318 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
319 Traceback (most recent call last):317 Traceback (most recent call last):
320 ...318 ...
321 xmlrpc.client.Fault: <Fault 1001: 'Ticket does not exist'>319 xmlrpc.client.Fault: <Fault 1001: 'Ticket does not exist'>
@@ -341,7 +339,6 @@ Trying to call `launchpad.set_launchpad_bug()` on a remote bug that
341doesn't exist will result in a Fault.339doesn't exist will result in a Fault.
342340
343 >>> trac_transport.set_launchpad_bug('12345', 1)341 >>> trac_transport.set_launchpad_bug('12345', 1)
344 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
345 Traceback (most recent call last):342 Traceback (most recent call last):
346 ...343 ...
347 xmlrpc.client.Fault: <Fault 1001: 'Ticket does not exist'>344 xmlrpc.client.Fault: <Fault 1001: 'Ticket does not exist'>
diff --git a/lib/lp/buildmaster/doc/builder.txt b/lib/lp/buildmaster/doc/builder.txt
index e3620e9..af1c423 100644
--- a/lib/lp/buildmaster/doc/builder.txt
+++ b/lib/lp/buildmaster/doc/builder.txt
@@ -64,7 +64,6 @@ And also by ID.
64 >>> print(builderset.get(2).name)64 >>> print(builderset.get(2).name)
65 frog65 frog
66 >>> print(builderset.get(100).name)66 >>> print(builderset.get(100).name)
67 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
68 Traceback (most recent call last):67 Traceback (most recent call last):
69 ...68 ...
70 lp.app.errors.NotFoundError: 10069 lp.app.errors.NotFoundError: 100
diff --git a/lib/lp/buildmaster/stories/xx-builder-page.txt b/lib/lp/buildmaster/stories/xx-builder-page.txt
index 65ded43..3082ddb 100644
--- a/lib/lp/buildmaster/stories/xx-builder-page.txt
+++ b/lib/lp/buildmaster/stories/xx-builder-page.txt
@@ -266,7 +266,6 @@ Farm list. Celso cannot see the link to it.
266 386 1 empty266 386 1 empty
267267
268 >>> cprov_browser.getLink('bob').click()268 >>> cprov_browser.getLink('bob').click()
269 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
270 Traceback (most recent call last):269 Traceback (most recent call last):
271 ...270 ...
272 zope.testbrowser.browser.LinkNotFoundError271 zope.testbrowser.browser.LinkNotFoundError
@@ -286,7 +285,6 @@ Change details link.
286285
287 >>> user_browser.open("http://localhost/+builds/bob")286 >>> user_browser.open("http://localhost/+builds/bob")
288 >>> user_browser.getLink('Change details')287 >>> user_browser.getLink('Change details')
289 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
290 Traceback (most recent call last):288 Traceback (most recent call last):
291 zope.testbrowser.browser.LinkNotFoundError289 zope.testbrowser.browser.LinkNotFoundError
292290
@@ -299,7 +297,6 @@ Nor is the toggle mode control included on the index page.
299Nor can they access the edit page directly via URL.297Nor can they access the edit page directly via URL.
300298
301 >>> user_browser.open("http://localhost/+builds/bob/+edit")299 >>> user_browser.open("http://localhost/+builds/bob/+edit")
302 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
303 Traceback (most recent call last):300 Traceback (most recent call last):
304 ...301 ...
305 zope.security.interfaces.Unauthorized: ...302 zope.security.interfaces.Unauthorized: ...
@@ -308,7 +305,6 @@ The same is true for the anonymous user:
308305
309 >>> anon_browser.open("http://localhost/+builds/bob")306 >>> anon_browser.open("http://localhost/+builds/bob")
310 >>> anon_browser.getLink('Change details')307 >>> anon_browser.getLink('Change details')
311 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
312 Traceback (most recent call last):308 Traceback (most recent call last):
313 zope.testbrowser.browser.LinkNotFoundError309 zope.testbrowser.browser.LinkNotFoundError
314310
@@ -318,7 +314,6 @@ The same is true for the anonymous user:
318 ...314 ...
319315
320 >>> anon_browser.open("http://localhost/+builds/bob/+edit")316 >>> anon_browser.open("http://localhost/+builds/bob/+edit")
321 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
322 Traceback (most recent call last):317 Traceback (most recent call last):
323 ...318 ...
324 zope.security.interfaces.Unauthorized: ...319 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/buildmaster/stories/xx-buildfarm-index.txt b/lib/lp/buildmaster/stories/xx-buildfarm-index.txt
index 16932a5..9b77408 100644
--- a/lib/lp/buildmaster/stories/xx-buildfarm-index.txt
+++ b/lib/lp/buildmaster/stories/xx-buildfarm-index.txt
@@ -110,13 +110,11 @@ and are not permitted if they go directly to the URL.
110110
111 >>> anon_browser.open("http://launchpad.test/+builds/+index")111 >>> anon_browser.open("http://launchpad.test/+builds/+index")
112 >>> anon_browser.getLink("Register a new build machine")112 >>> anon_browser.getLink("Register a new build machine")
113 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
114 Traceback (most recent call last):113 Traceback (most recent call last):
115 ...114 ...
116 zope.testbrowser.browser.LinkNotFoundError115 zope.testbrowser.browser.LinkNotFoundError
117116
118 >>> anon_browser.open("http://launchpad.test/+builds/+new")117 >>> anon_browser.open("http://launchpad.test/+builds/+new")
119 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
120 Traceback (most recent call last):118 Traceback (most recent call last):
121 ...119 ...
122 zope.security.interfaces.Unauthorized: ..., 'launchpad.Admin')120 zope.security.interfaces.Unauthorized: ..., 'launchpad.Admin')
diff --git a/lib/lp/code/doc/branch.txt b/lib/lp/code/doc/branch.txt
index 9f8e8aa..0334752 100644
--- a/lib/lp/code/doc/branch.txt
+++ b/lib/lp/code/doc/branch.txt
@@ -120,7 +120,6 @@ are writable, but the owner can be set using the `setOwner` method.
120120
121 >>> login('admin@canonical.com')121 >>> login('admin@canonical.com')
122 >>> new_branch.registrant = factory.makePerson()122 >>> new_branch.registrant = factory.makePerson()
123 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
124 Traceback (most recent call last):123 Traceback (most recent call last):
125 ...124 ...
126 zope.security.interfaces.ForbiddenAttribute: ('registrant', <Branch ...>)125 zope.security.interfaces.ForbiddenAttribute: ('registrant', <Branch ...>)
@@ -140,7 +139,6 @@ and -, +, _ and @ are allowed after that.
140 >>> namespace.createBranch(139 >>> namespace.createBranch(
141 ... branch_type=BranchType.HOSTED, name='invalid name!',140 ... branch_type=BranchType.HOSTED, name='invalid name!',
142 ... registrant=registrant)141 ... registrant=registrant)
143 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
144 Traceback (most recent call last):142 Traceback (most recent call last):
145 ...143 ...
146 lp.app.validators.LaunchpadValidationError: Invalid branch name &#x27;invalid name!&#x27;. Branch ...144 lp.app.validators.LaunchpadValidationError: Invalid branch name &#x27;invalid name!&#x27;. Branch ...
diff --git a/lib/lp/code/doc/codeimport-machine.txt b/lib/lp/code/doc/codeimport-machine.txt
index e24d9b6..6a963e6 100644
--- a/lib/lp/code/doc/codeimport-machine.txt
+++ b/lib/lp/code/doc/codeimport-machine.txt
@@ -107,7 +107,6 @@ permitted.
107 OFFLINE107 OFFLINE
108108
109 >>> new_machine.state = CodeImportMachineState.ONLINE109 >>> new_machine.state = CodeImportMachineState.ONLINE
110 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
111 Traceback (most recent call last):110 Traceback (most recent call last):
112 ...111 ...
113 zope.security.interfaces.ForbiddenAttribute: ...112 zope.security.interfaces.ForbiddenAttribute: ...
diff --git a/lib/lp/code/doc/codeimport.txt b/lib/lp/code/doc/codeimport.txt
index c12d96b..f6770f0 100644
--- a/lib/lp/code/doc/codeimport.txt
+++ b/lib/lp/code/doc/codeimport.txt
@@ -430,7 +430,6 @@ When you ask for an id that is not present ICodeImportSet.get() raises
430lp.app.errors.NotFoundError, rather than some internal database exception.430lp.app.errors.NotFoundError, rather than some internal database exception.
431431
432 >>> code_import_set.get(-10)432 >>> code_import_set.get(-10)
433 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
434 Traceback (most recent call last):433 Traceback (most recent call last):
435 ...434 ...
436 lp.app.errors.NotFoundError: -10435 lp.app.errors.NotFoundError: -10
@@ -471,7 +470,6 @@ on those objects.
471 >>> print(svn_import.url)470 >>> print(svn_import.url)
472 svn://svn.example.com/trunk471 svn://svn.example.com/trunk
473 >>> svn_import.url = 'svn://svn.example.com/branch/1.0'472 >>> svn_import.url = 'svn://svn.example.com/branch/1.0'
474 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
475 Traceback (most recent call last):473 Traceback (most recent call last):
476 ...474 ...
477 zope.security.interfaces.ForbiddenAttribute: ('url', <CodeImport ...>)475 zope.security.interfaces.ForbiddenAttribute: ('url', <CodeImport ...>)
@@ -497,7 +495,6 @@ The launchpad.Edit privilege is required to use CodeImport.updateFromData.
497495
498 >>> login(ANONYMOUS)496 >>> login(ANONYMOUS)
499 >>> svn_import.updateFromData({}, nopriv)497 >>> svn_import.updateFromData({}, nopriv)
500 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
501 Traceback (most recent call last):498 Traceback (most recent call last):
502 ...499 ...
503 zope.security.interfaces.Unauthorized: (<CodeImport ...>, 'updateFromData', 'launchpad.Moderate')500 zope.security.interfaces.Unauthorized: (<CodeImport ...>, 'updateFromData', 'launchpad.Moderate')
diff --git a/lib/lp/code/stories/branches/xx-branch-edit.txt b/lib/lp/code/stories/branches/xx-branch-edit.txt
index f493201..7498979 100644
--- a/lib/lp/code/stories/branches/xx-branch-edit.txt
+++ b/lib/lp/code/stories/branches/xx-branch-edit.txt
@@ -32,7 +32,6 @@ owner, Launchpad administrators or members of the Bazaar Experts team.
32 >>> nopriv_browser.open(32 >>> nopriv_browser.open(
33 ... 'http://code.launchpad.test/~name12/gnome-terminal/klingon')33 ... 'http://code.launchpad.test/~name12/gnome-terminal/klingon')
34 >>> link = nopriv_browser.getLink('Change branch details')34 >>> link = nopriv_browser.getLink('Change branch details')
35 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
36 Traceback (most recent call last):35 Traceback (most recent call last):
37 zope.testbrowser.browser.LinkNotFoundError36 zope.testbrowser.browser.LinkNotFoundError
3837
diff --git a/lib/lp/code/stories/branches/xx-branch-reference.txt b/lib/lp/code/stories/branches/xx-branch-reference.txt
index 31fba80..a308c33 100644
--- a/lib/lp/code/stories/branches/xx-branch-reference.txt
+++ b/lib/lp/code/stories/branches/xx-branch-reference.txt
@@ -56,7 +56,6 @@ a 404 error:
5656
57 >>> anon_browser.open('http://launchpad.test/'57 >>> anon_browser.open('http://launchpad.test/'
58 ... 'firefox/1.0/.bzr/branch/location')58 ... 'firefox/1.0/.bzr/branch/location')
59 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
60 Traceback (most recent call last):59 Traceback (most recent call last):
61 ...60 ...
62 zope.publisher.interfaces.NotFound: ... '.bzr'61 zope.publisher.interfaces.NotFound: ... '.bzr'
@@ -80,7 +79,6 @@ associated with it, we get a 404 error:
8079
81 >>> anon_browser.open('http://launchpad.test/'80 >>> anon_browser.open('http://launchpad.test/'
82 ... 'firefox/.bzr/branch/location')81 ... 'firefox/.bzr/branch/location')
83 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
84 Traceback (most recent call last):82 Traceback (most recent call last):
85 ...83 ...
86 zope.publisher.interfaces.NotFound: ... '.bzr'84 zope.publisher.interfaces.NotFound: ... '.bzr'
diff --git a/lib/lp/code/stories/branches/xx-branchmergeproposals.txt b/lib/lp/code/stories/branches/xx-branchmergeproposals.txt
index 798c6d0..882a87e 100644
--- a/lib/lp/code/stories/branches/xx-branchmergeproposals.txt
+++ b/lib/lp/code/stories/branches/xx-branchmergeproposals.txt
@@ -196,7 +196,6 @@ People not logged in cannot perform reviews.
196196
197 >>> anon_browser.open(klingon_proposal)197 >>> anon_browser.open(klingon_proposal)
198 >>> link = anon_browser.getLink('[Review]')198 >>> link = anon_browser.getLink('[Review]')
199 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
200 Traceback (most recent call last):199 Traceback (most recent call last):
201 zope.testbrowser.browser.LinkNotFoundError200 zope.testbrowser.browser.LinkNotFoundError
202201
@@ -529,7 +528,6 @@ shown for junk branches.
529 >>> nopriv_browser.open(528 >>> nopriv_browser.open(
530 ... 'http://code.launchpad.test/~mark/+junk/testdoc')529 ... 'http://code.launchpad.test/~mark/+junk/testdoc')
531 >>> nopriv_browser.getLink('Propose for merging').click()530 >>> nopriv_browser.getLink('Propose for merging').click()
532 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
533 Traceback (most recent call last):531 Traceback (most recent call last):
534 ...532 ...
535 zope.testbrowser.browser.LinkNotFoundError533 zope.testbrowser.browser.LinkNotFoundError
@@ -539,7 +537,6 @@ they'll get a 404.
539537
540 >>> nopriv_browser.open(538 >>> nopriv_browser.open(
541 ... 'http://code.launchpad.test/~mark/+junk/testdoc/+register-merge')539 ... 'http://code.launchpad.test/~mark/+junk/testdoc/+register-merge')
542 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
543 Traceback (most recent call last):540 Traceback (most recent call last):
544 ...541 ...
545 zope.publisher.interfaces.NotFound: ...542 zope.publisher.interfaces.NotFound: ...
diff --git a/lib/lp/code/stories/branches/xx-bug-branch-links.txt b/lib/lp/code/stories/branches/xx-bug-branch-links.txt
index f7462e8..3661261 100644
--- a/lib/lp/code/stories/branches/xx-bug-branch-links.txt
+++ b/lib/lp/code/stories/branches/xx-bug-branch-links.txt
@@ -19,7 +19,6 @@ if the user is not logged in, they will be asked to log in.
19 >>> anon_browser.open(19 >>> anon_browser.open(
20 ... 'http://code.launchpad.test/~name12/gnome-terminal/klingon')20 ... 'http://code.launchpad.test/~name12/gnome-terminal/klingon')
21 >>> anon_browser.getLink('Link a bug report').click()21 >>> anon_browser.getLink('Link a bug report').click()
22 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
23 Traceback (most recent call last):22 Traceback (most recent call last):
24 ...23 ...
25 zope.security.interfaces.Unauthorized: (...launchpad.AnyPerson')24 zope.security.interfaces.Unauthorized: (...launchpad.AnyPerson')
@@ -106,7 +105,6 @@ links to a page restricted with the launchpad.AnyPerson permission.
106 >>> anon_browser.open(105 >>> anon_browser.open(
107 ... 'http://launchpad.test/bugs/11')106 ... 'http://launchpad.test/bugs/11')
108 >>> anon_browser.getLink('Link a related branch').click()107 >>> anon_browser.getLink('Link a related branch').click()
109 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
110 Traceback (most recent call last):108 Traceback (most recent call last):
111 ...109 ...
112 zope.security.interfaces.Unauthorized: (...launchpad.AnyPerson')110 zope.security.interfaces.Unauthorized: (...launchpad.AnyPerson')
diff --git a/lib/lp/code/stories/branches/xx-code-review-comments.txt b/lib/lp/code/stories/branches/xx-code-review-comments.txt
index 9cc4178..0d075f6 100644
--- a/lib/lp/code/stories/branches/xx-code-review-comments.txt
+++ b/lib/lp/code/stories/branches/xx-code-review-comments.txt
@@ -55,7 +55,6 @@ The person's name links back to the main site for that person.
55Reply link is displayed even if the user isn't logged in.55Reply link is displayed even if the user isn't logged in.
5656
57 >>> anon_browser.getLink('Reply').click()57 >>> anon_browser.getLink('Reply').click()
58 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
59 Traceback (most recent call last):58 Traceback (most recent call last):
60 zope.security.interfaces.Unauthorized: ...59 zope.security.interfaces.Unauthorized: ...
6160
diff --git a/lib/lp/code/stories/branches/xx-subscribing-branches.txt b/lib/lp/code/stories/branches/xx-subscribing-branches.txt
index f240f47..1974c42 100644
--- a/lib/lp/code/stories/branches/xx-subscribing-branches.txt
+++ b/lib/lp/code/stories/branches/xx-subscribing-branches.txt
@@ -28,7 +28,6 @@ In order to subscribe to a branch, the user must be logged in.
28 >>> anon_browser.open(28 >>> anon_browser.open(
29 ... 'http://code.launchpad.test/~name12/gnome-terminal/main')29 ... 'http://code.launchpad.test/~name12/gnome-terminal/main')
30 >>> anon_browser.getLink('Subscribe')30 >>> anon_browser.getLink('Subscribe')
31 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
32 Traceback (most recent call last):31 Traceback (most recent call last):
33 ...32 ...
34 zope.testbrowser.browser.LinkNotFoundError33 zope.testbrowser.browser.LinkNotFoundError
@@ -148,7 +147,6 @@ You need to be logged in to see the link.
148 >>> anon_browser.open(147 >>> anon_browser.open(
149 ... 'http://code.launchpad.test/~name12/gnome-terminal/main')148 ... 'http://code.launchpad.test/~name12/gnome-terminal/main')
150 >>> anon_browser.getLink('Subscribe someone else')149 >>> anon_browser.getLink('Subscribe someone else')
151 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
152 Traceback (most recent call last):150 Traceback (most recent call last):
153 ...151 ...
154 zope.testbrowser.browser.LinkNotFoundError152 zope.testbrowser.browser.LinkNotFoundError
diff --git a/lib/lp/code/stories/branches/xx-upgrading-branches.txt b/lib/lp/code/stories/branches/xx-upgrading-branches.txt
index a824a94..042804c 100644
--- a/lib/lp/code/stories/branches/xx-upgrading-branches.txt
+++ b/lib/lp/code/stories/branches/xx-upgrading-branches.txt
@@ -32,7 +32,6 @@ Only those with edit permissions on a branch can request an upgrade.
32 ... auth='Basic nopriv@canonical.com:test')32 ... auth='Basic nopriv@canonical.com:test')
33 >>> nopriv_browser.open(branch_url)33 >>> nopriv_browser.open(branch_url)
34 >>> link = nopriv_browser.getLink('Upgrade this branch')34 >>> link = nopriv_browser.getLink('Upgrade this branch')
35 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
36 Traceback (most recent call last):35 Traceback (most recent call last):
37 zope.testbrowser.browser.LinkNotFoundError36 zope.testbrowser.browser.LinkNotFoundError
3837
diff --git a/lib/lp/code/stories/codeimport/xx-create-codeimport.txt b/lib/lp/code/stories/codeimport/xx-create-codeimport.txt
index 93de21b..9f338f0 100644
--- a/lib/lp/code/stories/codeimport/xx-create-codeimport.txt
+++ b/lib/lp/code/stories/codeimport/xx-create-codeimport.txt
@@ -32,7 +32,6 @@ link on the main branch listing page for the product.
3232
33 >>> browser.open('http://code.launchpad.test/firefox')33 >>> browser.open('http://code.launchpad.test/firefox')
34 >>> browser.getLink('Import a branch').click()34 >>> browser.getLink('Import a branch').click()
35 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
36 Traceback (most recent call last):35 Traceback (most recent call last):
37 ...36 ...
38 zope.testbrowser.browser.LinkNotFoundError37 zope.testbrowser.browser.LinkNotFoundError
diff --git a/lib/lp/code/stories/codeimport/xx-edit-codeimport.txt b/lib/lp/code/stories/codeimport/xx-edit-codeimport.txt
index 622a63f..f11fc01 100644
--- a/lib/lp/code/stories/codeimport/xx-edit-codeimport.txt
+++ b/lib/lp/code/stories/codeimport/xx-edit-codeimport.txt
@@ -54,7 +54,6 @@ do not get an Edit link.
54Because it's an svn:// URL, it doesn't get linkified:54Because it's an svn:// URL, it doesn't get linkified:
5555
56 >>> anon_browser.getLink("svn://svn.example.com/fooix/trunk")56 >>> anon_browser.getLink("svn://svn.example.com/fooix/trunk")
57 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
58 Traceback (most recent call last):57 Traceback (most recent call last):
59 ...58 ...
60 zope.testbrowser.browser.LinkNotFoundError59 zope.testbrowser.browser.LinkNotFoundError
@@ -68,12 +67,10 @@ they will get a not authorised page if the branch has a code import,
68and a 404 if the branch doesn't have an import.67and a 404 if the branch doesn't have an import.
6968
70 >>> anon_browser.open(svn_import_location + '/+edit-import')69 >>> anon_browser.open(svn_import_location + '/+edit-import')
71 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
72 Traceback (most recent call last):70 Traceback (most recent call last):
73 zope.security.interfaces.Unauthorized: (... 'launchpad.Edit')71 zope.security.interfaces.Unauthorized: (... 'launchpad.Edit')
7472
75 >>> admin_browser.open(hosted_branch_location + '/+edit-import')73 >>> admin_browser.open(hosted_branch_location + '/+edit-import')
76 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
77 Traceback (most recent call last):74 Traceback (most recent call last):
78 lp.app.errors.NotFoundError75 lp.app.errors.NotFoundError
7976
diff --git a/lib/lp/coop/answersbugs/stories/question-buglink.txt b/lib/lp/coop/answersbugs/stories/question-buglink.txt
index c5c71f8..764bbd2 100644
--- a/lib/lp/coop/answersbugs/stories/question-buglink.txt
+++ b/lib/lp/coop/answersbugs/stories/question-buglink.txt
@@ -17,7 +17,6 @@ This link is only available to registered user:
17 >>> anon_browser.open(17 >>> anon_browser.open(
18 ... 'http://launchpad.test/firefox/+question/2')18 ... 'http://launchpad.test/firefox/+question/2')
19 >>> anon_browser.getLink(url='+linkbug').click()19 >>> anon_browser.getLink(url='+linkbug').click()
20 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
21 Traceback (most recent call last):20 Traceback (most recent call last):
22 ...21 ...
23 zope.security.interfaces.Unauthorized: ...22 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/coop/answersbugs/stories/question-makebug.txt b/lib/lp/coop/answersbugs/stories/question-makebug.txt
index 34bf516..0399135 100644
--- a/lib/lp/coop/answersbugs/stories/question-makebug.txt
+++ b/lib/lp/coop/answersbugs/stories/question-makebug.txt
@@ -66,7 +66,6 @@ to it.
66 >>> browser.contents66 >>> browser.contents
67 '...<h3>Related bugs</h3>...'67 '...<h3>Related bugs</h3>...'
68 >>> browser.getLink('Create bug report')68 >>> browser.getLink('Create bug report')
69 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
70 Traceback (most recent call last):69 Traceback (most recent call last):
71 ..70 ..
72 zope.testbrowser.browser.LinkNotFoundError71 zope.testbrowser.browser.LinkNotFoundError
diff --git a/lib/lp/registry/browser/tests/gpg-views.txt b/lib/lp/registry/browser/tests/gpg-views.txt
index 7682722..dcb4257 100644
--- a/lib/lp/registry/browser/tests/gpg-views.txt
+++ b/lib/lp/registry/browser/tests/gpg-views.txt
@@ -133,7 +133,6 @@ validation.
133In some unknown way, the action sent to the form can be None (see bug 520476).133In some unknown way, the action sent to the form can be None (see bug 520476).
134134
135 >>> view = post_fingerprint(good_fingerprint, action=None)135 >>> view = post_fingerprint(good_fingerprint, action=None)
136 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
137 Traceback (most recent call last):136 Traceback (most recent call last):
138 ...137 ...
139 lp.app.errors.UnexpectedFormData: Action not permitted: None138 lp.app.errors.UnexpectedFormData: Action not permitted: None
diff --git a/lib/lp/registry/browser/tests/product-views.txt b/lib/lp/registry/browser/tests/product-views.txt
index 0f567b4..fca5d24 100644
--- a/lib/lp/registry/browser/tests/product-views.txt
+++ b/lib/lp/registry/browser/tests/product-views.txt
@@ -126,7 +126,6 @@ cannot access the page.
126 >>> view = create_initialized_view(firefox, name='+index')126 >>> view = create_initialized_view(firefox, name='+index')
127127
128 >>> view = create_initialized_view(firefox, name='+review-license')128 >>> view = create_initialized_view(firefox, name='+review-license')
129 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
130 Traceback (most recent call last):129 Traceback (most recent call last):
131 ...130 ...
132 zope.security.interfaces.Unauthorized: (<Product..., 'project_reviewed', 'launchpad.Moderate')131 zope.security.interfaces.Unauthorized: (<Product..., 'project_reviewed', 'launchpad.Moderate')
diff --git a/lib/lp/registry/browser/tests/team-views.txt b/lib/lp/registry/browser/tests/team-views.txt
index 07232ef..9af0adb 100644
--- a/lib/lp/registry/browser/tests/team-views.txt
+++ b/lib/lp/registry/browser/tests/team-views.txt
@@ -61,7 +61,6 @@ Posting malformed data to the team home page raises an error.
61 >>> team_home = getMultiAdapter(61 >>> team_home = getMultiAdapter(
62 ... (ubuntu_team, broken_request), name='+index')62 ... (ubuntu_team, broken_request), name='+index')
63 >>> team_home.initialize()63 >>> team_home.initialize()
64 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
65 Traceback (most recent call last):64 Traceback (most recent call last):
66 ...65 ...
67 lp.app.errors.UnexpectedFormData: The mailing list form did not receive the expected form fields.66 lp.app.errors.UnexpectedFormData: The mailing list form did not receive the expected form fields.
diff --git a/lib/lp/registry/doc/announcement.txt b/lib/lp/registry/doc/announcement.txt
index 0287d58..e916ec3 100644
--- a/lib/lp/registry/doc/announcement.txt
+++ b/lib/lp/registry/doc/announcement.txt
@@ -187,17 +187,14 @@ modify() method.
187187
188 >>> login('mark@example.com')188 >>> login('mark@example.com')
189 >>> kubuntu_release.title = 'Foo'189 >>> kubuntu_release.title = 'Foo'
190 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
191 Traceback (most recent call last):190 Traceback (most recent call last):
192 ...191 ...
193 zope.security.interfaces.ForbiddenAttribute: ...192 zope.security.interfaces.ForbiddenAttribute: ...
194 >>> kubuntu_release.summary = 'Foo'193 >>> kubuntu_release.summary = 'Foo'
195 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
196 Traceback (most recent call last):194 Traceback (most recent call last):
197 ...195 ...
198 zope.security.interfaces.ForbiddenAttribute: ...196 zope.security.interfaces.ForbiddenAttribute: ...
199 >>> kubuntu_release.url = 'http://Foo.com/foo'197 >>> kubuntu_release.url = 'http://Foo.com/foo'
200 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
201 Traceback (most recent call last):198 Traceback (most recent call last):
202 ...199 ...
203 zope.security.interfaces.ForbiddenAttribute: ...200 zope.security.interfaces.ForbiddenAttribute: ...
diff --git a/lib/lp/registry/doc/commercialsubscription.txt b/lib/lp/registry/doc/commercialsubscription.txt
index 3a60b44..851b264 100644
--- a/lib/lp/registry/doc/commercialsubscription.txt
+++ b/lib/lp/registry/doc/commercialsubscription.txt
@@ -357,7 +357,6 @@ No Privileges Person cannot access 'forReview'.
357 >>> check_permission('launchpad.Moderate', product_set)357 >>> check_permission('launchpad.Moderate', product_set)
358 False358 False
359 >>> gnome = product_set.forReview(commercial_member, search_text='gnome')359 >>> gnome = product_set.forReview(commercial_member, search_text='gnome')
360 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
361 Traceback (most recent call last):360 Traceback (most recent call last):
362 ...361 ...
363 zope.security.interfaces.Unauthorized: ... 'forReview', 'launchpad.Moderate'...362 zope.security.interfaces.Unauthorized: ... 'forReview', 'launchpad.Moderate'...
diff --git a/lib/lp/registry/doc/distribution-mirror.txt b/lib/lp/registry/doc/distribution-mirror.txt
index c9f1a6c..0b39afc 100644
--- a/lib/lp/registry/doc/distribution-mirror.txt
+++ b/lib/lp/registry/doc/distribution-mirror.txt
@@ -912,7 +912,6 @@ Only mirrors which have never been probed can be deleted this way.
912912
913 >>> ignored = login_person(cdimage_mirror.owner)913 >>> ignored = login_person(cdimage_mirror.owner)
914 >>> cdimage_mirror.destroySelf()914 >>> cdimage_mirror.destroySelf()
915 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
916 Traceback (most recent call last):915 Traceback (most recent call last):
917 ...916 ...
918 zope.security.interfaces.Unauthorized: ...917 zope.security.interfaces.Unauthorized: ...
@@ -960,7 +959,6 @@ for the status, however, they may not change it:
960 >>> de_archive_mirror.canTransitionToCountryMirror()959 >>> de_archive_mirror.canTransitionToCountryMirror()
961 True960 True
962 >>> de_archive_mirror.transitionToCountryMirror(True)961 >>> de_archive_mirror.transitionToCountryMirror(True)
963 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
964 Traceback (most recent call last):962 Traceback (most recent call last):
965 ...963 ...
966 zope.security.interfaces.Unauthorized: (<DistributionMirror at ...>, 'transitionToCountryMirror', 'launchpad.Admin')964 zope.security.interfaces.Unauthorized: (<DistributionMirror at ...>, 'transitionToCountryMirror', 'launchpad.Admin')
@@ -1002,7 +1000,6 @@ There cannot be multiple country mirrors of one type for one country:
10021000
1003 >>> davis_station_archive.transitionToCountryMirror(True)1001 >>> davis_station_archive.transitionToCountryMirror(True)
1004 >>> archive_mirror2.transitionToCountryMirror(True)1002 >>> archive_mirror2.transitionToCountryMirror(True)
1005 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
1006 Traceback (most recent call last):1003 Traceback (most recent call last):
1007 ...1004 ...
1008 lp.registry.errors.CountryMirrorAlreadySet: Antarctica already has a country Archive mirror set.1005 lp.registry.errors.CountryMirrorAlreadySet: Antarctica already has a country Archive mirror set.
@@ -1015,7 +1012,6 @@ Mirrors which have not been probed may not be marked as country mirrors:
1015 ... official_candidate=True)1012 ... official_candidate=True)
1016 >>> linux_au_mirror.status = MirrorStatus.OFFICIAL1013 >>> linux_au_mirror.status = MirrorStatus.OFFICIAL
1017 >>> linux_au_mirror.transitionToCountryMirror(True)1014 >>> linux_au_mirror.transitionToCountryMirror(True)
1018 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
1019 Traceback (most recent call last):1015 Traceback (most recent call last):
1020 ...1016 ...
1021 lp.registry.errors.MirrorNotProbed: This mirror may not be set as a country mirror as it has not been probed.1017 lp.registry.errors.MirrorNotProbed: This mirror may not be set as a country mirror as it has not been probed.
@@ -1036,13 +1032,11 @@ country mirrors:
1036 False1032 False
10371033
1038 >>> osuosl_mirror.transitionToCountryMirror(None)1034 >>> osuosl_mirror.transitionToCountryMirror(None)
1039 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
1040 Traceback (most recent call last):1035 Traceback (most recent call last):
1041 ...1036 ...
1042 storm.exceptions.NoneError: None isn't acceptable as a value for DistributionMirror.country_dns_mirror1037 storm.exceptions.NoneError: None isn't acceptable as a value for DistributionMirror.country_dns_mirror
10431038
1044 >>> osuosl_mirror.transitionToCountryMirror(True)1039 >>> osuosl_mirror.transitionToCountryMirror(True)
1045 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
1046 Traceback (most recent call last):1040 Traceback (most recent call last):
1047 ...1041 ...
1048 lp.registry.errors.MirrorHasNoHTTPURL: This mirror may not be set as a country mirror as it does not have an HTTP URL set.1042 lp.registry.errors.MirrorHasNoHTTPURL: This mirror may not be set as a country mirror as it does not have an HTTP URL set.
diff --git a/lib/lp/registry/doc/distribution.txt b/lib/lp/registry/doc/distribution.txt
index d9dcd94..dc2941b 100644
--- a/lib/lp/registry/doc/distribution.txt
+++ b/lib/lp/registry/doc/distribution.txt
@@ -308,7 +308,6 @@ Distribution can do that for us.
308308
309If we ask for a totally unknown distroseries, we raise NotFoundError309If we ask for a totally unknown distroseries, we raise NotFoundError
310 >>> ubuntu.getDistroSeriesAndPocket('unknown')310 >>> ubuntu.getDistroSeriesAndPocket('unknown')
311 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
312 Traceback (most recent call last):311 Traceback (most recent call last):
313 ...312 ...
314 lp.app.errors.NotFoundError: ...'unknown'313 lp.app.errors.NotFoundError: ...'unknown'
@@ -339,7 +338,6 @@ Find the backports pocket, too:
339If we ask for a valid distroseries which doesn't have a given pocket it should338If we ask for a valid distroseries which doesn't have a given pocket it should
340raise NotFoundError for us339raise NotFoundError for us
341 >>> ubuntu.getDistroSeriesAndPocket('hoary-bullshit')340 >>> ubuntu.getDistroSeriesAndPocket('hoary-bullshit')
342 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
343 Traceback (most recent call last):341 Traceback (most recent call last):
344 ...342 ...
345 lp.app.errors.NotFoundError: ...'hoary-bullshit'343 lp.app.errors.NotFoundError: ...'hoary-bullshit'
@@ -469,15 +467,12 @@ But others can't.
469467
470 >>> login('no-priv@canonical.com')468 >>> login('no-priv@canonical.com')
471 >>> debian.blueprints_usage = ServiceUsage.LAUNCHPAD469 >>> debian.blueprints_usage = ServiceUsage.LAUNCHPAD
472 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
473 Traceback (most recent call last):470 Traceback (most recent call last):
474 zope.security.interfaces.Unauthorized: (..., 'blueprints_usage', 'launchpad.Edit')471 zope.security.interfaces.Unauthorized: (..., 'blueprints_usage', 'launchpad.Edit')
475 >>> debian.official_malone = True472 >>> debian.official_malone = True
476 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
477 Traceback (most recent call last):473 Traceback (most recent call last):
478 zope.security.interfaces.Unauthorized: (..., 'official_malone', 'launchpad.Edit')474 zope.security.interfaces.Unauthorized: (..., 'official_malone', 'launchpad.Edit')
479 >>> debian.translations_usage = ServiceUsage.LAUNCHPAD475 >>> debian.translations_usage = ServiceUsage.LAUNCHPAD
480 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
481 Traceback (most recent call last):476 Traceback (most recent call last):
482 zope.security.interfaces.Unauthorized: (..., 'translations_usage', 'launchpad.TranslationsAdmin')477 zope.security.interfaces.Unauthorized: (..., 'translations_usage', 'launchpad.TranslationsAdmin')
483478
@@ -595,7 +590,6 @@ Milestones for distros can only be created by distro owners or admins.
595 >>> login('no-priv@canonical.com')590 >>> login('no-priv@canonical.com')
596 >>> woody.newMilestone(591 >>> woody.newMilestone(
597 ... name='impossible', dateexpected=datetime(2028, 10, 1))592 ... name='impossible', dateexpected=datetime(2028, 10, 1))
598 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
599 Traceback (most recent call last):593 Traceback (most recent call last):
600 ...594 ...
601 zope.security.interfaces.Unauthorized: (<DistroSeries ...'woody'>, 'newMilestone', 'launchpad.Edit')595 zope.security.interfaces.Unauthorized: (<DistroSeries ...'woody'>, 'newMilestone', 'launchpad.Edit')
diff --git a/lib/lp/registry/doc/distroseries.txt b/lib/lp/registry/doc/distroseries.txt
index b69d655..225c66d 100644
--- a/lib/lp/registry/doc/distroseries.txt
+++ b/lib/lp/registry/doc/distroseries.txt
@@ -680,7 +680,6 @@ Ubuntu driver can not create series.
680 ... name='finch', display_name='Finch', title='Ubuntu Finch',680 ... name='finch', display_name='Finch', title='Ubuntu Finch',
681 ... summary='summary', description='description', version='9.06',681 ... summary='summary', description='description', version='9.06',
682 ... previous_series=warty, owner=ubuntu.driver)682 ... previous_series=warty, owner=ubuntu.driver)
683 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
684 Traceback (most recent call last):683 Traceback (most recent call last):
685 ...684 ...
686 zope.security.interfaces.Unauthorized: ...685 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/registry/doc/karmacache.txt b/lib/lp/registry/doc/karmacache.txt
index 13c7d9f..6f367f0 100644
--- a/lib/lp/registry/doc/karmacache.txt
+++ b/lib/lp/registry/doc/karmacache.txt
@@ -55,7 +55,6 @@ NotFoundError.
5555
56 >>> karmacachemanager.updateKarmaValue(56 >>> karmacachemanager.updateKarmaValue(
57 ... new_value, person.id, bugs.id, product_id=9999)57 ... new_value, person.id, bugs.id, product_id=9999)
58 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
59 Traceback (most recent call last):58 Traceback (most recent call last):
60 ...59 ...
61 lp.app.errors.NotFoundError: ...60 lp.app.errors.NotFoundError: ...
diff --git a/lib/lp/registry/doc/launchpadlib/project-registry.txt.disabled b/lib/lp/registry/doc/launchpadlib/project-registry.txt.disabled
index 08aefe1..7cb5aa3 100644
--- a/lib/lp/registry/doc/launchpadlib/project-registry.txt.disabled
+++ b/lib/lp/registry/doc/launchpadlib/project-registry.txt.disabled
@@ -276,7 +276,7 @@ Attributes can be edited, but not by the anonymous user.
276276
277 >>> mark = lp_anon.people['mark']277 >>> mark = lp_anon.people['mark']
278 >>> firefox.driver = mark278 >>> firefox.driver = mark
279 >>> firefox.lp_save() # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2279 >>> firefox.lp_save()
280 Traceback (most recent call last):280 Traceback (most recent call last):
281 ...281 ...
282 urllib.error.HTTPError: HTTP Error 401: Unauthorized...282 urllib.error.HTTPError: HTTP Error 401: Unauthorized...
@@ -328,7 +328,7 @@ Changing the owner of a project can change other attributes as well.
328Read-only attributes cannot be changed.328Read-only attributes cannot be changed.
329329
330 >>> firefox.registrant = nopriv330 >>> firefox.registrant = nopriv
331 >>> firefox.lp_save() # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2331 >>> firefox.lp_save()
332 Traceback (most recent call last):332 Traceback (most recent call last):
333 ...333 ...
334 urllib.error.HTTPError: HTTP Error 400: Bad Request ... registrant_link: You tried to modify a read-only attribute...334 urllib.error.HTTPError: HTTP Error 400: Bad Request ... registrant_link: You tried to modify a read-only attribute...
diff --git a/lib/lp/registry/doc/milestone.txt b/lib/lp/registry/doc/milestone.txt
index 8cc820e..cd5c253 100644
--- a/lib/lp/registry/doc/milestone.txt
+++ b/lib/lp/registry/doc/milestone.txt
@@ -127,7 +127,7 @@ Now, lets test all of that for DistroSeriess too!
127Trying to retrieve a milestone that doesn't exist will raise a127Trying to retrieve a milestone that doesn't exist will raise a
128zope.exceptions.NotFoundError:128zope.exceptions.NotFoundError:
129129
130 >>> milestoneset.get(-1) # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2130 >>> milestoneset.get(-1)
131 Traceback (most recent call last):131 Traceback (most recent call last):
132 ...132 ...
133 lp.app.errors.NotFoundError: 'Milestone with ID -1 does not exist'133 lp.app.errors.NotFoundError: 'Milestone with ID -1 does not exist'
diff --git a/lib/lp/registry/doc/person-account.txt b/lib/lp/registry/doc/person-account.txt
index 3e62d40..576ab7d 100644
--- a/lib/lp/registry/doc/person-account.txt
+++ b/lib/lp/registry/doc/person-account.txt
@@ -33,7 +33,6 @@ the profile. Sample Person cannot claim it.
3333
34 >>> login('test@canonical.com')34 >>> login('test@canonical.com')
35 >>> matsubara.account.reactivate(comment="test")35 >>> matsubara.account.reactivate(comment="test")
36 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
37 Traceback (most recent call last):36 Traceback (most recent call last):
38 ...37 ...
39 zope.security.interfaces.Unauthorized: ...'launchpad.View')38 zope.security.interfaces.Unauthorized: ...'launchpad.View')
@@ -138,7 +137,6 @@ even launchpad admins can use it.
138137
139 >>> login('mark@example.com')138 >>> login('mark@example.com')
140 >>> foobar.deactivate(comment=comment)139 >>> foobar.deactivate(comment=comment)
141 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
142 Traceback (most recent call last):140 Traceback (most recent call last):
143 ...141 ...
144 zope.security.interfaces.Unauthorized: ...'launchpad.Special')142 zope.security.interfaces.Unauthorized: ...'launchpad.Special')
diff --git a/lib/lp/registry/doc/person.txt b/lib/lp/registry/doc/person.txt
index 686ef2b..21312ce 100644
--- a/lib/lp/registry/doc/person.txt
+++ b/lib/lp/registry/doc/person.txt
@@ -352,13 +352,11 @@ Non-administrators may not change a person's standing.
352352
353 >>> login('test@canonical.com')353 >>> login('test@canonical.com')
354 >>> lifeless.personal_standing = PersonalStanding.POOR354 >>> lifeless.personal_standing = PersonalStanding.POOR
355 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
356 Traceback (most recent call last):355 Traceback (most recent call last):
357 ...356 ...
358 zope.security.interfaces.Unauthorized: ...357 zope.security.interfaces.Unauthorized: ...
359358
360 >>> lifeless.personal_standing_reason = 'Such a cool guy!'359 >>> lifeless.personal_standing_reason = 'Such a cool guy!'
361 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
362 Traceback (most recent call last):360 Traceback (most recent call last):
363 ...361 ...
364 zope.security.interfaces.Unauthorized: ...362 zope.security.interfaces.Unauthorized: ...
@@ -437,7 +435,6 @@ If the given name is already in use by another team/person, an exception
437is raised.435is raised.
438436
439 >>> personset.newTeam(ddaa, 'ddaa', 'Just a new team')437 >>> personset.newTeam(ddaa, 'ddaa', 'Just a new team')
440 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
441 Traceback (most recent call last):438 Traceback (most recent call last):
442 ...439 ...
443 lp.registry.errors.NameAlreadyTaken: ...440 lp.registry.errors.NameAlreadyTaken: ...
@@ -531,7 +528,6 @@ account_status is NOACCOUNT, though.
531 AssertionError: Only Person entries whose account_status is NOACCOUNT...528 AssertionError: Only Person entries whose account_status is NOACCOUNT...
532529
533 >>> not_a_person.convertToTeam(team_owner=landscape_devs)530 >>> not_a_person.convertToTeam(team_owner=landscape_devs)
534 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
535 Traceback (most recent call last):531 Traceback (most recent call last):
536 ...532 ...
537 lp.registry.interfaces.person.AlreadyConvertedException: foo-... has already been converted to a team.533 lp.registry.interfaces.person.AlreadyConvertedException: foo-... has already been converted to a team.
@@ -1443,7 +1439,6 @@ error will be raised.
1443 >>> person_set._newPerson(1439 >>> person_set._newPerson(
1444 ... 'new-name', 'New Person', True,1440 ... 'new-name', 'New Person', True,
1445 ... PersonCreationRationale.BUGIMPORT)1441 ... PersonCreationRationale.BUGIMPORT)
1446 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
1447 Traceback (most recent call last):1442 Traceback (most recent call last):
1448 ...1443 ...
1449 lp.registry.errors.NameAlreadyTaken: The name 'new-name' is already taken.1444 lp.registry.errors.NameAlreadyTaken: The name 'new-name' is already taken.
@@ -1454,7 +1449,6 @@ be raised.
1454 >>> person_set._newPerson(1449 >>> person_set._newPerson(
1455 ... "ThisIsn'tValid", 'New Person', True,1450 ... "ThisIsn'tValid", 'New Person', True,
1456 ... PersonCreationRationale.BUGIMPORT)1451 ... PersonCreationRationale.BUGIMPORT)
1457 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
1458 Traceback (most recent call last):1452 Traceback (most recent call last):
1459 ...1453 ...
1460 lp.registry.errors.InvalidName: ThisIsn'tValid is not a valid name for a person.1454 lp.registry.errors.InvalidName: ThisIsn'tValid is not a valid name for a person.
diff --git a/lib/lp/registry/doc/pillar-aliases-field.txt b/lib/lp/registry/doc/pillar-aliases-field.txt
index 9ccf329..f26605e 100644
--- a/lib/lp/registry/doc/pillar-aliases-field.txt
+++ b/lib/lp/registry/doc/pillar-aliases-field.txt
@@ -29,7 +29,6 @@ to be a valid alias for that pillar, but only for that pillar.
29 >>> bound_field.validate(u'iceweasel')29 >>> bound_field.validate(u'iceweasel')
3030
31 >>> field.bind(getUtility(IProductSet)['bzr']).validate(u'iceweasel')31 >>> field.bind(getUtility(IProductSet)['bzr']).validate(u'iceweasel')
32 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
33 Traceback (most recent call last):32 Traceback (most recent call last):
34 ...33 ...
35 lp.app.validators.LaunchpadValidationError: iceweasel is already used by another project34 lp.app.validators.LaunchpadValidationError: iceweasel is already used by another project
@@ -54,13 +53,11 @@ If an empty string (or None) is given, all aliases will be removed.
54Each of these aliases must be valid names and must be unique.53Each of these aliases must be valid names and must be unique.
5554
56 >>> bound_field.validate(u'names_cannot_have_underscores')55 >>> bound_field.validate(u'names_cannot_have_underscores')
57 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
58 Traceback (most recent call last):56 Traceback (most recent call last):
59 ...57 ...
60 lp.app.validators.LaunchpadValidationError: Invalid name...58 lp.app.validators.LaunchpadValidationError: Invalid name...
6159
62 >>> bound_field.validate(u'ubuntu')60 >>> bound_field.validate(u'ubuntu')
63 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
64 Traceback (most recent call last):61 Traceback (most recent call last):
65 ...62 ...
66 lp.app.validators.LaunchpadValidationError: ubuntu is already used by another project63 lp.app.validators.LaunchpadValidationError: ubuntu is already used by another project
@@ -68,7 +65,6 @@ Each of these aliases must be valid names and must be unique.
68Also, they must not be identical to the pillar's own name.65Also, they must not be identical to the pillar's own name.
6966
70 >>> bound_field.validate(firefox.name)67 >>> bound_field.validate(firefox.name)
71 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
72 Traceback (most recent call last):68 Traceback (most recent call last):
73 ...69 ...
74 lp.app.validators.LaunchpadValidationError: This is your name: firefox70 lp.app.validators.LaunchpadValidationError: This is your name: firefox
@@ -76,7 +72,6 @@ Also, they must not be identical to the pillar's own name.
76Black-listed names are not accepted as aliases either.72Black-listed names are not accepted as aliases either.
7773
78 >>> bound_field.validate(u'blacklisted')74 >>> bound_field.validate(u'blacklisted')
79 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
80 Traceback (most recent call last):75 Traceback (most recent call last):
81 ...76 ...
82 lp.app.validators.LaunchpadValidationError: The name &#x27;blacklisted&#x27; has been blocked...77 lp.app.validators.LaunchpadValidationError: The name &#x27;blacklisted&#x27; has been blocked...
diff --git a/lib/lp/registry/doc/pillar.txt b/lib/lp/registry/doc/pillar.txt
index f27c34f..a471c21 100644
--- a/lib/lp/registry/doc/pillar.txt
+++ b/lib/lp/registry/doc/pillar.txt
@@ -36,7 +36,6 @@ share their name namespace are Product, ProjectGroup and Distribution.
36 >>> 'fnord' in pillar_set36 >>> 'fnord' in pillar_set
37 False37 False
38 >>> pillar_set['fnord']38 >>> pillar_set['fnord']
39 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
40 Traceback (most recent call last):39 Traceback (most recent call last):
41 ...40 ...
42 lp.app.errors.NotFoundError: ...'fnord'41 lp.app.errors.NotFoundError: ...'fnord'
@@ -54,7 +53,6 @@ pillars.
54 >>> 'gimp' in pillar_set53 >>> 'gimp' in pillar_set
55 False54 False
56 >>> pillar_set['gimp']55 >>> pillar_set['gimp']
57 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
58 Traceback (most recent call last):56 Traceback (most recent call last):
59 ...57 ...
60 lp.app.errors.NotFoundError: ...'gimp'58 lp.app.errors.NotFoundError: ...'gimp'
@@ -71,7 +69,6 @@ It also works if you use Unicode strings.
71 >>> u'launchpad' in pillar_set69 >>> u'launchpad' in pillar_set
72 False70 False
73 >>> pillar_set[u'launchpad']71 >>> pillar_set[u'launchpad']
74 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
75 Traceback (most recent call last):72 Traceback (most recent call last):
76 ...73 ...
77 lp.app.errors.NotFoundError: ...'launchpad'74 lp.app.errors.NotFoundError: ...'launchpad'
@@ -134,12 +131,10 @@ Also, if the pillar is inactive, it can't be retrieved through any of its
134aliases, in the same way that it can't be retrieved through its name.131aliases, in the same way that it can't be retrieved through its name.
135132
136 >>> pillar_set['iceweasel']133 >>> pillar_set['iceweasel']
137 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
138 Traceback (most recent call last):134 Traceback (most recent call last):
139 ...135 ...
140 lp.app.errors.NotFoundError: ...136 lp.app.errors.NotFoundError: ...
141 >>> pillar_set['firefox']137 >>> pillar_set['firefox']
142 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
143 Traceback (most recent call last):138 Traceback (most recent call last):
144 ...139 ...
145 lp.app.errors.NotFoundError: ...140 lp.app.errors.NotFoundError: ...
@@ -158,7 +153,6 @@ to be able to set its aliases.
158 >>> check_permission('launchpad.Edit', firefox)153 >>> check_permission('launchpad.Edit', firefox)
159 True154 True
160 >>> firefox.setAliases(['iceweasel'])155 >>> firefox.setAliases(['iceweasel'])
161 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
162 Traceback (most recent call last):156 Traceback (most recent call last):
163 ...157 ...
164 zope.security.interfaces.Unauthorized: ...158 zope.security.interfaces.Unauthorized: ...
@@ -169,7 +163,6 @@ Ditto for the Mozilla project.
169 >>> check_permission('launchpad.Edit', mozilla)163 >>> check_permission('launchpad.Edit', mozilla)
170 True164 True
171 >>> mozilla.setAliases(['moz'])165 >>> mozilla.setAliases(['moz'])
172 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
173 Traceback (most recent call last):166 Traceback (most recent call last):
174 ...167 ...
175 zope.security.interfaces.Unauthorized: ...168 zope.security.interfaces.Unauthorized: ...
@@ -181,7 +174,6 @@ And the same is true for Colin Watson on the Guadalinex distribution.
181 >>> check_permission('launchpad.Edit', guadalinex)174 >>> check_permission('launchpad.Edit', guadalinex)
182 True175 True
183 >>> guadalinex.setAliases(['guada'])176 >>> guadalinex.setAliases(['guada'])
184 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
185 Traceback (most recent call last):177 Traceback (most recent call last):
186 ...178 ...
187 zope.security.interfaces.Unauthorized: ...179 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/registry/doc/private-team-roles.txt b/lib/lp/registry/doc/private-team-roles.txt
index 0595e4c..c764699 100644
--- a/lib/lp/registry/doc/private-team-roles.txt
+++ b/lib/lp/registry/doc/private-team-roles.txt
@@ -197,7 +197,6 @@ or private, can be the project registrant.
197 >>> product = factory.makeProduct(registrant=team_owner)197 >>> product = factory.makeProduct(registrant=team_owner)
198 >>> product = factory.makeProduct(registrant=public_team)198 >>> product = factory.makeProduct(registrant=public_team)
199 >>> product = factory.makeProduct(registrant=priv_team)199 >>> product = factory.makeProduct(registrant=priv_team)
200 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
201 Traceback (most recent call last):200 Traceback (most recent call last):
202 ...201 ...
203 lp.registry.errors.PrivatePersonLinkageError: Cannot link person (name=private-team, visibility=PRIVATE) to <Product at...202 lp.registry.errors.PrivatePersonLinkageError: Cannot link person (name=private-team, visibility=PRIVATE) to <Product at...
diff --git a/lib/lp/registry/doc/productrelease-file-download.txt b/lib/lp/registry/doc/productrelease-file-download.txt
index 034c8ef..c1323ff 100644
--- a/lib/lp/registry/doc/productrelease-file-download.txt
+++ b/lib/lp/registry/doc/productrelease-file-download.txt
@@ -90,7 +90,6 @@ The alias can be retrieved by name.
90Attempting to retrieve an alias that does not exist is an error.90Attempting to retrieve an alias that does not exist is an error.
9191
92 >>> file_alias = rel.getFileAliasByName('bar.txt')92 >>> file_alias = rel.getFileAliasByName('bar.txt')
93 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
94 Traceback (most recent call last):93 Traceback (most recent call last):
95 ...94 ...
96 lp.app.errors.NotFoundError: ...'bar.txt'95 lp.app.errors.NotFoundError: ...'bar.txt'
@@ -105,7 +104,6 @@ Attempting to retrieve a ProductReleaseFile that does not exist is an
105error.104error.
106105
107 >>> prf = rel.getProductReleaseFileByName('bar.txt')106 >>> prf = rel.getProductReleaseFileByName('bar.txt')
108 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
109 Traceback (most recent call last):107 Traceback (most recent call last):
110 ...108 ...
111 lp.app.errors.NotFoundError: ...'bar.txt'109 lp.app.errors.NotFoundError: ...'bar.txt'
@@ -116,7 +114,6 @@ delete a product file.
116114
117 >>> login(ANONYMOUS)115 >>> login(ANONYMOUS)
118 >>> rel.files[0].destroySelf()116 >>> rel.files[0].destroySelf()
119 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
120 Traceback (most recent call last):117 Traceback (most recent call last):
121 ...118 ...
122 zope.security.interfaces.Unauthorized: (<ProductReleaseFile...>, 'destroySelf', 'launchpad.Edit')119 zope.security.interfaces.Unauthorized: (<ProductReleaseFile...>, 'destroySelf', 'launchpad.Edit')
@@ -143,7 +140,6 @@ Deleting files via a GET method is not allowed.
143 >>> firefox = getUtility(IProductSet).getByName('firefox')140 >>> firefox = getUtility(IProductSet).getByName('firefox')
144 >>> view = getMultiAdapter((firefox,request), name='+download')141 >>> view = getMultiAdapter((firefox,request), name='+download')
145 >>> view.initialize()142 >>> view.initialize()
146 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
147 Traceback (most recent call last):143 Traceback (most recent call last):
148 ...144 ...
149 lp.services.webapp.interfaces.UnsafeFormGetSubmissionError: Delete Files145 lp.services.webapp.interfaces.UnsafeFormGetSubmissionError: Delete Files
@@ -196,7 +192,6 @@ Only the product owner can create a new release.
196 >>> owner_email = firefox.owner.preferredemail.email192 >>> owner_email = firefox.owner.preferredemail.email
197 >>> login(ANONYMOUS)193 >>> login(ANONYMOUS)
198 >>> trunk.milestones[0].createProductRelease(firefox.owner, now)194 >>> trunk.milestones[0].createProductRelease(firefox.owner, now)
199 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
200 Traceback (most recent call last):195 Traceback (most recent call last):
201 ...196 ...
202 zope.security.interfaces.Unauthorized: (<Milestone ...>, 'createProductRelease', 'launchpad.Edit')197 zope.security.interfaces.Unauthorized: (<Milestone ...>, 'createProductRelease', 'launchpad.Edit')
diff --git a/lib/lp/registry/doc/productseries.txt b/lib/lp/registry/doc/productseries.txt
index dad7d3e..1ffd422 100644
--- a/lib/lp/registry/doc/productseries.txt
+++ b/lib/lp/registry/doc/productseries.txt
@@ -70,7 +70,6 @@ owner or driver can call Product.newSeries().
70 >>> series_driver = factory.makePerson(name="driver")70 >>> series_driver = factory.makePerson(name="driver")
71 >>> summary = "Port of Firefox to the Emacs operating system."71 >>> summary = "Port of Firefox to the Emacs operating system."
72 >>> emacs = firefox.newSeries(series_driver , 'emacs', summary)72 >>> emacs = firefox.newSeries(series_driver , 'emacs', summary)
73 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
74 Traceback (most recent call last):73 Traceback (most recent call last):
75 ...74 ...
76 zope.security.interfaces.Unauthorized: (..., 'newSeries', 'launchpad.Driver')75 zope.security.interfaces.Unauthorized: (..., 'newSeries', 'launchpad.Driver')
@@ -166,13 +165,11 @@ that the url uses one of the supported schemes (ftp, http, http).
166Invalid URLs and unsupported schemes raise a LaunchpadValidationError.165Invalid URLs and unsupported schemes raise a LaunchpadValidationError.
167166
168 >>> validate_release_glob('ftp.gnu.org/gnu/emacs/emacs-21.*.gz')167 >>> validate_release_glob('ftp.gnu.org/gnu/emacs/emacs-21.*.gz')
169 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
170 Traceback (most recent call last):168 Traceback (most recent call last):
171 ...169 ...
172 lp.app.validators.LaunchpadValidationError: ...170 lp.app.validators.LaunchpadValidationError: ...
173171
174 >>> validate_release_glob('wais://ftp.gnu.org/gnu/emacs/emacs-21.*.gz')172 >>> validate_release_glob('wais://ftp.gnu.org/gnu/emacs/emacs-21.*.gz')
175 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
176 Traceback (most recent call last):173 Traceback (most recent call last):
177 ...174 ...
178 lp.app.validators.LaunchpadValidationError: ...175 lp.app.validators.LaunchpadValidationError: ...
@@ -180,7 +177,6 @@ Invalid URLs and unsupported schemes raise a LaunchpadValidationError.
180The URL must contain a glob (*) or , and may contain more than one.177The URL must contain a glob (*) or , and may contain more than one.
181178
182 >>> validate_release_glob('http://ftp.gnu.org/gnu/emacs/emacs-21.10.1.gz')179 >>> validate_release_glob('http://ftp.gnu.org/gnu/emacs/emacs-21.10.1.gz')
183 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
184 Traceback (most recent call last):180 Traceback (most recent call last):
185 ...181 ...
186 lp.app.validators.LaunchpadValidationError: ...182 lp.app.validators.LaunchpadValidationError: ...
diff --git a/lib/lp/registry/doc/projectgroup.txt b/lib/lp/registry/doc/projectgroup.txt
index e880792..1eb00f9 100644
--- a/lib/lp/registry/doc/projectgroup.txt
+++ b/lib/lp/registry/doc/projectgroup.txt
@@ -79,7 +79,6 @@ If there is no project with the specified name, a NotFoundError will be
79raised.79raised.
8080
81 >>> projectset['non-existant']81 >>> projectset['non-existant']
82 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
83 Traceback (most recent call last):82 Traceback (most recent call last):
84 ...83 ...
85 lp.app.errors.NotFoundError: ...84 lp.app.errors.NotFoundError: ...
@@ -96,7 +95,6 @@ the project.
9695
9796
98 >>> gnome = getUtility(IProjectGroupSet)['gnome']97 >>> gnome = getUtility(IProjectGroupSet)['gnome']
99 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
100 Traceback (most recent call last):98 Traceback (most recent call last):
101 ...99 ...
102 lp.app.errors.NotFoundError: ...100 lp.app.errors.NotFoundError: ...
diff --git a/lib/lp/registry/doc/teammembership-email-notification.txt b/lib/lp/registry/doc/teammembership-email-notification.txt
index 218334c..3a60458 100644
--- a/lib/lp/registry/doc/teammembership-email-notification.txt
+++ b/lib/lp/registry/doc/teammembership-email-notification.txt
@@ -1008,7 +1008,6 @@ membership statues silently.
10081008
1009 >>> setStatus(stevea_ubuntu_team_membership,1009 >>> setStatus(stevea_ubuntu_team_membership,
1010 ... TeamMembershipStatus.DEACTIVATED, reviewer=kamion, silent=True)1010 ... TeamMembershipStatus.DEACTIVATED, reviewer=kamion, silent=True)
1011 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
1012 Traceback (most recent call last):1011 Traceback (most recent call last):
1013 lp.registry.errors.UserCannotChangeMembershipSilently: ...1012 lp.registry.errors.UserCannotChangeMembershipSilently: ...
10141013
diff --git a/lib/lp/registry/doc/teammembership.txt b/lib/lp/registry/doc/teammembership.txt
index 58cffd2..e55a1d6 100644
--- a/lib/lp/registry/doc/teammembership.txt
+++ b/lib/lp/registry/doc/teammembership.txt
@@ -99,7 +99,6 @@ given team.
99 True99 True
100 >>> ignored = login_person(salgado)100 >>> ignored = login_person(salgado)
101 >>> salgado.join(launchpad)101 >>> salgado.join(launchpad)
102 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
103 Traceback (most recent call last):102 Traceback (most recent call last):
104 ...103 ...
105 lp.registry.errors.JoinNotAllowed: This is a restricted team104 lp.registry.errors.JoinNotAllowed: This is a restricted team
@@ -153,7 +152,6 @@ to a team.
153 >>> mark = personset.getByName('mark')152 >>> mark = personset.getByName('mark')
154 >>> t3.addMember(salgado, reviewer=mark,153 >>> t3.addMember(salgado, reviewer=mark,
155 ... status=TeamMembershipStatus.ADMIN)154 ... status=TeamMembershipStatus.ADMIN)
156 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
157 Traceback (most recent call last):155 Traceback (most recent call last):
158 ...156 ...
159 zope.security.interfaces.Unauthorized: ...157 zope.security.interfaces.Unauthorized: ...
@@ -512,13 +510,11 @@ an extra check to ensure that doesn't happen.
512 >>> ignored = login_person(foobar)510 >>> ignored = login_person(foobar)
513 >>> membership = foobar.team_memberships[0]511 >>> membership = foobar.team_memberships[0]
514 >>> membership.status = None512 >>> membership.status = None
515 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
516 Traceback (most recent call last):513 Traceback (most recent call last):
517 ...514 ...
518 zope.security.interfaces.ForbiddenAttribute: ...515 zope.security.interfaces.ForbiddenAttribute: ...
519516
520 >>> membership.dateexpires = None517 >>> membership.dateexpires = None
521 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
522 Traceback (most recent call last):518 Traceback (most recent call last):
523 ...519 ...
524 zope.security.interfaces.ForbiddenAttribute: ...520 zope.security.interfaces.ForbiddenAttribute: ...
@@ -726,7 +722,6 @@ The member themselves can't change the expiration date of their membership.
726722
727 >>> ignored = login_person(karl)723 >>> ignored = login_person(karl)
728 >>> karl_on_mirroradmins.setExpirationDate(tomorrow, karl)724 >>> karl_on_mirroradmins.setExpirationDate(tomorrow, karl)
729 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
730 Traceback (most recent call last):725 Traceback (most recent call last):
731 ...726 ...
732 zope.security.interfaces.Unauthorized: ...727 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/registry/doc/vocabularies.txt b/lib/lp/registry/doc/vocabularies.txt
index 127ad1a..9bc4dc0 100644
--- a/lib/lp/registry/doc/vocabularies.txt
+++ b/lib/lp/registry/doc/vocabularies.txt
@@ -150,7 +150,6 @@ display name.
150You cannot get a term by an other object, such as a team.150You cannot get a term by an other object, such as a team.
151151
152 >>> list_vocabulary.getTerm(team_one)152 >>> list_vocabulary.getTerm(team_one)
153 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
154 Traceback (most recent call last):153 Traceback (most recent call last):
155 ...154 ...
156 zope.security.interfaces.ForbiddenAttribute: ...155 zope.security.interfaces.ForbiddenAttribute: ...
@@ -183,7 +182,6 @@ You are not allowed to ask whether a non-mailing list object is
183contained in this vocabulary.182contained in this vocabulary.
184183
185 >>> team_three in list_vocabulary184 >>> team_three in list_vocabulary
186 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
187 Traceback (most recent call last):185 Traceback (most recent call last):
188 ...186 ...
189 zope.security.interfaces.ForbiddenAttribute: ...187 zope.security.interfaces.ForbiddenAttribute: ...
diff --git a/lib/lp/registry/model/projectgroup.py b/lib/lp/registry/model/projectgroup.py
index b56499a..433851f 100644
--- a/lib/lp/registry/model/projectgroup.py
+++ b/lib/lp/registry/model/projectgroup.py
@@ -543,7 +543,6 @@ class ProjectGroupSet:
543 apache543 apache
544 >>> getUtility(IProjectGroupSet).get(-1)544 >>> getUtility(IProjectGroupSet).get(-1)
545 ... # doctest: +NORMALIZE_WHITESPACE545 ... # doctest: +NORMALIZE_WHITESPACE
546 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
547 Traceback (most recent call last):546 Traceback (most recent call last):
548 ...547 ...
549 lp.app.errors.NotFoundError: -1548 lp.app.errors.NotFoundError: -1
diff --git a/lib/lp/registry/stories/announcements/xx-announcements.txt b/lib/lp/registry/stories/announcements/xx-announcements.txt
index 9296fb6..c683ffe 100644
--- a/lib/lp/registry/stories/announcements/xx-announcements.txt
+++ b/lib/lp/registry/stories/announcements/xx-announcements.txt
@@ -42,28 +42,24 @@ page.
4242
43 >>> anon_browser.open('http://launchpad.test/firefox')43 >>> anon_browser.open('http://launchpad.test/firefox')
44 >>> anon_browser.getLink('Make announcement')44 >>> anon_browser.getLink('Make announcement')
45 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
46 Traceback (most recent call last):45 Traceback (most recent call last):
47 ...46 ...
48 zope.testbrowser.browser.LinkNotFoundError47 zope.testbrowser.browser.LinkNotFoundError
4948
50 >>> anon_browser.getLink('Read all announcements').click()49 >>> anon_browser.getLink('Read all announcements').click()
51 >>> anon_browser.getLink('Make announcement')50 >>> anon_browser.getLink('Make announcement')
52 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
53 Traceback (most recent call last):51 Traceback (most recent call last):
54 ...52 ...
55 zope.testbrowser.browser.LinkNotFoundError53 zope.testbrowser.browser.LinkNotFoundError
5654
57 >>> anon_browser.open('http://launchpad.test/ubuntu')55 >>> anon_browser.open('http://launchpad.test/ubuntu')
58 >>> anon_browser.getLink('Make announcement')56 >>> anon_browser.getLink('Make announcement')
59 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
60 Traceback (most recent call last):57 Traceback (most recent call last):
61 ...58 ...
62 zope.testbrowser.browser.LinkNotFoundError59 zope.testbrowser.browser.LinkNotFoundError
6360
64 >>> anon_browser.getLink('Read all announcements').click()61 >>> anon_browser.getLink('Read all announcements').click()
65 >>> anon_browser.getLink('Make announcement')62 >>> anon_browser.getLink('Make announcement')
66 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
67 Traceback (most recent call last):63 Traceback (most recent call last):
68 ...64 ...
69 zope.testbrowser.browser.LinkNotFoundError65 zope.testbrowser.browser.LinkNotFoundError
@@ -75,14 +71,12 @@ pillar.
75 >>> nopriv_browser = setupBrowser(auth="Basic no-priv@canonical.com:test")71 >>> nopriv_browser = setupBrowser(auth="Basic no-priv@canonical.com:test")
76 >>> nopriv_browser.open('http://launchpad.test/firefox')72 >>> nopriv_browser.open('http://launchpad.test/firefox')
77 >>> nopriv_browser.getLink('Make announcement')73 >>> nopriv_browser.getLink('Make announcement')
78 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
79 Traceback (most recent call last):74 Traceback (most recent call last):
80 ...75 ...
81 zope.testbrowser.browser.LinkNotFoundError76 zope.testbrowser.browser.LinkNotFoundError
8277
83 >>> nopriv_browser.getLink('Read all announcements').click()78 >>> nopriv_browser.getLink('Read all announcements').click()
84 >>> nopriv_browser.getLink('Make announcement')79 >>> nopriv_browser.getLink('Make announcement')
85 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
86 Traceback (most recent call last):80 Traceback (most recent call last):
87 ...81 ...
88 zope.testbrowser.browser.LinkNotFoundError82 zope.testbrowser.browser.LinkNotFoundError
@@ -260,7 +254,6 @@ anon_browser.
260 >>> priv_browser.getLink('Kubuntu announcement headline').click()254 >>> priv_browser.getLink('Kubuntu announcement headline').click()
261 >>> link_url = priv_browser.url255 >>> link_url = priv_browser.url
262 >>> anon_browser.open(link_url)256 >>> anon_browser.open(link_url)
263 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
264 Traceback (most recent call last):257 Traceback (most recent call last):
265 ...258 ...
266 zope.security.interfaces.Unauthorized: ...259 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/registry/stories/distribution/xx-distribution-launchpad-usage.txt b/lib/lp/registry/stories/distribution/xx-distribution-launchpad-usage.txt
index d3b4045..5a06d50 100644
--- a/lib/lp/registry/stories/distribution/xx-distribution-launchpad-usage.txt
+++ b/lib/lp/registry/stories/distribution/xx-distribution-launchpad-usage.txt
@@ -9,17 +9,14 @@ details.
99
10 >>> user_browser.open('http://launchpad.test/ubuntu')10 >>> user_browser.open('http://launchpad.test/ubuntu')
11 >>> user_browser.getLink('Change details')11 >>> user_browser.getLink('Change details')
12 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
13 Traceback (most recent call last):12 Traceback (most recent call last):
14 ...13 ...
15 zope.testbrowser.browser.LinkNotFoundError14 zope.testbrowser.browser.LinkNotFoundError
16 >>> user_browser.getLink('Configure publisher')15 >>> user_browser.getLink('Configure publisher')
17 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
18 Traceback (most recent call last):16 Traceback (most recent call last):
19 ...17 ...
20 zope.testbrowser.browser.LinkNotFoundError18 zope.testbrowser.browser.LinkNotFoundError
21 >>> user_browser.open('http://launchpad.test/ubuntu/+edit')19 >>> user_browser.open('http://launchpad.test/ubuntu/+edit')
22 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
23 Traceback (most recent call last):20 Traceback (most recent call last):
24 ...21 ...
25 zope.security.interfaces.Unauthorized: ...22 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/registry/stories/distribution/xx-distribution-overview.txt b/lib/lp/registry/stories/distribution/xx-distribution-overview.txt
index 2734a8c..26d217a 100644
--- a/lib/lp/registry/stories/distribution/xx-distribution-overview.txt
+++ b/lib/lp/registry/stories/distribution/xx-distribution-overview.txt
@@ -124,7 +124,6 @@ If there is a development series alias, it becomes a redirect.
124 >>> from zope.component import getUtility124 >>> from zope.component import getUtility
125125
126 >>> anon_browser.open("http://launchpad.test/ubuntu/devel")126 >>> anon_browser.open("http://launchpad.test/ubuntu/devel")
127 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
128 Traceback (most recent call last):127 Traceback (most recent call last):
129 ...128 ...
130 zope.publisher.interfaces.NotFound: Object: <Distribution ...>, name: 'devel'129 zope.publisher.interfaces.NotFound: Object: <Distribution ...>, name: 'devel'
@@ -177,13 +176,11 @@ term) or an unavailable name (only 'primary' and 'partner' exist)
177results in a NotFound error.176results in a NotFound error.
178177
179 >>> anon_browser.open("http://launchpad.test/ubuntu/+archive")178 >>> anon_browser.open("http://launchpad.test/ubuntu/+archive")
180 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
181 Traceback (most recent call last):179 Traceback (most recent call last):
182 ...180 ...
183 zope.publisher.interfaces.NotFound: Object: <Distribution ...>, name: '+archive'181 zope.publisher.interfaces.NotFound: Object: <Distribution ...>, name: '+archive'
184182
185 >>> anon_browser.open("http://launchpad.test/ubuntu/+archive/boing")183 >>> anon_browser.open("http://launchpad.test/ubuntu/+archive/boing")
186 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
187 Traceback (most recent call last):184 Traceback (most recent call last):
188 ...185 ...
189 zope.publisher.interfaces.NotFound: Object: <Distribution ...>, name: 'boing'186 zope.publisher.interfaces.NotFound: Object: <Distribution ...>, name: 'boing'
diff --git a/lib/lp/registry/stories/distributionmirror/xx-distribution-countrymirrors.txt b/lib/lp/registry/stories/distributionmirror/xx-distribution-countrymirrors.txt
index 9ddcf14..b6bcddd 100644
--- a/lib/lp/registry/stories/distributionmirror/xx-distribution-countrymirrors.txt
+++ b/lib/lp/registry/stories/distributionmirror/xx-distribution-countrymirrors.txt
@@ -61,7 +61,6 @@ Also, the +countrymirrors-archive page is only available for the Ubuntu
61distribution.61distribution.
6262
63 >>> browser.open('http://launchpad.test/debian/+countrymirrors-archive')63 >>> browser.open('http://launchpad.test/debian/+countrymirrors-archive')
64 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
65 Traceback (most recent call last):64 Traceback (most recent call last):
66 ...65 ...
67 urllib.error.HTTPError: HTTP Error 404: Not Found66 urllib.error.HTTPError: HTTP Error 404: Not Found
diff --git a/lib/lp/registry/stories/distributionmirror/xx-distribution-mirrors.txt b/lib/lp/registry/stories/distributionmirror/xx-distribution-mirrors.txt
index bdeeb63..48068d4 100644
--- a/lib/lp/registry/stories/distributionmirror/xx-distribution-mirrors.txt
+++ b/lib/lp/registry/stories/distributionmirror/xx-distribution-mirrors.txt
@@ -80,7 +80,6 @@ they were out of date, missing some content, etc). This list can only be
80seen by distro owners, mirror admins of the distro or launchpad admins.80seen by distro owners, mirror admins of the distro or launchpad admins.
8181
82 >>> user_browser.open('http://launchpad.test/ubuntu/+disabledmirrors')82 >>> user_browser.open('http://launchpad.test/ubuntu/+disabledmirrors')
83 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
84 Traceback (most recent call last):83 Traceback (most recent call last):
85 ...84 ...
86 zope.security.interfaces.Unauthorized: ...85 zope.security.interfaces.Unauthorized: ...
@@ -103,7 +102,6 @@ It's only visible to distro owners, mirror admins of the distro or
103launchpad admins.102launchpad admins.
104103
105 >>> user_browser.open('http://launchpad.test/ubuntu/+unofficialmirrors')104 >>> user_browser.open('http://launchpad.test/ubuntu/+unofficialmirrors')
106 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
107 Traceback (most recent call last):105 Traceback (most recent call last):
108 ...106 ...
109 zope.security.interfaces.Unauthorized: ...107 zope.security.interfaces.Unauthorized: ...
@@ -126,7 +124,6 @@ type of mirror is shown. Also the freshness is not visible since
126pending mirrors have never been probed.124pending mirrors have never been probed.
127125
128 >>> user_browser.open('http://launchpad.test/ubuntu/+pendingreviewmirrors')126 >>> user_browser.open('http://launchpad.test/ubuntu/+pendingreviewmirrors')
129 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
130 Traceback (most recent call last):127 Traceback (most recent call last):
131 ...128 ...
132 zope.security.interfaces.Unauthorized: ...129 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/registry/stories/distributionmirror/xx-distributionmirror-prober-logs.txt b/lib/lp/registry/stories/distributionmirror/xx-distributionmirror-prober-logs.txt
index c48105d..157fb8f 100644
--- a/lib/lp/registry/stories/distributionmirror/xx-distributionmirror-prober-logs.txt
+++ b/lib/lp/registry/stories/distributionmirror/xx-distributionmirror-prober-logs.txt
@@ -23,7 +23,6 @@ A random logged in user won't have the rights to see that page.
23 >>> user_browser.open(23 >>> user_browser.open(
24 ... 'http://launchpad.test/ubuntu/+mirror/archive-mirror2/')24 ... 'http://launchpad.test/ubuntu/+mirror/archive-mirror2/')
25 >>> user_browser.getLink('Content check logs')25 >>> user_browser.getLink('Content check logs')
26 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
27 Traceback (most recent call last):26 Traceback (most recent call last):
28 ...27 ...
29 zope.testbrowser.browser.LinkNotFoundError28 zope.testbrowser.browser.LinkNotFoundError
@@ -31,7 +30,6 @@ A random logged in user won't have the rights to see that page.
31 >>> user_browser.open(30 >>> user_browser.open(
32 ... 'http://launchpad.test/ubuntu/+mirror/archive-mirror2/'31 ... 'http://launchpad.test/ubuntu/+mirror/archive-mirror2/'
33 ... '+prober-logs')32 ... '+prober-logs')
34 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
35 Traceback (most recent call last):33 Traceback (most recent call last):
36 ...34 ...
37 zope.security.interfaces.Unauthorized: ...35 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/registry/stories/distributionmirror/xx-reassign-distributionmirror.txt b/lib/lp/registry/stories/distributionmirror/xx-reassign-distributionmirror.txt
index 75a5cd3..bef3699 100644
--- a/lib/lp/registry/stories/distributionmirror/xx-reassign-distributionmirror.txt
+++ b/lib/lp/registry/stories/distributionmirror/xx-reassign-distributionmirror.txt
@@ -15,12 +15,10 @@ permission on them. Mark is the owner of the archive-mirror.
1515
16 >>> user_browser.open(context_url)16 >>> user_browser.open(context_url)
17 >>> user_browser.getLink('Change')17 >>> user_browser.getLink('Change')
18 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
19 Traceback (most recent call last):18 Traceback (most recent call last):
20 ...19 ...
21 zope.testbrowser.browser.LinkNotFoundError20 zope.testbrowser.browser.LinkNotFoundError
22 >>> user_browser.open(context_url + "/+reassign")21 >>> user_browser.open(context_url + "/+reassign")
23 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
24 Traceback (most recent call last):22 Traceback (most recent call last):
25 ...23 ...
26 zope.security.interfaces.Unauthorized: ...24 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/registry/stories/distroseries/distroseries-admin.txt b/lib/lp/registry/stories/distroseries/distroseries-admin.txt
index 051256d..8b7ce57 100644
--- a/lib/lp/registry/stories/distroseries/distroseries-admin.txt
+++ b/lib/lp/registry/stories/distroseries/distroseries-admin.txt
@@ -56,7 +56,6 @@ Registry experts do not have access to the 'Change details' link.
56 ... auth='Basic %s:test' % email)56 ... auth='Basic %s:test' % email)
57 >>> registry_browser.open('http://launchpad.test/ubuntu/happy')57 >>> registry_browser.open('http://launchpad.test/ubuntu/happy')
58 >>> registry_browser.getLink('Change details').click()58 >>> registry_browser.getLink('Change details').click()
59 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
60 Traceback (most recent call last):59 Traceback (most recent call last):
61 ...60 ...
62 zope.testbrowser.browser.LinkNotFoundError61 zope.testbrowser.browser.LinkNotFoundError
@@ -64,7 +63,6 @@ Registry experts do not have access to the 'Change details' link.
64And navigating directly to +edit is thwarted.63And navigating directly to +edit is thwarted.
6564
66 >>> registry_browser.open('http://launchpad.test/ubuntu/happy/+edit')65 >>> registry_browser.open('http://launchpad.test/ubuntu/happy/+edit')
67 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
68 Traceback (most recent call last):66 Traceback (most recent call last):
69 ...67 ...
70 zope.security.interfaces.Unauthorized: ...68 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/registry/stories/distroseries/xx-show-distroseries-packaging.txt b/lib/lp/registry/stories/distroseries/xx-show-distroseries-packaging.txt
index d491f5c..a8d9558 100644
--- a/lib/lp/registry/stories/distroseries/xx-show-distroseries-packaging.txt
+++ b/lib/lp/registry/stories/distroseries/xx-show-distroseries-packaging.txt
@@ -38,7 +38,6 @@ is linked, but the link to this page is not enabled.
38 url='http://launchpad.test/ubuntu/hoary/+needs-packaging'>38 url='http://launchpad.test/ubuntu/hoary/+needs-packaging'>
3939
40 >>> anon_browser.getLink('All upstream links')40 >>> anon_browser.getLink('All upstream links')
41 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
42 Traceback (most recent call last):41 Traceback (most recent call last):
43 ...42 ...
44 zope.testbrowser.browser.LinkNotFoundError43 zope.testbrowser.browser.LinkNotFoundError
@@ -118,7 +117,6 @@ linked, but the link to this page is not enabled.
118 url='http://launchpad.test/ubuntu/hoary/+packaging'>117 url='http://launchpad.test/ubuntu/hoary/+packaging'>
119118
120 >>> anon_browser.getLink('Needs upstream links')119 >>> anon_browser.getLink('Needs upstream links')
121 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
122 Traceback (most recent call last):120 Traceback (most recent call last):
123 ...121 ...
124 zope.testbrowser.browser.LinkNotFoundError122 zope.testbrowser.browser.LinkNotFoundError
diff --git a/lib/lp/registry/stories/gpg-coc/xx-ubuntu-codeofconduct-signer.txt b/lib/lp/registry/stories/gpg-coc/xx-ubuntu-codeofconduct-signer.txt
index 13cda85..a2e403d 100644
--- a/lib/lp/registry/stories/gpg-coc/xx-ubuntu-codeofconduct-signer.txt
+++ b/lib/lp/registry/stories/gpg-coc/xx-ubuntu-codeofconduct-signer.txt
@@ -25,7 +25,6 @@ A regular user can't see the link to Foo Bar's signed codes of conduct.
25 Signed Ubuntu Code of Conduct: Yes25 Signed Ubuntu Code of Conduct: Yes
2626
27 >>> browser.getLink(url='+codesofconduct')27 >>> browser.getLink(url='+codesofconduct')
28 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
29 Traceback (most recent call last):28 Traceback (most recent call last):
30 ...29 ...
31 zope.testbrowser.browser.LinkNotFoundError30 zope.testbrowser.browser.LinkNotFoundError
diff --git a/lib/lp/registry/stories/location/personlocation-edit.txt b/lib/lp/registry/stories/location/personlocation-edit.txt
index 14f336b..89385a5 100644
--- a/lib/lp/registry/stories/location/personlocation-edit.txt
+++ b/lib/lp/registry/stories/location/personlocation-edit.txt
@@ -13,7 +13,6 @@ A user cannot set another user's +editlocation page.
1313
14 >>> nopriv_browser = setupBrowser(auth="Basic no-priv@canonical.com:test")14 >>> nopriv_browser = setupBrowser(auth="Basic no-priv@canonical.com:test")
15 >>> nopriv_browser.open('http://launchpad.test/~zzz/+editlocation')15 >>> nopriv_browser.open('http://launchpad.test/~zzz/+editlocation')
16 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
17 Traceback (most recent call last):16 Traceback (most recent call last):
18 ...17 ...
19 zope.security.interfaces.Unauthorized: ...18 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/registry/stories/mailinglists/lifecycle.txt b/lib/lp/registry/stories/mailinglists/lifecycle.txt
index 203f3c2..63d2ff6 100644
--- a/lib/lp/registry/stories/mailinglists/lifecycle.txt
+++ b/lib/lp/registry/stories/mailinglists/lifecycle.txt
@@ -230,7 +230,6 @@ Anonymous users cannot see the link, because they cannot even see the
230private team.230private team.
231231
232 >>> anon_browser.open('http://launchpad.test/~bassists')232 >>> anon_browser.open('http://launchpad.test/~bassists')
233 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
234 Traceback (most recent call last):233 Traceback (most recent call last):
235 ...234 ...
236 zope.publisher.interfaces.NotFound: Object: <...>, name: '~bassists'235 zope.publisher.interfaces.NotFound: Object: <...>, name: '~bassists'
@@ -238,7 +237,6 @@ private team.
238The same is true for normal users who are not team members.237The same is true for normal users who are not team members.
239238
240 >>> browser.open('http://launchpad.test/~bassists')239 >>> browser.open('http://launchpad.test/~bassists')
241 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
242 Traceback (most recent call last):240 Traceback (most recent call last):
243 ...241 ...
244 zope.publisher.interfaces.NotFound: Object: <...>, name: '~bassists'242 zope.publisher.interfaces.NotFound: Object: <...>, name: '~bassists'
@@ -248,7 +246,6 @@ Members who are not owners can see the link.
248 >>> cprov_browser = setupBrowser(246 >>> cprov_browser = setupBrowser(
249 ... auth='Basic celso.providelo@canonical.com:test')247 ... auth='Basic celso.providelo@canonical.com:test')
250 >>> cprov_browser.open('http://launchpad.test/~bassists')248 >>> cprov_browser.open('http://launchpad.test/~bassists')
251 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
252 Traceback (most recent call last):249 Traceback (most recent call last):
253 ...250 ...
254 zope.publisher.interfaces.NotFound: Object: <...>, name: '~bassists'251 zope.publisher.interfaces.NotFound: Object: <...>, name: '~bassists'
diff --git a/lib/lp/registry/stories/mailinglists/subscriptions.txt b/lib/lp/registry/stories/mailinglists/subscriptions.txt
index 5ab421c..525698e 100644
--- a/lib/lp/registry/stories/mailinglists/subscriptions.txt
+++ b/lib/lp/registry/stories/mailinglists/subscriptions.txt
@@ -377,13 +377,11 @@ does not show either link.
377 Create a mailing list377 Create a mailing list
378378
379 >>> carlos_browser.getLink('Subscribe')379 >>> carlos_browser.getLink('Subscribe')
380 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
381 Traceback (most recent call last):380 Traceback (most recent call last):
382 ...381 ...
383 zope.testbrowser.browser.LinkNotFoundError382 zope.testbrowser.browser.LinkNotFoundError
384383
385 >>> carlos_browser.getLink('Unsubscribe')384 >>> carlos_browser.getLink('Unsubscribe')
386 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
387 Traceback (most recent call last):385 Traceback (most recent call last):
388 ...386 ...
389 zope.testbrowser.browser.LinkNotFoundError387 zope.testbrowser.browser.LinkNotFoundError
diff --git a/lib/lp/registry/stories/milestone/xx-create-milestone-on-distribution.txt b/lib/lp/registry/stories/milestone/xx-create-milestone-on-distribution.txt
index a5f6829..cbf71cc 100644
--- a/lib/lp/registry/stories/milestone/xx-create-milestone-on-distribution.txt
+++ b/lib/lp/registry/stories/milestone/xx-create-milestone-on-distribution.txt
@@ -5,7 +5,6 @@ Team (ubuntu-team).
5 >>> name12_browser = setupBrowser(auth='Basic test@canonical.com:test')5 >>> name12_browser = setupBrowser(auth='Basic test@canonical.com:test')
6 >>> name12_browser.open(6 >>> name12_browser.open(
7 ... 'http://launchpad.test/ubuntu/hoary/+addmilestone')7 ... 'http://launchpad.test/ubuntu/hoary/+addmilestone')
8 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
9 Traceback (most recent call last):8 Traceback (most recent call last):
10 ...9 ...
11 zope.security.interfaces.Unauthorized: ...10 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/registry/stories/milestone/xx-milestone-add-and-edit.txt b/lib/lp/registry/stories/milestone/xx-milestone-add-and-edit.txt
index d7cb196..a167369 100644
--- a/lib/lp/registry/stories/milestone/xx-milestone-add-and-edit.txt
+++ b/lib/lp/registry/stories/milestone/xx-milestone-add-and-edit.txt
@@ -31,25 +31,21 @@ see the link to add a milestone nor access the page directly.
3131
32 >>> user_browser.open('http://launchpad.test/alsa-utils/trunk')32 >>> user_browser.open('http://launchpad.test/alsa-utils/trunk')
33 >>> user_browser.getLink('Create milestone').click()33 >>> user_browser.getLink('Create milestone').click()
34 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
35 Traceback (most recent call last):34 Traceback (most recent call last):
36 ...35 ...
37 zope.testbrowser.browser.LinkNotFoundError36 zope.testbrowser.browser.LinkNotFoundError
38 >>> user_browser.open(37 >>> user_browser.open(
39 ... 'http://launchpad.test/alsa-utils/trunk/+addmilestone')38 ... 'http://launchpad.test/alsa-utils/trunk/+addmilestone')
40 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
41 Traceback (most recent call last):39 Traceback (most recent call last):
42 ...40 ...
43 zope.security.interfaces.Unauthorized: ...41 zope.security.interfaces.Unauthorized: ...
4442
45 >>> user_browser.open('http://launchpad.test/ubuntu/hoary')43 >>> user_browser.open('http://launchpad.test/ubuntu/hoary')
46 >>> user_browser.getLink('Create milestone').click()44 >>> user_browser.getLink('Create milestone').click()
47 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
48 Traceback (most recent call last):45 Traceback (most recent call last):
49 ...46 ...
50 zope.testbrowser.browser.LinkNotFoundError47 zope.testbrowser.browser.LinkNotFoundError
51 >>> user_browser.open('http://launchpad.test/ubuntu/hoary/+addmilestone')48 >>> user_browser.open('http://launchpad.test/ubuntu/hoary/+addmilestone')
52 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
53 Traceback (most recent call last):49 Traceback (most recent call last):
54 ...50 ...
55 zope.security.interfaces.Unauthorized: ...51 zope.security.interfaces.Unauthorized: ...
@@ -86,7 +82,6 @@ But we can't subscribe to project milestones, since they are not real objects.
8682
87 >>> user_browser.open('http://launchpad.test/mozilla/+milestone/1.0')83 >>> user_browser.open('http://launchpad.test/mozilla/+milestone/1.0')
88 >>> user_browser.getLink('Subscribe to bug mail')84 >>> user_browser.getLink('Subscribe to bug mail')
89 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
90 Traceback (most recent call last):85 Traceback (most recent call last):
91 ...86 ...
92 zope.testbrowser.browser.LinkNotFoundError87 zope.testbrowser.browser.LinkNotFoundError
diff --git a/lib/lp/registry/stories/object/xx-object-branding.txt b/lib/lp/registry/stories/object/xx-object-branding.txt
index e8ee21c..79c75f1 100644
--- a/lib/lp/registry/stories/object/xx-object-branding.txt
+++ b/lib/lp/registry/stories/object/xx-object-branding.txt
@@ -17,7 +17,6 @@ Team branding
1717
18 >>> browser = setupBrowser(auth='Basic no-priv@canonical.com:test')18 >>> browser = setupBrowser(auth='Basic no-priv@canonical.com:test')
19 >>> browser.open('http://launchpad.test/~ubuntu-team/+branding')19 >>> browser.open('http://launchpad.test/~ubuntu-team/+branding')
20 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
21 Traceback (most recent call last):20 Traceback (most recent call last):
22 ...21 ...
23 zope.security.interfaces.Unauthorized: ...22 zope.security.interfaces.Unauthorized: ...
@@ -80,7 +79,6 @@ Distribution branding
8079
81 >>> browser = setupBrowser(auth='Basic no-priv@canonical.com:test')80 >>> browser = setupBrowser(auth='Basic no-priv@canonical.com:test')
82 >>> browser.open('http://launchpad.test/kubuntu/+edit')81 >>> browser.open('http://launchpad.test/kubuntu/+edit')
83 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
84 Traceback (most recent call last):82 Traceback (most recent call last):
85 ...83 ...
86 zope.security.interfaces.Unauthorized: ...84 zope.security.interfaces.Unauthorized: ...
@@ -141,7 +139,6 @@ ProjectGroup branding
141139
142 >>> browser = setupBrowser(auth='Basic no-priv@canonical.com:test')140 >>> browser = setupBrowser(auth='Basic no-priv@canonical.com:test')
143 >>> browser.open('http://launchpad.test/mozilla/+branding')141 >>> browser.open('http://launchpad.test/mozilla/+branding')
144 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
145 Traceback (most recent call last):142 Traceback (most recent call last):
146 ...143 ...
147 zope.security.interfaces.Unauthorized: ...144 zope.security.interfaces.Unauthorized: ...
@@ -204,7 +201,6 @@ Product branding
204201
205 >>> browser = setupBrowser(auth='Basic no-priv@canonical.com:test')202 >>> browser = setupBrowser(auth='Basic no-priv@canonical.com:test')
206 >>> browser.open('http://launchpad.test/jokosher/+branding')203 >>> browser.open('http://launchpad.test/jokosher/+branding')
207 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
208 Traceback (most recent call last):204 Traceback (most recent call last):
209 ...205 ...
210 zope.security.interfaces.Unauthorized: ...206 zope.security.interfaces.Unauthorized: ...
@@ -271,7 +267,6 @@ Again, for Sprints, we have not exposed icon editing through the UI.
271267
272 >>> browser = setupBrowser(auth='Basic no-priv@canonical.com:test')268 >>> browser = setupBrowser(auth='Basic no-priv@canonical.com:test')
273 >>> browser.open('http://launchpad.test/sprints/futurista/+branding')269 >>> browser.open('http://launchpad.test/sprints/futurista/+branding')
274 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
275 Traceback (most recent call last):270 Traceback (most recent call last):
276 ...271 ...
277 zope.security.interfaces.Unauthorized: ...272 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/registry/stories/person/xx-add-sshkey.txt b/lib/lp/registry/stories/person/xx-add-sshkey.txt
index 3771907..8283d4f 100644
--- a/lib/lp/registry/stories/person/xx-add-sshkey.txt
+++ b/lib/lp/registry/stories/person/xx-add-sshkey.txt
@@ -133,7 +133,6 @@ Launchpad administrators are not allowed to poke at other user's ssh keys.
133 >>> logout()133 >>> logout()
134 >>> admin_browser = setupBrowserFreshLogin(foo_bar)134 >>> admin_browser = setupBrowserFreshLogin(foo_bar)
135 >>> admin_browser.open('http://launchpad.test/~salgado/+editsshkeys')135 >>> admin_browser.open('http://launchpad.test/~salgado/+editsshkeys')
136 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
137 Traceback (most recent call last):136 Traceback (most recent call last):
138 ...137 ...
139 zope.security.interfaces.Unauthorized: ...138 zope.security.interfaces.Unauthorized: ...
@@ -173,7 +172,6 @@ belong to him, it will fail with an error message.
173172
174 >>> browser.getControl(name='key', index=0).value = '1'173 >>> browser.getControl(name='key', index=0).value = '1'
175 >>> browser.getControl('Remove', index=0).click()174 >>> browser.getControl('Remove', index=0).click()
176 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
177 Traceback (most recent call last):175 Traceback (most recent call last):
178 lp.app.errors.UnexpectedFormData: ...176 lp.app.errors.UnexpectedFormData: ...
179177
@@ -183,7 +181,6 @@ this case we'll raise an UnexpectedFormData.
183 >>> browser.open('http://launchpad.test/~salgado/+editsshkeys')181 >>> browser.open('http://launchpad.test/~salgado/+editsshkeys')
184 >>> browser.getControl(name='key', index=0).value = ''182 >>> browser.getControl(name='key', index=0).value = ''
185 >>> browser.getControl('Remove', index=0).click()183 >>> browser.getControl('Remove', index=0).click()
186 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
187 Traceback (most recent call last):184 Traceback (most recent call last):
188 ...185 ...
189 lp.app.errors.UnexpectedFormData: ...186 lp.app.errors.UnexpectedFormData: ...
diff --git a/lib/lp/registry/stories/person/xx-admin-person-review.txt b/lib/lp/registry/stories/person/xx-admin-person-review.txt
index e191f41..0f38bee 100644
--- a/lib/lp/registry/stories/person/xx-admin-person-review.txt
+++ b/lib/lp/registry/stories/person/xx-admin-person-review.txt
@@ -30,7 +30,6 @@ Registry experts can't change the displayname.
30 >>> expert_browser.getControl(30 >>> expert_browser.getControl(
31 ... 'Display Name', index=0).value = 'The one and only Salgado'31 ... 'Display Name', index=0).value = 'The one and only Salgado'
32 >>> expert_browser.getControl('Change').click()32 >>> expert_browser.getControl('Change').click()
33 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
34 Traceback (most recent call last):33 Traceback (most recent call last):
35 ...34 ...
36 zope.security.interfaces.Unauthorized: ...35 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/registry/stories/person/xx-adminpeoplemerge.txt b/lib/lp/registry/stories/person/xx-adminpeoplemerge.txt
index cf0b6b8..cc9928a 100644
--- a/lib/lp/registry/stories/person/xx-adminpeoplemerge.txt
+++ b/lib/lp/registry/stories/person/xx-adminpeoplemerge.txt
@@ -7,12 +7,10 @@ for merging people and another one for merging teams, which obviously
7are only accessible to LP admins.7are only accessible to LP admins.
88
9 >>> user_browser.open('http://launchpad.test/people/+adminpeoplemerge')9 >>> user_browser.open('http://launchpad.test/people/+adminpeoplemerge')
10 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
11 Traceback (most recent call last):10 Traceback (most recent call last):
12 ...11 ...
13 zope.security.interfaces.Unauthorized: ...12 zope.security.interfaces.Unauthorized: ...
14 >>> user_browser.open('http://launchpad.test/people/+adminteammerge')13 >>> user_browser.open('http://launchpad.test/people/+adminteammerge')
15 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
16 Traceback (most recent call last):14 Traceback (most recent call last):
17 ...15 ...
18 zope.security.interfaces.Unauthorized: ...16 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/registry/stories/person/xx-approve-members.txt b/lib/lp/registry/stories/person/xx-approve-members.txt
index bd55eba..34486c2 100644
--- a/lib/lp/registry/stories/person/xx-approve-members.txt
+++ b/lib/lp/registry/stories/person/xx-approve-members.txt
@@ -73,7 +73,6 @@ as an inactive one.
73And now we see that there are no pending members left.73And now we see that there are no pending members left.
7474
75 >>> browser.getLink('Approve or decline members')75 >>> browser.getLink('Approve or decline members')
76 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
77 Traceback (most recent call last):76 Traceback (most recent call last):
78 ...77 ...
79 zope.testbrowser.browser.LinkNotFoundError78 zope.testbrowser.browser.LinkNotFoundError
diff --git a/lib/lp/registry/stories/person/xx-deactivate-account.txt b/lib/lp/registry/stories/person/xx-deactivate-account.txt
index dfef5de..43d2c59 100644
--- a/lib/lp/registry/stories/person/xx-deactivate-account.txt
+++ b/lib/lp/registry/stories/person/xx-deactivate-account.txt
@@ -84,7 +84,6 @@ the user themselves --not even Launchpad admins can do that on behalf of other
84people.84people.
8585
86 >>> admin_browser.open('http://launchpad.test/~cprov/+deactivate-account')86 >>> admin_browser.open('http://launchpad.test/~cprov/+deactivate-account')
87 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
88 Traceback (most recent call last):87 Traceback (most recent call last):
89 ...88 ...
90 zope.security.interfaces.Unauthorized: ...89 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/registry/stories/person/xx-person-claim-merge.txt b/lib/lp/registry/stories/person/xx-person-claim-merge.txt
index 1c8462f..f7cfaa3 100644
--- a/lib/lp/registry/stories/person/xx-person-claim-merge.txt
+++ b/lib/lp/registry/stories/person/xx-person-claim-merge.txt
@@ -9,7 +9,7 @@ exception that will redirect the user to the login page.
9 >>> link = anon_browser.getLink("Are you Diogo Matsubara?")9 >>> link = anon_browser.getLink("Are you Diogo Matsubara?")
10 >>> print(link.url)10 >>> print(link.url)
11 http://launchpad.test/people/+requestmerge?field.dupe_person=matsubara11 http://launchpad.test/people/+requestmerge?field.dupe_person=matsubara
12 >>> link.click() # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON212 >>> link.click()
13 Traceback (most recent call last):13 Traceback (most recent call last):
14 ...14 ...
15 zope.security.interfaces.Unauthorized: ...15 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/registry/stories/person/xx-person-home.txt b/lib/lp/registry/stories/person/xx-person-home.txt
index 28a99ab..99fe5cb 100644
--- a/lib/lp/registry/stories/person/xx-person-home.txt
+++ b/lib/lp/registry/stories/person/xx-person-home.txt
@@ -80,7 +80,6 @@ However, when the user visits someone else's page, they see no such URL.
80And there is no helpful link.80And there is no helpful link.
8181
82 >>> print(user_browser.getLink('openid help').url)82 >>> print(user_browser.getLink('openid help').url)
83 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
84 Traceback (most recent call last):83 Traceback (most recent call last):
85 ...84 ...
86 zope.testbrowser.browser.LinkNotFoundError85 zope.testbrowser.browser.LinkNotFoundError
diff --git a/lib/lp/registry/stories/pillar/xx-pillar-deactivation.txt b/lib/lp/registry/stories/pillar/xx-pillar-deactivation.txt
index 7e9127f..f55c567 100644
--- a/lib/lp/registry/stories/pillar/xx-pillar-deactivation.txt
+++ b/lib/lp/registry/stories/pillar/xx-pillar-deactivation.txt
@@ -44,24 +44,20 @@ The projects are now no longer publicly visible:
4444
45 >>> anon_browser.open('http://launchpad.test/projects/+index?text=mozilla')45 >>> anon_browser.open('http://launchpad.test/projects/+index?text=mozilla')
46 >>> anon_browser.getLink(url='/firefox')46 >>> anon_browser.getLink(url='/firefox')
47 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
48 Traceback (most recent call last):47 Traceback (most recent call last):
49 ...48 ...
50 zope.testbrowser.browser.LinkNotFoundError49 zope.testbrowser.browser.LinkNotFoundError
51 >>> anon_browser.getLink(url='/mozilla')50 >>> anon_browser.getLink(url='/mozilla')
52 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
53 Traceback (most recent call last):51 Traceback (most recent call last):
54 ...52 ...
55 zope.testbrowser.browser.LinkNotFoundError53 zope.testbrowser.browser.LinkNotFoundError
5654
57 >>> anon_browser.open('http://launchpad.test/firefox')55 >>> anon_browser.open('http://launchpad.test/firefox')
58 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
59 Traceback (most recent call last):56 Traceback (most recent call last):
60 ...57 ...
61 zope.publisher.interfaces.NotFound: ...58 zope.publisher.interfaces.NotFound: ...
6259
63 >>> anon_browser.open('http://launchpad.test/mozilla')60 >>> anon_browser.open('http://launchpad.test/mozilla')
64 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
65 Traceback (most recent call last):61 Traceback (most recent call last):
66 ...62 ...
67 zope.publisher.interfaces.NotFound: ...63 zope.publisher.interfaces.NotFound: ...
diff --git a/lib/lp/registry/stories/pillar/xx-pillar-traversal.txt b/lib/lp/registry/stories/pillar/xx-pillar-traversal.txt
index e4b57ec..392b75b 100644
--- a/lib/lp/registry/stories/pillar/xx-pillar-traversal.txt
+++ b/lib/lp/registry/stories/pillar/xx-pillar-traversal.txt
@@ -16,7 +16,6 @@ canonical URL.
16 >>> browser.open('http://launchpad.test/firefox')16 >>> browser.open('http://launchpad.test/firefox')
1717
18 >>> browser.open('http://launchpad.test/iceweasel')18 >>> browser.open('http://launchpad.test/iceweasel')
19 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
20 Traceback (most recent call last):19 Traceback (most recent call last):
21 ...20 ...
22 zope.publisher.interfaces.NotFound: ...21 zope.publisher.interfaces.NotFound: ...
diff --git a/lib/lp/registry/stories/product/xx-product-files.txt b/lib/lp/registry/stories/product/xx-product-files.txt
index 04f7fc8..0d99ad7 100644
--- a/lib/lp/registry/stories/product/xx-product-files.txt
+++ b/lib/lp/registry/stories/product/xx-product-files.txt
@@ -191,7 +191,6 @@ Ensure a non-owner doesn't see the 'Add download file' link.
191191
192 >>> non_owner.open('http://launchpad.test/firefox/+download')192 >>> non_owner.open('http://launchpad.test/firefox/+download')
193 >>> non_owner.getLink('1.0.0')193 >>> non_owner.getLink('1.0.0')
194 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
195 Traceback (most recent call last):194 Traceback (most recent call last):
196 ...195 ...
197 zope.testbrowser.browser.LinkNotFoundError196 zope.testbrowser.browser.LinkNotFoundError
@@ -208,7 +207,6 @@ navigating to the product release page.
208207
209 >>> non_owner.open('http://launchpad.test/firefox/1.0/1.0.0')208 >>> non_owner.open('http://launchpad.test/firefox/1.0/1.0.0')
210 >>> non_owner.getLink('Add download file')209 >>> non_owner.getLink('Add download file')
211 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
212 Traceback (most recent call last):210 Traceback (most recent call last):
213 ...211 ...
214 zope.testbrowser.browser.LinkNotFoundError212 zope.testbrowser.browser.LinkNotFoundError
diff --git a/lib/lp/registry/stories/product/xx-product-package-pages.txt b/lib/lp/registry/stories/product/xx-product-package-pages.txt
index 15b7576..4659d66 100644
--- a/lib/lp/registry/stories/product/xx-product-package-pages.txt
+++ b/lib/lp/registry/stories/product/xx-product-package-pages.txt
@@ -44,7 +44,6 @@ Any logged in users can still see the links to create a packaging link.
4444
45 >>> anon_browser.open('http://launchpad.test/evolution/+packages')45 >>> anon_browser.open('http://launchpad.test/evolution/+packages')
46 >>> anon_browser.getLink(url='/evolution/trunk/+ubuntupkg')46 >>> anon_browser.getLink(url='/evolution/trunk/+ubuntupkg')
47 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
48 Traceback (most recent call last):47 Traceback (most recent call last):
49 ...48 ...
50 zope.testbrowser.browser.LinkNotFoundError49 zope.testbrowser.browser.LinkNotFoundError
diff --git a/lib/lp/registry/stories/product/xx-projects-index.txt b/lib/lp/registry/stories/product/xx-projects-index.txt
index 2ccbef5..4ca2e43 100644
--- a/lib/lp/registry/stories/product/xx-projects-index.txt
+++ b/lib/lp/registry/stories/product/xx-projects-index.txt
@@ -5,7 +5,6 @@ Just make sure this page contains the right links:
5This link was removed.5This link was removed.
66
7 >>> user_browser.getLink("Show all teams").url7 >>> user_browser.getLink("Show all teams").url
8 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
9 Traceback (most recent call last):8 Traceback (most recent call last):
10 ...9 ...
11 zope.testbrowser.browser.LinkNotFoundError10 zope.testbrowser.browser.LinkNotFoundError
diff --git a/lib/lp/registry/stories/productrelease/xx-productrelease-basics.txt b/lib/lp/registry/stories/productrelease/xx-productrelease-basics.txt
index 4c2e840..4ece9de 100644
--- a/lib/lp/registry/stories/productrelease/xx-productrelease-basics.txt
+++ b/lib/lp/registry/stories/productrelease/xx-productrelease-basics.txt
@@ -8,13 +8,11 @@ release nor can access the page directly.
88
9 >>> user_browser.open('http://launchpad.test/firefox/+milestone/1.0')9 >>> user_browser.open('http://launchpad.test/firefox/+milestone/1.0')
10 >>> user_browser.getLink('Create release').click()10 >>> user_browser.getLink('Create release').click()
11 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
12 Traceback (most recent call last):11 Traceback (most recent call last):
13 ...12 ...
14 zope.testbrowser.browser.LinkNotFoundError13 zope.testbrowser.browser.LinkNotFoundError
15 >>> user_browser.open(14 >>> user_browser.open(
16 ... 'http://launchpad.test/firefox/+milestone/1.0/+addrelease')15 ... 'http://launchpad.test/firefox/+milestone/1.0/+addrelease')
17 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
18 Traceback (most recent call last):16 Traceback (most recent call last):
19 ...17 ...
20 zope.security.interfaces.Unauthorized: ...18 zope.security.interfaces.Unauthorized: ...
@@ -92,7 +90,6 @@ has a productrelease.
9290
93 >>> browser.open('http://launchpad.test/firefox/+milestone/1.0')91 >>> browser.open('http://launchpad.test/firefox/+milestone/1.0')
94 >>> browser.getLink('Create release').click()92 >>> browser.getLink('Create release').click()
95 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
96 Traceback (most recent call last):93 Traceback (most recent call last):
97 ...94 ...
98 zope.testbrowser.browser.LinkNotFoundError95 zope.testbrowser.browser.LinkNotFoundError
diff --git a/lib/lp/registry/stories/productrelease/xx-productrelease-delete.txt b/lib/lp/registry/stories/productrelease/xx-productrelease-delete.txt
index 9bd1066..f33a780 100644
--- a/lib/lp/registry/stories/productrelease/xx-productrelease-delete.txt
+++ b/lib/lp/registry/stories/productrelease/xx-productrelease-delete.txt
@@ -22,12 +22,10 @@ link and cannot access the +delete page.
22 0.9.2 "One (secure) Tree Hill" : Mozilla Firefox22 0.9.2 "One (secure) Tree Hill" : Mozilla Firefox
2323
24 >>> user_browser.getLink(url='/firefox/trunk/0.9.2/+delete')24 >>> user_browser.getLink(url='/firefox/trunk/0.9.2/+delete')
25 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
26 Traceback (most recent call last):25 Traceback (most recent call last):
27 ...26 ...
28 zope.testbrowser.browser.LinkNotFoundError27 zope.testbrowser.browser.LinkNotFoundError
29 >>> user_browser.open('http://launchpad.test/firefox/trunk/0.9.2/+delete')28 >>> user_browser.open('http://launchpad.test/firefox/trunk/0.9.2/+delete')
30 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
31 Traceback (most recent call last):29 Traceback (most recent call last):
32 ...30 ...
33 zope.security.interfaces.Unauthorized: ...31 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/registry/stories/productseries/xx-productseries-add-and-edit.txt b/lib/lp/registry/stories/productseries/xx-productseries-add-and-edit.txt
index d8a665b..8ac9740 100644
--- a/lib/lp/registry/stories/productseries/xx-productseries-add-and-edit.txt
+++ b/lib/lp/registry/stories/productseries/xx-productseries-add-and-edit.txt
@@ -10,12 +10,10 @@ Person won't even see the link nor can access the page directly.
1010
11 >>> user_browser.open('http://launchpad.test/firefox')11 >>> user_browser.open('http://launchpad.test/firefox')
12 >>> user_browser.getLink('Register a series').click()12 >>> user_browser.getLink('Register a series').click()
13 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
14 Traceback (most recent call last):13 Traceback (most recent call last):
15 ...14 ...
16 zope.testbrowser.browser.LinkNotFoundError15 zope.testbrowser.browser.LinkNotFoundError
17 >>> user_browser.open('http://launchpad.test/firefox/+addseries')16 >>> user_browser.open('http://launchpad.test/firefox/+addseries')
18 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
19 Traceback (most recent call last):17 Traceback (most recent call last):
20 ...18 ...
21 zope.security.interfaces.Unauthorized: ...19 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/registry/stories/productseries/xx-productseries-delete.txt b/lib/lp/registry/stories/productseries/xx-productseries-delete.txt
index 92bfa76..179e316 100644
--- a/lib/lp/registry/stories/productseries/xx-productseries-delete.txt
+++ b/lib/lp/registry/stories/productseries/xx-productseries-delete.txt
@@ -92,7 +92,6 @@ that the series was deleted, and can not see a link to it anymore.
92 Series trunk deleted.92 Series trunk deleted.
9393
94 >>> owner_browser.getLink('trunk')94 >>> owner_browser.getLink('trunk')
95 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
96 Traceback (most recent call last):95 Traceback (most recent call last):
97 ...96 ...
98 zope.testbrowser.browser.LinkNotFoundError97 zope.testbrowser.browser.LinkNotFoundError
diff --git a/lib/lp/registry/stories/project/xx-project-add.txt b/lib/lp/registry/stories/project/xx-project-add.txt
index 4e6a32a..6f4903e 100644
--- a/lib/lp/registry/stories/project/xx-project-add.txt
+++ b/lib/lp/registry/stories/project/xx-project-add.txt
@@ -4,7 +4,6 @@ Adding new projects
4Normal users should not be able to do this:4Normal users should not be able to do this:
55
6 >>> user_browser.open("http://launchpad.test/projectgroups/+new")6 >>> user_browser.open("http://launchpad.test/projectgroups/+new")
7 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
8 Traceback (most recent call last):7 Traceback (most recent call last):
9 ...8 ...
10 zope.security.interfaces.Unauthorized: ...9 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/registry/stories/project/xx-project-edit.txt b/lib/lp/registry/stories/project/xx-project-edit.txt
index 840697c..e6c0e97 100644
--- a/lib/lp/registry/stories/project/xx-project-edit.txt
+++ b/lib/lp/registry/stories/project/xx-project-edit.txt
@@ -23,7 +23,6 @@ The maintainer of a project can edit its details.
23Regular users can't access the +review page.23Regular users can't access the +review page.
2424
25 >>> browser.getLink('Administer')25 >>> browser.getLink('Administer')
26 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
27 Traceback (most recent call last):26 Traceback (most recent call last):
28 ...27 ...
29 zope.testbrowser.browser.LinkNotFoundError28 zope.testbrowser.browser.LinkNotFoundError
@@ -123,7 +122,6 @@ Registry experts are not allowed access to the +edit page.
123122
124 >>> expert_browser.open('http://launchpad.test/new-name')123 >>> expert_browser.open('http://launchpad.test/new-name')
125 >>> expert_browser.getLink('Change details').click()124 >>> expert_browser.getLink('Change details').click()
126 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
127 Traceback (most recent call last):125 Traceback (most recent call last):
128 ...126 ...
129 zope.testbrowser.browser.LinkNotFoundError127 zope.testbrowser.browser.LinkNotFoundError
@@ -131,7 +129,6 @@ Registry experts are not allowed access to the +edit page.
131And going directly to the URL is not allowed.129And going directly to the URL is not allowed.
132130
133 >>> expert_browser.open('http://launchpad.test/new-name/+edit')131 >>> expert_browser.open('http://launchpad.test/new-name/+edit')
134 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
135 Traceback (most recent call last):132 Traceback (most recent call last):
136 ...133 ...
137 zope.security.interfaces.Unauthorized: ...134 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/registry/stories/project/xx-project-index.txt b/lib/lp/registry/stories/project/xx-project-index.txt
index 086ce39..b84ce00 100644
--- a/lib/lp/registry/stories/project/xx-project-index.txt
+++ b/lib/lp/registry/stories/project/xx-project-index.txt
@@ -46,14 +46,12 @@ project.
4646
47 >>> browser.open('http://launchpad.test/mozilla')47 >>> browser.open('http://launchpad.test/mozilla')
48 >>> browser.getLink('Register a project in The Mozilla Project')48 >>> browser.getLink('Register a project in The Mozilla Project')
49 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
50 Traceback (most recent call last):49 Traceback (most recent call last):
51 ...50 ...
52 zope.testbrowser.browser.LinkNotFoundError51 zope.testbrowser.browser.LinkNotFoundError
5352
54 >>> browser.addHeader('Authorization', 'Basic no-priv@canonical.com:test')53 >>> browser.addHeader('Authorization', 'Basic no-priv@canonical.com:test')
55 >>> browser.getLink('Register a project in The Mozilla Project')54 >>> browser.getLink('Register a project in The Mozilla Project')
56 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
57 Traceback (most recent call last):55 Traceback (most recent call last):
58 ...56 ...
59 zope.testbrowser.browser.LinkNotFoundError57 zope.testbrowser.browser.LinkNotFoundError
@@ -83,17 +81,14 @@ question' or 'Help translate' buttons.
8381
84 >>> user_browser.open('http://launchpad.test/a-test-group')82 >>> user_browser.open('http://launchpad.test/a-test-group')
85 >>> user_browser.getLink('Report a bug')83 >>> user_browser.getLink('Report a bug')
86 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
87 Traceback (most recent call last):84 Traceback (most recent call last):
88 ..85 ..
89 zope.testbrowser.browser.LinkNotFoundError86 zope.testbrowser.browser.LinkNotFoundError
90 >>> user_browser.getLink('Ask a question')87 >>> user_browser.getLink('Ask a question')
91 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
92 Traceback (most recent call last):88 Traceback (most recent call last):
93 ..89 ..
94 zope.testbrowser.browser.LinkNotFoundError90 zope.testbrowser.browser.LinkNotFoundError
95 >>> user_browser.getLink('Help translate')91 >>> user_browser.getLink('Help translate')
96 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
97 Traceback (most recent call last):92 Traceback (most recent call last):
98 ..93 ..
99 zope.testbrowser.browser.LinkNotFoundError94 zope.testbrowser.browser.LinkNotFoundError
@@ -102,27 +97,22 @@ Also, the bugs, blueprints, translations and answers facets will be disabled:
10297
103 >>> user_browser.open('http://launchpad.test/a-test-group')98 >>> user_browser.open('http://launchpad.test/a-test-group')
104 >>> user_browser.getLink('Bugs')99 >>> user_browser.getLink('Bugs')
105 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
106 Traceback (most recent call last):100 Traceback (most recent call last):
107 ..101 ..
108 zope.testbrowser.browser.LinkNotFoundError102 zope.testbrowser.browser.LinkNotFoundError
109 >>> user_browser.getLink('Blueprints')103 >>> user_browser.getLink('Blueprints')
110 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
111 Traceback (most recent call last):104 Traceback (most recent call last):
112 ..105 ..
113 zope.testbrowser.browser.LinkNotFoundError106 zope.testbrowser.browser.LinkNotFoundError
114 >>> user_browser.getLink('Answers')107 >>> user_browser.getLink('Answers')
115 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
116 Traceback (most recent call last):108 Traceback (most recent call last):
117 ..109 ..
118 zope.testbrowser.browser.LinkNotFoundError110 zope.testbrowser.browser.LinkNotFoundError
119 >>> user_browser.getLink('Answers')111 >>> user_browser.getLink('Answers')
120 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
121 Traceback (most recent call last):112 Traceback (most recent call last):
122 ..113 ..
123 zope.testbrowser.browser.LinkNotFoundError114 zope.testbrowser.browser.LinkNotFoundError
124 >>> user_browser.getLink('Translations')115 >>> user_browser.getLink('Translations')
125 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
126 Traceback (most recent call last):116 Traceback (most recent call last):
127 ..117 ..
128 zope.testbrowser.browser.LinkNotFoundError118 zope.testbrowser.browser.LinkNotFoundError
diff --git a/lib/lp/registry/stories/team-polls/create-polls.txt b/lib/lp/registry/stories/team-polls/create-polls.txt
index ed0e1bd..9f8e833 100644
--- a/lib/lp/registry/stories/team-polls/create-polls.txt
+++ b/lib/lp/registry/stories/team-polls/create-polls.txt
@@ -20,7 +20,6 @@ administrator. There's no link leading to the +newpoll page, but the user can
20easily guess it.20easily guess it.
2121
22 >>> no_priv_browser.open('http://launchpad.test/~ubuntu-team/+newpoll')22 >>> no_priv_browser.open('http://launchpad.test/~ubuntu-team/+newpoll')
23 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
24 Traceback (most recent call last):23 Traceback (most recent call last):
25 ...24 ...
26 zope.security.interfaces.Unauthorized: ...25 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/registry/stories/team-polls/edit-options.txt b/lib/lp/registry/stories/team-polls/edit-options.txt
index 1cbf715..8610451 100644
--- a/lib/lp/registry/stories/team-polls/edit-options.txt
+++ b/lib/lp/registry/stories/team-polls/edit-options.txt
@@ -13,7 +13,6 @@ team's administrators:
13 OptionA OptionA Yes13 OptionA OptionA Yes
14 ...14 ...
15 >>> user_browser.getLink('[Edit]')15 >>> user_browser.getLink('[Edit]')
16 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
17 Traceback (most recent call last):16 Traceback (most recent call last):
18 ...17 ...
19 zope.testbrowser.browser.LinkNotFoundError18 zope.testbrowser.browser.LinkNotFoundError
diff --git a/lib/lp/registry/stories/team/xx-team-add-my-teams.txt b/lib/lp/registry/stories/team/xx-team-add-my-teams.txt
index 4fb0e3a..caadf07 100644
--- a/lib/lp/registry/stories/team/xx-team-add-my-teams.txt
+++ b/lib/lp/registry/stories/team/xx-team-add-my-teams.txt
@@ -103,7 +103,6 @@ your teams as members.
103103
104 >>> browser.open('http://launchpad.test/~ubuntu-team')104 >>> browser.open('http://launchpad.test/~ubuntu-team')
105 >>> browser.getLink('Add one of my teams')105 >>> browser.getLink('Add one of my teams')
106 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
107 Traceback (most recent call last):106 Traceback (most recent call last):
108 ...107 ...
109 zope.testbrowser.browser.LinkNotFoundError108 zope.testbrowser.browser.LinkNotFoundError
@@ -118,7 +117,6 @@ your teams as members.
118The page is restricted to logged in users.117The page is restricted to logged in users.
119118
120 >>> anon_browser.open('http://launchpad.test/~ubuntu-team/+add-my-teams')119 >>> anon_browser.open('http://launchpad.test/~ubuntu-team/+add-my-teams')
121 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
122 Traceback (most recent call last):120 Traceback (most recent call last):
123 zope.security.interfaces.Unauthorized: ...121 zope.security.interfaces.Unauthorized: ...
124122
diff --git a/lib/lp/registry/stories/team/xx-team-home.txt b/lib/lp/registry/stories/team/xx-team-home.txt
index b6f36e0..6ec6b77 100644
--- a/lib/lp/registry/stories/team/xx-team-home.txt
+++ b/lib/lp/registry/stories/team/xx-team-home.txt
@@ -159,7 +159,6 @@ As teams do not have OpenID Logins, there is no link in the Contact
159details section for help.159details section for help.
160160
161 >>> sample_browser.getLink('OpenID help')161 >>> sample_browser.getLink('OpenID help')
162 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
163 Traceback (most recent call last):162 Traceback (most recent call last):
164 ...163 ...
165 zope.testbrowser.browser.LinkNotFoundError164 zope.testbrowser.browser.LinkNotFoundError
diff --git a/lib/lp/registry/stories/teammembership/private-team.txt b/lib/lp/registry/stories/teammembership/private-team.txt
index c334281..36b2812 100644
--- a/lib/lp/registry/stories/teammembership/private-team.txt
+++ b/lib/lp/registry/stories/teammembership/private-team.txt
@@ -41,7 +41,6 @@ The page indicates that the team is private.
41A normal user cannot see the team.41A normal user cannot see the team.
4242
43 >>> user_browser.open('http://launchpad.test/~private-team')43 >>> user_browser.open('http://launchpad.test/~private-team')
44 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
45 Traceback (most recent call last):44 Traceback (most recent call last):
46 ...45 ...
47 zope.publisher.interfaces.NotFound: ...46 zope.publisher.interfaces.NotFound: ...
@@ -49,7 +48,6 @@ A normal user cannot see the team.
49An anonymous user cannot see the team.48An anonymous user cannot see the team.
5049
51 >>> anon_browser.open('http://launchpad.test/~private-team')50 >>> anon_browser.open('http://launchpad.test/~private-team')
52 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
53 Traceback (most recent call last):51 Traceback (most recent call last):
54 ...52 ...
55 zope.publisher.interfaces.NotFound: ...53 zope.publisher.interfaces.NotFound: ...
diff --git a/lib/lp/registry/stories/teammembership/xx-add-member.txt b/lib/lp/registry/stories/teammembership/xx-add-member.txt
index bdf48f2..f5a2733 100644
--- a/lib/lp/registry/stories/teammembership/xx-add-member.txt
+++ b/lib/lp/registry/stories/teammembership/xx-add-member.txt
@@ -91,7 +91,6 @@ rights to edit the membership in question) can do it.
9191
92 >>> landscape_admin_browser.open(92 >>> landscape_admin_browser.open(
93 ... 'http://launchpad.test/~launchpad/+invitation/landscape-developers')93 ... 'http://launchpad.test/~launchpad/+invitation/landscape-developers')
94 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
95 Traceback (most recent call last):94 Traceback (most recent call last):
96 ...95 ...
97 zope.security.interfaces.Unauthorized: ...96 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/registry/stories/teammembership/xx-member-renewed-membership.txt b/lib/lp/registry/stories/teammembership/xx-member-renewed-membership.txt
index c3b457c..5388662 100644
--- a/lib/lp/registry/stories/teammembership/xx-member-renewed-membership.txt
+++ b/lib/lp/registry/stories/teammembership/xx-member-renewed-membership.txt
@@ -53,7 +53,6 @@ Other users (apart from Karl) can't see that page.
5353
54 >>> user_browser.open('http://launchpad.test/~karl/+expiringmembership/'54 >>> user_browser.open('http://launchpad.test/~karl/+expiringmembership/'
55 ... 'ubuntu-mirror-admins')55 ... 'ubuntu-mirror-admins')
56 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
57 Traceback (most recent call last):56 Traceback (most recent call last):
58 ...57 ...
59 zope.security.interfaces.Unauthorized: ...58 zope.security.interfaces.Unauthorized: ...
@@ -203,7 +202,6 @@ Any user who's not an admin of landscape-developers can't even see that page.
203202
204 >>> user_browser.open('http://launchpad.test/~landscape-developers'203 >>> user_browser.open('http://launchpad.test/~landscape-developers'
205 ... '/+expiringmembership/ubuntu-mirror-admins')204 ... '/+expiringmembership/ubuntu-mirror-admins')
206 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
207 Traceback (most recent call last):205 Traceback (most recent call last):
208 ...206 ...
209 zope.security.interfaces.Unauthorized: ...207 zope.security.interfaces.Unauthorized: ...
diff --git a/lib/lp/registry/stories/teammembership/xx-team-leave.txt b/lib/lp/registry/stories/teammembership/xx-team-leave.txt
index b2ee0a6..b2d66d3 100644
--- a/lib/lp/registry/stories/teammembership/xx-team-leave.txt
+++ b/lib/lp/registry/stories/teammembership/xx-team-leave.txt
@@ -71,7 +71,6 @@ team's overview page.
7171
72 # The 'Leave' link should be gone.72 # The 'Leave' link should be gone.
73 >>> browser.getLink('Leave the Team')73 >>> browser.getLink('Leave the Team')
74 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
75 Traceback (most recent call last):74 Traceback (most recent call last):
76 ...75 ...
77 zope.testbrowser.browser.LinkNotFoundError76 zope.testbrowser.browser.LinkNotFoundError
@@ -87,7 +86,6 @@ Team owners do not have the option to leave.
87 ... find_tag_by_id(browser.contents, 'your-involvement')))86 ... find_tag_by_id(browser.contents, 'your-involvement')))
88 You own this team...87 You own this team...
89 >>> browser.getLink('Leave the Team')88 >>> browser.getLink('Leave the Team')
90 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
91 Traceback (most recent call last):89 Traceback (most recent call last):
92 ...90 ...
93 zope.testbrowser.browser.LinkNotFoundError91 zope.testbrowser.browser.LinkNotFoundError
diff --git a/lib/lp/registry/stories/teammembership/xx-teammembership.txt b/lib/lp/registry/stories/teammembership/xx-teammembership.txt
index ff6f13d..4cca381 100644
--- a/lib/lp/registry/stories/teammembership/xx-teammembership.txt
+++ b/lib/lp/registry/stories/teammembership/xx-teammembership.txt
@@ -64,7 +64,6 @@ say that there's no need to join since the user is already a member of that
64team.64team.
6565
66 >>> browser.getLink('Join the team')66 >>> browser.getLink('Join the team')
67 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
68 Traceback (most recent call last):67 Traceback (most recent call last):
69 ...68 ...
70 zope.testbrowser.browser.LinkNotFoundError69 zope.testbrowser.browser.LinkNotFoundError
@@ -177,7 +176,6 @@ If it was a restricted team, users wouldn't even see a link to join the team.
177 Restricted Team176 Restricted Team
178177
179 >>> browser.getLink('Join the team')178 >>> browser.getLink('Join the team')
180 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
181 Traceback (most recent call last):179 Traceback (most recent call last):
182 ...180 ...
183 zope.testbrowser.browser.LinkNotFoundError181 zope.testbrowser.browser.LinkNotFoundError
diff --git a/lib/lp/registry/tests/person_from_principal.txt b/lib/lp/registry/tests/person_from_principal.txt
index d414705..04ff03d 100644
--- a/lib/lp/registry/tests/person_from_principal.txt
+++ b/lib/lp/registry/tests/person_from_principal.txt
@@ -10,7 +10,6 @@ raised.
10 ... id = 4210 ... id = 42
11 ... person = None11 ... person = None
12 >>> person_from_principal(NoLaunchpadPrincipal())12 >>> person_from_principal(NoLaunchpadPrincipal())
13 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
14 Traceback (most recent call last):13 Traceback (most recent call last):
15 ...14 ...
16 zope.interface.interfaces.ComponentLookupError15 zope.interface.interfaces.ComponentLookupError
diff --git a/lib/lp/services/database/doc/db-policy.txt b/lib/lp/services/database/doc/db-policy.txt
index aa90ed7..48255e9 100644
--- a/lib/lp/services/database/doc/db-policy.txt
+++ b/lib/lp/services/database/doc/db-policy.txt
@@ -38,7 +38,7 @@ a single master.
38 False38 False
3939
40 >>> ro_janitor.display_name = 'Janice the Janitor'40 >>> ro_janitor.display_name = 'Janice the Janitor'
41 >>> transaction.commit() # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON241 >>> transaction.commit()
42 Traceback (most recent call last):42 Traceback (most recent call last):
43 ...43 ...
44 storm.database.InternalError: ...44 storm.database.InternalError: ...
@@ -81,7 +81,6 @@ resources.
81 >>> with SlaveOnlyDatabasePolicy():81 >>> with SlaveOnlyDatabasePolicy():
82 ... whoops = IMasterStore(Person).find(82 ... whoops = IMasterStore(Person).find(
83 ... Person, Person.name == 'janitor').one()83 ... Person, Person.name == 'janitor').one()
84 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
85 Traceback (most recent call last):84 Traceback (most recent call last):
86 ...85 ...
87 lp.services.database.interfaces.DisallowedStore: master86 lp.services.database.interfaces.DisallowedStore: master
@@ -95,7 +94,6 @@ database transaction.
95 >>> with DatabaseBlockedPolicy():94 >>> with DatabaseBlockedPolicy():
96 ... whoops = IStore(Person).find(95 ... whoops = IStore(Person).find(
97 ... Person, Person.name == 'janitor').one()96 ... Person, Person.name == 'janitor').one()
98 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
99 Traceback (most recent call last):97 Traceback (most recent call last):
100 ...98 ...
101 lp.services.database.interfaces.DisallowedStore: ('main', 'default')99 lp.services.database.interfaces.DisallowedStore: ('main', 'default')
diff --git a/lib/lp/services/database/doc/multitablecopy.txt b/lib/lp/services/database/doc/multitablecopy.txt
index 618ebd7..f6ffd41 100644
--- a/lib/lp/services/database/doc/multitablecopy.txt
+++ b/lib/lp/services/database/doc/multitablecopy.txt
@@ -327,7 +327,6 @@ which means that the attempt to insert it will violate a unique constraint.
327 ... % numeric_holding_table)327 ... % numeric_holding_table)
328328
329 >>> copier.pour(transaction)329 >>> copier.pour(transaction)
330 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
331 Traceback (most recent call last):330 Traceback (most recent call last):
332 ...331 ...
333 storm.database.IntegrityError: duplicate ... violates unique constraint ...332 storm.database.IntegrityError: duplicate ... violates unique constraint ...
diff --git a/lib/lp/services/database/doc/storm.txt b/lib/lp/services/database/doc/storm.txt
index abe5dc3..82823a5 100644
--- a/lib/lp/services/database/doc/storm.txt
+++ b/lib/lp/services/database/doc/storm.txt
@@ -72,7 +72,7 @@ from a store other than the correct Master.
72 >>> t = transaction.begin()72 >>> t = transaction.begin()
73 >>> person = main_slave.find(Person, name='mark').one()73 >>> person = main_slave.find(Person, name='mark').one()
74 >>> person.display_name = 'Cannot change'74 >>> person.display_name = 'Cannot change'
75 >>> transaction.commit() # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON275 >>> transaction.commit()
76 Traceback (most recent call last):76 Traceback (most recent call last):
77 ...77 ...
78 storm.database.InternalError: ...78 storm.database.InternalError: ...
@@ -94,7 +94,6 @@ similarly wrapped.
94 >>> print(person.displayname)94 >>> print(person.displayname)
95 No Privileges Person95 No Privileges Person
96 >>> person.name = 'foo'96 >>> person.name = 'foo'
97 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
98 Traceback (most recent call last):97 Traceback (most recent call last):
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches

to status/vote changes: