Merge lp:~stevenk/launchpad/double-word-death into lp:launchpad

Proposed by Steve Kowalik
Status: Merged
Approved by: Curtis Hovey
Approved revision: no longer in the source branch.
Merged at revision: 14852
Proposed branch: lp:~stevenk/launchpad/double-word-death
Merge into: lp:launchpad
Diff against target: 926 lines (+89/-89)
53 files modified
lib/lp/answers/browser/question.py (+2/-2)
lib/lp/answers/errors.py (+3/-3)
lib/lp/answers/stories/question-search-multiple-languages.txt (+1/-1)
lib/lp/answers/stories/question-workflow.txt (+1/-1)
lib/lp/app/longpoll/__init__.py (+2/-2)
lib/lp/app/widgets/launchpadtarget.py (+3/-3)
lib/lp/app/widgets/tests/test_launchpadtarget.py (+2/-2)
lib/lp/archivepublisher/tests/test_customupload.py (+2/-2)
lib/lp/archiveuploader/nascentuploadfile.py (+2/-2)
lib/lp/blueprints/tests/test_specification.py (+2/-2)
lib/lp/bugs/browser/bugtarget.py (+2/-2)
lib/lp/bugs/browser/tests/bug-views.txt (+1/-1)
lib/lp/bugs/browser/tests/bugtask-edit-views.txt (+2/-2)
lib/lp/bugs/doc/bug-watch-activity.txt (+1/-1)
lib/lp/bugs/doc/distribution-upstream-bug-report.txt (+1/-1)
lib/lp/bugs/doc/filebug-data-parser.txt (+1/-1)
lib/lp/bugs/javascript/bug_subscription_portlet.js (+3/-3)
lib/lp/bugs/model/bugwatch.py (+2/-2)
lib/lp/bugs/stories/webservice/xx-bug-tracker.txt (+2/-2)
lib/lp/bugs/templates/bug-mute.pt (+1/-1)
lib/lp/bugs/tests/test_apportjob.py (+2/-2)
lib/lp/code/browser/tests/test_sourcepackagerecipe.py (+1/-1)
lib/lp/code/errors.py (+1/-1)
lib/lp/code/model/tests/test_branch_privacy_triggers.py (+2/-2)
lib/lp/code/stories/branches/xx-subscribing-branches.txt (+1/-1)
lib/lp/code/windmill/tests/test_recipe_inline_distroseries_edit.py (+2/-2)
lib/lp/code/windmill/tests/test_recipe_request_build.py (+2/-2)
lib/lp/code/xmlrpc/tests/test_codehosting.py (+2/-2)
lib/lp/codehosting/scanner/tests/test_bzrsync.py (+2/-2)
lib/lp/registry/browser/mailinglists.py (+2/-2)
lib/lp/registry/browser/milestone.py (+2/-2)
lib/lp/registry/browser/person.py (+1/-1)
lib/lp/registry/browser/tests/browser-views.txt (+1/-1)
lib/lp/registry/browser/tests/productrelease-views.txt (+1/-1)
lib/lp/registry/browser/tests/test_person.py (+2/-2)
lib/lp/registry/browser/tests/test_team.py (+2/-2)
lib/lp/registry/doc/distroseries.txt (+1/-1)
lib/lp/registry/javascript/milestonetable.js (+2/-2)
lib/lp/registry/javascript/tests/test_distroseriesdifferences_details.js (+2/-2)
lib/lp/registry/model/person.py (+1/-1)
lib/lp/registry/model/teammembership.py (+2/-2)
lib/lp/registry/stories/milestone/object-milestones.txt (+1/-1)
lib/lp/registry/tests/test_commercialprojects_vocabularies.py (+2/-2)
lib/lp/registry/tests/test_team.py (+2/-2)
lib/lp/services/database/sqlbase.py (+2/-2)
lib/lp/services/doc/limitedlist.txt (+1/-1)
lib/lp/services/gpg/doc/gpghandler.txt (+1/-1)
lib/lp/services/webapp/interfaces.py (+2/-2)
lib/lp/soyuz/scripts/packagecopier.py (+1/-1)
lib/lp/soyuz/stories/distribution/xx-distribution-packages.txt (+1/-1)
utilities/format-imports (+2/-2)
utilities/paste (+2/-2)
utilities/top-tests.py (+2/-2)
To merge this branch: bzr merge lp:~stevenk/launchpad/double-word-death
Reviewer Review Type Date Requested Status
Curtis Hovey (community) code Approve
Review via email: mp+94065@code.launchpad.net

Commit message

[r=sinzui][bug=931575,934778] Remove some double words and fix some grammar errors.

Description of the change

Remove double words of: "be the for we will of".

Fix grammar errors that I noticed.

To post a comment you must log in.
Revision history for this message
Curtis Hovey (sinzui) wrote :

Thank you. I think I am responsible for 40% of these mistakes.

review: Approve (code)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'lib/lp/answers/browser/question.py'
--- lib/lp/answers/browser/question.py 2012-01-01 02:58:52 +0000
+++ lib/lp/answers/browser/question.py 2012-02-22 01:28:20 +0000
@@ -1,4 +1,4 @@
1# Copyright 2009-2011 Canonical Ltd. This software is licensed under the1# Copyright 2009-2012 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).2# GNU Affero General Public License version 3 (see the file LICENSE).
33
4"""Question views."""4"""Question views."""
@@ -1299,7 +1299,7 @@
12991299
1300 Those found in `values` are marked as selected. The list of rendered1300 Those found in `values` are marked as selected. The list of rendered
1301 values is controlled by the search query. The currently selected1301 values is controlled by the search query. The currently selected
1302 value is always added the the set.1302 value is always added to the set.
1303 """1303 """
1304 rendered_items = []1304 rendered_items = []
1305 rendered_values = set()1305 rendered_values = set()
13061306
=== modified file 'lib/lp/answers/errors.py'
--- lib/lp/answers/errors.py 2011-06-16 18:51:45 +0000
+++ lib/lp/answers/errors.py 2012-02-22 01:28:20 +0000
@@ -1,4 +1,4 @@
1# Copyright 2011 Canonical Ltd. This software is licensed under the1# Copyright 2011-2012 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).2# GNU Affero General Public License version 3 (see the file LICENSE).
33
4__metaclass__ = type4__metaclass__ = type
@@ -47,12 +47,12 @@
4747
48@error_status(httplib.BAD_REQUEST)48@error_status(httplib.BAD_REQUEST)
49class NotMessageOwnerError(ValueError):49class NotMessageOwnerError(ValueError):
50 """The person be the the message owner."""50 """The person must be the message owner."""
5151
5252
53@error_status(httplib.BAD_REQUEST)53@error_status(httplib.BAD_REQUEST)
54class NotQuestionOwnerError(ValueError):54class NotQuestionOwnerError(ValueError):
55 """The person be the the question owner."""55 """The person must be the question owner."""
5656
5757
58@error_status(httplib.BAD_REQUEST)58@error_status(httplib.BAD_REQUEST)
5959
=== modified file 'lib/lp/answers/stories/question-search-multiple-languages.txt'
--- lib/lp/answers/stories/question-search-multiple-languages.txt 2012-01-15 11:06:57 +0000
+++ lib/lp/answers/stories/question-search-multiple-languages.txt 2012-02-22 01:28:20 +0000
@@ -31,7 +31,7 @@
3131
32The questions match the languages inferred from by GeoIP32The questions match the languages inferred from by GeoIP
33127.0.0.1 is mapped to South Africa in the test suite. The language33127.0.0.1 is mapped to South Africa in the test suite. The language
34control shows the intersection of the the user's languages and the34control shows the intersection of the user's languages and the
35languages of the target's questions. In this example:35languages of the target's questions. In this example:
36set(['af', 'en', 'st', 'xh', 'zu']) & set(['en', 'es']) == set(en).36set(['af', 'en', 'st', 'xh', 'zu']) & set(['en', 'es']) == set(en).
3737
3838
=== modified file 'lib/lp/answers/stories/question-workflow.txt'
--- lib/lp/answers/stories/question-workflow.txt 2011-11-30 23:31:25 +0000
+++ lib/lp/answers/stories/question-workflow.txt 2012-02-22 01:28:20 +0000
@@ -159,7 +159,7 @@
159 ... "support enabled. You can use apt-get or adept to upgrade.")159 ... "support enabled. You can use apt-get or adept to upgrade.")
160 >>> support_browser.getControl('Propose Answer').click()160 >>> support_browser.getControl('Propose Answer').click()
161161
162This moves the the question to the Answered state and adds the answer to162This moves the question to the Answered state and adds the answer to
163the end of the discussion:163the end of the discussion:
164164
165 >>> print find_request_status(support_browser.contents)165 >>> print find_request_status(support_browser.contents)
166166
=== modified file 'lib/lp/app/longpoll/__init__.py'
--- lib/lp/app/longpoll/__init__.py 2011-09-20 15:30:54 +0000
+++ lib/lp/app/longpoll/__init__.py 2012-02-22 01:28:20 +0000
@@ -1,4 +1,4 @@
1# Copyright 2011 Canonical Ltd. This software is licensed under the1# Copyright 2011-2012 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).2# GNU Affero General Public License version 3 (see the file LICENSE).
33
4"""Long-poll infrastructure."""4"""Long-poll infrastructure."""
@@ -39,7 +39,7 @@
39def emit(source, event_name=u"", **data):39def emit(source, event_name=u"", **data):
40 """Convenience method to emit a message for an event.40 """Convenience method to emit a message for an event.
4141
42 :param source: Something that can be be adapted to `ILongPollEvent`.42 :param source: Something that can be adapted to `ILongPollEvent`.
43 :param event_name: The name of the event to subscribe to. This is used to43 :param event_name: The name of the event to subscribe to. This is used to
44 look up a named adapter from `target` to `ILongPollEvent`.44 look up a named adapter from `target` to `ILongPollEvent`.
45 :param data: See `ILongPollEvent.emit`.45 :param data: See `ILongPollEvent.emit`.
4646
=== modified file 'lib/lp/app/widgets/launchpadtarget.py'
--- lib/lp/app/widgets/launchpadtarget.py 2012-01-01 02:58:52 +0000
+++ lib/lp/app/widgets/launchpadtarget.py 2012-02-22 01:28:20 +0000
@@ -1,4 +1,4 @@
1# Copyright 2009-2011 Canonical Ltd. This software is licensed under the1# Copyright 2009-2012 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).2# GNU Affero General Public License version 3 (see the file LICENSE).
33
4__metaclass__ = type4__metaclass__ = type
@@ -144,7 +144,7 @@
144 entered_name = self.request.form_ng.getOne(144 entered_name = self.request.form_ng.getOne(
145 '%s.package' % self.name)145 '%s.package' % self.name)
146 raise LaunchpadValidationError(146 raise LaunchpadValidationError(
147 "There is no package name '%s' published in %s"147 "There is no package named '%s' published in %s."
148 % (entered_name, distribution.displayname))148 % (entered_name, distribution.displayname))
149 if package_name is None:149 if package_name is None:
150 return distribution150 return distribution
@@ -158,7 +158,7 @@
158 dsp = distribution.getSourcePackage(source_name)158 dsp = distribution.getSourcePackage(source_name)
159 except NotFoundError:159 except NotFoundError:
160 raise LaunchpadValidationError(160 raise LaunchpadValidationError(
161 "There is no package name '%s' published in %s"161 "There is no package named '%s' published in %s."
162 % (package_name.name, distribution.displayname))162 % (package_name.name, distribution.displayname))
163 return dsp163 return dsp
164 else:164 else:
165165
=== modified file 'lib/lp/app/widgets/tests/test_launchpadtarget.py'
--- lib/lp/app/widgets/tests/test_launchpadtarget.py 2012-01-01 02:58:52 +0000
+++ lib/lp/app/widgets/tests/test_launchpadtarget.py 2012-02-22 01:28:20 +0000
@@ -1,4 +1,4 @@
1# Copyright 2011 Canonical Ltd. This software is licensed under the1# Copyright 2011-2012 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).2# GNU Affero General Public License version 3 (see the file LICENSE).
33
4__metaclass__ = type4__metaclass__ = type
@@ -213,7 +213,7 @@
213 form['field.target.package'] = 'non-existent'213 form['field.target.package'] = 'non-existent'
214 self.widget.request = LaunchpadTestRequest(form=form)214 self.widget.request = LaunchpadTestRequest(form=form)
215 message = (215 message = (
216 "There is no package name 'non-existent' published in Fnord")216 "There is no package named 'non-existent' published in Fnord.")
217 self.assertRaisesWithContent(217 self.assertRaisesWithContent(
218 LaunchpadValidationError, message, self.widget.getInputValue)218 LaunchpadValidationError, message, self.widget.getInputValue)
219 self.assertEqual(message, self.widget.error())219 self.assertEqual(message, self.widget.error())
220220
=== modified file 'lib/lp/archivepublisher/tests/test_customupload.py'
--- lib/lp/archivepublisher/tests/test_customupload.py 2010-08-20 20:31:18 +0000
+++ lib/lp/archivepublisher/tests/test_customupload.py 2012-02-22 01:28:20 +0000
@@ -1,4 +1,4 @@
1# Copyright 2009-2010 Canonical Ltd. This software is licensed under the1# Copyright 2009-2012 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).2# GNU Affero General Public License version 3 (see the file LICENSE).
33
4"""Tests for `CustomUploads`."""4"""Tests for `CustomUploads`."""
@@ -57,7 +57,7 @@
57 self.assertEntries(['1.0', '1.1', '1.2', '1.3'])57 self.assertEntries(['1.0', '1.1', '1.2', '1.3'])
5858
59 # `fixCurrentSymlink` will keep only the latest 3 and create a59 # `fixCurrentSymlink` will keep only the latest 3 and create a
60 # 'current' symbolic link the the highest one.60 # 'current' symbolic link the highest one.
61 custom_processor.fixCurrentSymlink()61 custom_processor.fixCurrentSymlink()
62 self.assertEntries(['1.1', '1.2', '1.3', 'current'])62 self.assertEntries(['1.1', '1.2', '1.3', 'current'])
63 self.assertEqual(63 self.assertEqual(
6464
=== modified file 'lib/lp/archiveuploader/nascentuploadfile.py'
--- lib/lp/archiveuploader/nascentuploadfile.py 2012-01-06 11:08:30 +0000
+++ lib/lp/archiveuploader/nascentuploadfile.py 2012-02-22 01:28:20 +0000
@@ -1,4 +1,4 @@
1# Copyright 2009-2011 Canonical Ltd. This software is licensed under the1# Copyright 2009-2012 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).2# GNU Affero General Public License version 3 (see the file LICENSE).
33
4"""Specific models for uploaded files"""4"""Specific models for uploaded files"""
@@ -579,7 +579,7 @@
579579
580 # Since DDEBs are generated after the original DEBs are processed580 # Since DDEBs are generated after the original DEBs are processed
581 # and considered by `dpkg-genchanges` they are only half-incorporated581 # and considered by `dpkg-genchanges` they are only half-incorporated
582 # the the binary upload changes file. DDEBs are only listed in the582 # the binary upload changes file. DDEBs are only listed in the
583 # Files/Checksums-Sha1/ChecksumsSha256 sections and missing from583 # Files/Checksums-Sha1/ChecksumsSha256 sections and missing from
584 # Binary/Description.584 # Binary/Description.
585 if not self.filename.endswith('.ddeb'):585 if not self.filename.endswith('.ddeb'):
586586
=== modified file 'lib/lp/blueprints/tests/test_specification.py'
--- lib/lp/blueprints/tests/test_specification.py 2012-01-01 02:58:52 +0000
+++ lib/lp/blueprints/tests/test_specification.py 2012-02-22 01:28:20 +0000
@@ -1,4 +1,4 @@
1# Copyright 2010-2011 Canonical Ltd. This software is licensed under the1# Copyright 2010-2012 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).2# GNU Affero General Public License version 3 (see the file LICENSE).
33
4"""Unit tests for Specification."""4"""Unit tests for Specification."""
@@ -118,7 +118,7 @@
118 self.new_names = NewSpecificationDefinitionStatus.items.mapping.keys()118 self.new_names = NewSpecificationDefinitionStatus.items.mapping.keys()
119119
120 def test_new_with_open_definition_status_creates_specification(self):120 def test_new_with_open_definition_status_creates_specification(self):
121 # Calling new() with an open definition status will will create121 # Calling new() with an open definition status will create
122 # a specification.122 # a specification.
123 self.assertTrue(123 self.assertTrue(
124 SpecificationDefinitionStatus.NEW.name in self.new_names)124 SpecificationDefinitionStatus.NEW.name in self.new_names)
125125
=== modified file 'lib/lp/bugs/browser/bugtarget.py'
--- lib/lp/bugs/browser/bugtarget.py 2012-02-09 12:42:00 +0000
+++ lib/lp/bugs/browser/bugtarget.py 2012-02-22 01:28:20 +0000
@@ -774,7 +774,7 @@
774 def inline_filebug_form_url(self):774 def inline_filebug_form_url(self):
775 """Return the URL to the inline filebug form.775 """Return the URL to the inline filebug form.
776776
777 If a token was passed to this view, it will be be passed through777 If a token was passed to this view, it will be passed through
778 to the inline bug filing form via the returned URL.778 to the inline bug filing form via the returned URL.
779 """779 """
780 url = canonical_url(self.context, view_name='+filebug-inline-form')780 url = canonical_url(self.context, view_name='+filebug-inline-form')
@@ -1173,7 +1173,7 @@
1173 def inline_filebug_form_url(self):1173 def inline_filebug_form_url(self):
1174 """Return the URL to the inline filebug form.1174 """Return the URL to the inline filebug form.
11751175
1176 If a token was passed to this view, it will be be passed through1176 If a token was passed to this view, it will be passed through
1177 to the inline bug filing form via the returned URL.1177 to the inline bug filing form via the returned URL.
11781178
1179 The URL returned will be the URL of the first of the current1179 The URL returned will be the URL of the first of the current
11801180
=== modified file 'lib/lp/bugs/browser/tests/bug-views.txt'
--- lib/lp/bugs/browser/tests/bug-views.txt 2011-12-30 07:38:46 +0000
+++ lib/lp/bugs/browser/tests/bug-views.txt 2012-02-22 01:28:20 +0000
@@ -358,7 +358,7 @@
358 'edit'358 'edit'
359359
360If we now unsubscribe Foo Bar, it will say 'Subscribe', since team360If we now unsubscribe Foo Bar, it will say 'Subscribe', since team
361unsubsription is handled by the remove icon next the the team in the361unsubsription is handled by the remove icon next the team in the
362subscribers portlet.362subscribers portlet.
363363
364 >>> bug_one.unsubscribe(foo_bar, foo_bar)364 >>> bug_one.unsubscribe(foo_bar, foo_bar)
365365
=== modified file 'lib/lp/bugs/browser/tests/bugtask-edit-views.txt'
--- lib/lp/bugs/browser/tests/bugtask-edit-views.txt 2011-12-24 17:49:30 +0000
+++ lib/lp/bugs/browser/tests/bugtask-edit-views.txt 2012-02-22 01:28:20 +0000
@@ -83,8 +83,8 @@
83 >>> for error in edit_view.errors:83 >>> for error in edit_view.errors:
84 ... print error84 ... print error
85 (u'ubuntu_thunderbird.target', u'Target',85 (u'ubuntu_thunderbird.target', u'Target',
86 LaunchpadValidationError(u"There is no package name 'no-such-package'86 LaunchpadValidationError(u"There is no package named 'no-such-package'
87 published in Ubuntu"))87 published in Ubuntu."))
8888
89An error is reported to the user when a bug is retargeted and there is89An error is reported to the user when a bug is retargeted and there is
90an existing task for the same target.90an existing task for the same target.
9191
=== modified file 'lib/lp/bugs/doc/bug-watch-activity.txt'
--- lib/lp/bugs/doc/bug-watch-activity.txt 2012-01-20 16:11:11 +0000
+++ lib/lp/bugs/doc/bug-watch-activity.txt 2012-02-22 01:28:20 +0000
@@ -114,7 +114,7 @@
114 >>> print bug_watch.activity.count()114 >>> print bug_watch.activity.count()
115 3115 3
116116
117And this time its result field will record that the the remote bug was117And this time its result field will record that the remote bug was
118not found.118not found.
119119
120 >>> most_recent_activity = bug_watch.activity.first()120 >>> most_recent_activity = bug_watch.activity.first()
121121
=== modified file 'lib/lp/bugs/doc/distribution-upstream-bug-report.txt'
--- lib/lp/bugs/doc/distribution-upstream-bug-report.txt 2011-12-24 15:28:06 +0000
+++ lib/lp/bugs/doc/distribution-upstream-bug-report.txt 2012-02-22 01:28:20 +0000
@@ -225,7 +225,7 @@
225Deltas225Deltas
226......226......
227227
228BugReportData also offers a set of of *_delta properties along with the228BugReportData also offers a set of *_delta properties along with the
229*_percentage properties.229*_percentage properties.
230230
231BugReportData.triaged_bugs_delta is the difference between the number of231BugReportData.triaged_bugs_delta is the difference between the number of
232232
=== modified file 'lib/lp/bugs/doc/filebug-data-parser.txt'
--- lib/lp/bugs/doc/filebug-data-parser.txt 2010-02-23 15:10:04 +0000
+++ lib/lp/bugs/doc/filebug-data-parser.txt 2012-02-22 01:28:20 +0000
@@ -189,7 +189,7 @@
189189
190==== HWDB submission keys ====190==== HWDB submission keys ====
191191
192The HWDB-Submission key is turned into a list of of strings, available192The HWDB-Submission key is turned into a list of strings, available
193through the hwdb_submission_keys attribute.193through the hwdb_submission_keys attribute.
194194
195 >>> data = FileBugData()195 >>> data = FileBugData()
196196
=== modified file 'lib/lp/bugs/javascript/bug_subscription_portlet.js'
--- lib/lp/bugs/javascript/bug_subscription_portlet.js 2011-09-27 06:06:13 +0000
+++ lib/lp/bugs/javascript/bug_subscription_portlet.js 2012-02-22 01:28:20 +0000
@@ -1,4 +1,4 @@
1/* Copyright 2011 Canonical Ltd. This software is licensed under the1/* Copyright 2011-2012 Canonical Ltd. This software is licensed under the
2 * GNU Affero General Public License version 3 (see the file LICENSE).2 * GNU Affero General Public License version 3 (see the file LICENSE).
3 *3 *
4 * Provide information and actions on all bug subscriptions a person holds.4 * Provide information and actions on all bug subscriptions a person holds.
@@ -309,7 +309,7 @@
309 .setStyle('textOverflow', 'ellipsis')309 .setStyle('textOverflow', 'ellipsis')
310 .setStyle('whiteSpace', 'nowrap')310 .setStyle('whiteSpace', 'nowrap')
311 .setStyle('width', '21em');311 .setStyle('width', '21em');
312 // This is the the node that description of the current subscription312 // This is the node that description of the current subscription
313 // status.313 // status.
314 var status_node = tag('div')314 var status_node = tag('div')
315 .addClass('subscription-status')315 .addClass('subscription-status')
@@ -328,7 +328,7 @@
328 .set('text',328 .set('text',
329 'You currently only receive email when this bug is closed.')329 'You currently only receive email when this bug is closed.')
330 );330 );
331 // This is the the node that contains the links to subscribe at a certain331 // This is the node that contains the links to subscribe at a certain
332 // level.332 // level.
333 var actions_node = tag('div')333 var actions_node = tag('div')
334 .addClass('subscription-actions')334 .addClass('subscription-actions')
335335
=== modified file 'lib/lp/bugs/model/bugwatch.py'
--- lib/lp/bugs/model/bugwatch.py 2011-12-30 06:14:56 +0000
+++ lib/lp/bugs/model/bugwatch.py 2012-02-22 01:28:20 +0000
@@ -1,4 +1,4 @@
1# Copyright 2009 Canonical Ltd. This software is licensed under the1# Copyright 2009-2012 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).2# GNU Affero General Public License version 3 (see the file LICENSE).
33
4# pylint: disable-msg=E0611,W02124# pylint: disable-msg=E0611,W0212
@@ -331,7 +331,7 @@
331 self.next_check <= datetime.now(utc)):331 self.next_check <= datetime.now(utc)):
332 # If the watch is already scheduled for a time in the past332 # If the watch is already scheduled for a time in the past
333 # (or for right now) it can't be rescheduled, since it333 # (or for right now) it can't be rescheduled, since it
334 # should be be checked by the next checkwatches run anyway.334 # should be checked by the next checkwatches run anyway.
335 return False335 return False
336336
337 if self.activity.is_empty():337 if self.activity.is_empty():
338338
=== modified file 'lib/lp/bugs/stories/webservice/xx-bug-tracker.txt'
--- lib/lp/bugs/stories/webservice/xx-bug-tracker.txt 2011-07-13 06:08:16 +0000
+++ lib/lp/bugs/stories/webservice/xx-bug-tracker.txt 2012-02-22 01:28:20 +0000
@@ -31,7 +31,7 @@
31 web_link: u'http://bugs.launchpad.dev/bugs/bugtrackers/mozilla.org'31 web_link: u'http://bugs.launchpad.dev/bugs/bugtrackers/mozilla.org'
32 --- ...32 --- ...
3333
34A bug tracker can be retrieved using the the bug tracker collection's34A bug tracker can be retrieved using the bug tracker collection's
35getByName named operation.35getByName named operation.
3636
37 >>> bug_tracker = anon_webservice.named_get(37 >>> bug_tracker = anon_webservice.named_get(
@@ -40,7 +40,7 @@
40 >>> print bug_tracker['name']40 >>> print bug_tracker['name']
41 gnome-bugzilla41 gnome-bugzilla
4242
43A bug tracker can be retrieved using the the bug tracker collection's43A bug tracker can be retrieved using the bug tracker collection's
44queryByBaseURL named operation.44queryByBaseURL named operation.
4545
46 >>> bug_tracker = anon_webservice.named_get(46 >>> bug_tracker = anon_webservice.named_get(
4747
=== modified file 'lib/lp/bugs/templates/bug-mute.pt'
--- lib/lp/bugs/templates/bug-mute.pt 2011-03-23 16:28:51 +0000
+++ lib/lp/bugs/templates/bug-mute.pt 2012-02-22 01:28:20 +0000
@@ -16,7 +16,7 @@
16 <div id="maincontent">16 <div id="maincontent">
17 <div id="nonportlets" class="readable">17 <div id="nonportlets" class="readable">
18 <p>18 <p>
19 If you mute a bug you will receive no mail about the the bug19 If you mute a bug you will receive no mail about the bug
20 at all until you unmute it again.20 at all until you unmute it again.
21 </p>21 </p>
2222
2323
=== modified file 'lib/lp/bugs/tests/test_apportjob.py'
--- lib/lp/bugs/tests/test_apportjob.py 2012-01-01 02:58:52 +0000
+++ lib/lp/bugs/tests/test_apportjob.py 2012-02-22 01:28:20 +0000
@@ -1,4 +1,4 @@
1# Copyright 2010-2011 Canonical Ltd. This software is licensed under the1# Copyright 2010-2012 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).2# GNU Affero General Public License version 3 (see the file LICENSE).
33
4"""Tests for ApportJobs."""4"""Tests for ApportJobs."""
@@ -126,7 +126,7 @@
126 data_dict['hwdb_submission_keys'],126 data_dict['hwdb_submission_keys'],
127 "Values for hwdb_submission_keys do not match")127 "Values for hwdb_submission_keys do not match")
128128
129 # The attachments list of of the data_dict dict will be of129 # The attachments list of the data_dict dict will be of
130 # the same length as the attachments list in the filebug_data130 # the same length as the attachments list in the filebug_data
131 # object.131 # object.
132 self.assertEqual(132 self.assertEqual(
133133
=== modified file 'lib/lp/code/browser/tests/test_sourcepackagerecipe.py'
--- lib/lp/code/browser/tests/test_sourcepackagerecipe.py 2012-01-15 13:32:27 +0000
+++ lib/lp/code/browser/tests/test_sourcepackagerecipe.py 2012-02-22 01:28:20 +0000
@@ -1255,7 +1255,7 @@
1255 naked_build.date_created + timedelta(minutes=10))1255 naked_build.date_created + timedelta(minutes=10))
1256 set_status(build6, BuildStatus.FULLYBUILT)1256 set_status(build6, BuildStatus.FULLYBUILT)
1257 set_status(build5, BuildStatus.FAILEDTOBUILD)1257 set_status(build5, BuildStatus.FAILEDTOBUILD)
1258 # When there are 4+ pending builds, only the the most1258 # When there are 4+ pending builds, only the most
1259 # recently-completed build is returned (i.e. build1, not build2)1259 # recently-completed build is returned (i.e. build1, not build2)
1260 self.assertEqual(1260 self.assertEqual(
1261 [build4, build3, build2, build1, build6],1261 [build4, build3, build2, build1, build6],
12621262
=== modified file 'lib/lp/code/errors.py'
--- lib/lp/code/errors.py 2012-02-06 05:33:31 +0000
+++ lib/lp/code/errors.py 2012-02-22 01:28:20 +0000
@@ -297,7 +297,7 @@
297297
298298
299class UpdatePreviewDiffNotReady(Exception):299class UpdatePreviewDiffNotReady(Exception):
300 """Raised if the the preview diff is not ready to run."""300 """Raised if the preview diff is not ready to run."""
301301
302302
303class UserHasExistingReview(Exception):303class UserHasExistingReview(Exception):
304304
=== modified file 'lib/lp/code/model/tests/test_branch_privacy_triggers.py'
--- lib/lp/code/model/tests/test_branch_privacy_triggers.py 2012-01-20 15:42:44 +0000
+++ lib/lp/code/model/tests/test_branch_privacy_triggers.py 2012-02-22 01:28:20 +0000
@@ -1,4 +1,4 @@
1# Copyright 2011 Canonical Ltd. This software is licensed under the1# Copyright 2011-2012 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).2# GNU Affero General Public License version 3 (see the file LICENSE).
33
4"""Tests that the triggers to maintain the branch table transitively_private4"""Tests that the triggers to maintain the branch table transitively_private
@@ -133,7 +133,7 @@
133 def testRemoveStackedOn(self):133 def testRemoveStackedOn(self):
134 # 5 is private, 1 stacked on 5, so 1 is transitively private.134 # 5 is private, 1 stacked on 5, so 1 is transitively private.
135 # Unstack 1.135 # Unstack 1.
136 # 1 should no longer be be transitively private.136 # 1 should no longer be transitively private.
137 self.createBranches()137 self.createBranches()
138 self.updateStackedOnForBranch(1, 5)138 self.updateStackedOnForBranch(1, 5)
139 self.updatePrivacyForBranch(5, True)139 self.updatePrivacyForBranch(5, True)
140140
=== modified file 'lib/lp/code/stories/branches/xx-subscribing-branches.txt'
--- lib/lp/code/stories/branches/xx-subscribing-branches.txt 2012-01-15 13:32:27 +0000
+++ lib/lp/code/stories/branches/xx-subscribing-branches.txt 2012-02-22 01:28:20 +0000
@@ -218,7 +218,7 @@
218===========================218===========================
219219
220In order to edit a team subscription the logged in user needs to be a member220In order to edit a team subscription the logged in user needs to be a member
221of the team that is subscribed, or must the the person who subscribed the team221of the team that is subscribed, or must the person who subscribed the team
222to the branch. There is a link shown in the subscriptions portlet to edit the222to the branch. There is a link shown in the subscriptions portlet to edit the
223subscription of a team that the logged in user is a member of.223subscription of a team that the logged in user is a member of.
224224
225225
=== modified file 'lib/lp/code/windmill/tests/test_recipe_inline_distroseries_edit.py'
--- lib/lp/code/windmill/tests/test_recipe_inline_distroseries_edit.py 2012-01-15 13:32:27 +0000
+++ lib/lp/code/windmill/tests/test_recipe_inline_distroseries_edit.py 2012-02-22 01:28:20 +0000
@@ -1,4 +1,4 @@
1# Copyright 2011 Canonical Ltd. This software is licensed under the1# Copyright 2011-2012 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).2# GNU Affero General Public License version 3 (see the file LICENSE).
33
4"""Tests for requesting recipe builds."""4"""Tests for requesting recipe builds."""
@@ -51,7 +51,7 @@
51 # Save it51 # Save it
52 client.click(jquery=u'("#edit-distroseries-save")[0]')52 client.click(jquery=u'("#edit-distroseries-save")[0]')
5353
54 # Wait for the the new one that is added.54 # Wait for the new one that is added.
55 client.waits.forElement(55 client.waits.forElement(
56 jquery=u"('#edit-distroseries-items ul li a')[0]",56 jquery=u"('#edit-distroseries-items ul li a')[0]",
57 timeout=FOR_ELEMENT)57 timeout=FOR_ELEMENT)
5858
=== modified file 'lib/lp/code/windmill/tests/test_recipe_request_build.py'
--- lib/lp/code/windmill/tests/test_recipe_request_build.py 2012-01-15 13:32:27 +0000
+++ lib/lp/code/windmill/tests/test_recipe_request_build.py 2012-02-22 01:28:20 +0000
@@ -1,4 +1,4 @@
1# Copyright 2011 Canonical Ltd. This software is licensed under the1# Copyright 2011-2012 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).2# GNU Affero General Public License version 3 (see the file LICENSE).
33
4"""Tests for requesting recipe builds."""4"""Tests for requesting recipe builds."""
@@ -78,7 +78,7 @@
78 def test_recipe_build_request_already_pending(self):78 def test_recipe_build_request_already_pending(self):
79 """Test that already pending builds are correctly highlighted.79 """Test that already pending builds are correctly highlighted.
8080
81 If all possible builds are pending, the the Request Builds button81 If all possible builds are pending, the Request Builds button
82 should be hidden.82 should be hidden.
83 """83 """
8484
8585
=== modified file 'lib/lp/code/xmlrpc/tests/test_codehosting.py'
--- lib/lp/code/xmlrpc/tests/test_codehosting.py 2012-01-06 11:08:30 +0000
+++ lib/lp/code/xmlrpc/tests/test_codehosting.py 2012-02-22 01:28:20 +0000
@@ -1,4 +1,4 @@
1# Copyright 2009-2011 Canonical Ltd. This software is licensed under the1# Copyright 2009-2012 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).2# GNU Affero General Public License version 3 (see the file LICENSE).
33
4"""Tests for the internal codehosting API."""4"""Tests for the internal codehosting API."""
@@ -1041,7 +1041,7 @@
1041 self.assertEqual(expected, translation)1041 self.assertEqual(expected, translation)
10421042
1043 def test_translatePath_branch_id_alias_owned(self):1043 def test_translatePath_branch_id_alias_owned(self):
1044 # Even if the the requester is the owner, the branch is read only.1044 # Even if the requester is the owner, the branch is read only.
1045 requester = self.factory.makePerson()1045 requester = self.factory.makePerson()
1046 branch = removeSecurityProxy(1046 branch = removeSecurityProxy(
1047 self.factory.makeAnyBranch(1047 self.factory.makeAnyBranch(
10481048
=== modified file 'lib/lp/codehosting/scanner/tests/test_bzrsync.py'
--- lib/lp/codehosting/scanner/tests/test_bzrsync.py 2012-02-15 17:29:54 +0000
+++ lib/lp/codehosting/scanner/tests/test_bzrsync.py 2012-02-22 01:28:20 +0000
@@ -1,6 +1,6 @@
1#!/usr/bin/python1#!/usr/bin/python
2#2#
3# Copyright 2009-2011 Canonical Ltd. This software is licensed under the3# Copyright 2009-2012 Canonical Ltd. This software is licensed under the
4# GNU Affero General Public License version 3 (see the file LICENSE).4# GNU Affero General Public License version 3 (see the file LICENSE).
55
6# pylint: disable-msg=W01416# pylint: disable-msg=W0141
@@ -620,7 +620,7 @@
620620
621 def _makeProductSeries(self, mode=None):621 def _makeProductSeries(self, mode=None):
622 """Switch to the Launchpad db user to create and configure a622 """Switch to the Launchpad db user to create and configure a
623 product series that is linked to the the branch.623 product series that is linked to the branch.
624 """624 """
625 with lp_dbuser():625 with lp_dbuser():
626 self.product_series = self.factory.makeProductSeries()626 self.product_series = self.factory.makeProductSeries()
627627
=== modified file 'lib/lp/registry/browser/mailinglists.py'
--- lib/lp/registry/browser/mailinglists.py 2012-01-01 02:58:52 +0000
+++ lib/lp/registry/browser/mailinglists.py 2012-02-22 01:28:20 +0000
@@ -1,4 +1,4 @@
1# Copyright 2009-2010 Canonical Ltd. This software is licensed under the1# Copyright 2009-2012 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).2# GNU Affero General Public License version 3 (see the file LICENSE).
33
4"""Browser views for handling mailing lists."""4"""Browser views for handling mailing lists."""
@@ -28,7 +28,7 @@
2828
2929
30class HeldMessageView(LaunchpadView):30class HeldMessageView(LaunchpadView):
31 """A little helper view for for held messages."""31 """A little helper view for held messages."""
3232
33 def __init__(self, context, request):33 def __init__(self, context, request):
34 super(HeldMessageView, self).__init__(context, request)34 super(HeldMessageView, self).__init__(context, request)
3535
=== modified file 'lib/lp/registry/browser/milestone.py'
--- lib/lp/registry/browser/milestone.py 2012-01-14 09:00:20 +0000
+++ lib/lp/registry/browser/milestone.py 2012-02-22 01:28:20 +0000
@@ -1,4 +1,4 @@
1# Copyright 2009-2011 Canonical Ltd. This software is licensed under the1# Copyright 2009-2012 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).2# GNU Affero General Public License version 3 (see the file LICENSE).
33
4"""Milestone views."""4"""Milestone views."""
@@ -496,7 +496,7 @@
496 def _field_names(self):496 def _field_names(self):
497 """See `LaunchpadFormView`.497 """See `LaunchpadFormView`.
498498
499 There are two series fields, one for for product milestones and the499 There are two series fields, one for product milestones and the
500 other for distribution milestones. The product milestone may change500 other for distribution milestones. The product milestone may change
501 its productseries. The distribution milestone may change its501 its productseries. The distribution milestone may change its
502 distroseries.502 distroseries.
503503
=== modified file 'lib/lp/registry/browser/person.py'
--- lib/lp/registry/browser/person.py 2012-02-21 12:43:54 +0000
+++ lib/lp/registry/browser/person.py 2012-02-22 01:28:20 +0000
@@ -2244,7 +2244,7 @@
2244 else:2244 else:
2245 merge_action = 'merged'2245 merge_action = 'merged'
2246 self.request.response.addInfoNotification(2246 self.request.response.addInfoNotification(
2247 "%s is queued to be be %s in a few minutes." % (2247 "%s is queued to be %s in a few minutes." % (
2248 self.context.displayname, merge_action))2248 self.context.displayname, merge_action))
2249 if self.request.method == "POST":2249 if self.request.method == "POST":
2250 self.processForm()2250 self.processForm()
22512251
=== modified file 'lib/lp/registry/browser/tests/browser-views.txt'
--- lib/lp/registry/browser/tests/browser-views.txt 2011-12-24 17:49:30 +0000
+++ lib/lp/registry/browser/tests/browser-views.txt 2012-02-22 01:28:20 +0000
@@ -8,7 +8,7 @@
8---------------------8---------------------
99
10The MilestoneOverlayMixin provides data that is needed by milestoneoverlay.js.10The MilestoneOverlayMixin provides data that is needed by milestoneoverlay.js.
11The milestone_form_uri property is the location of of the rendered form. The11The milestone_form_uri property is the location of the rendered form. The
12javascript calls newMilestone on the object at series_api_uri.12javascript calls newMilestone on the object at series_api_uri.
1313
14 >>> from lp.services.webapp import LaunchpadView14 >>> from lp.services.webapp import LaunchpadView
1515
=== modified file 'lib/lp/registry/browser/tests/productrelease-views.txt'
--- lib/lp/registry/browser/tests/productrelease-views.txt 2012-02-02 12:30:53 +0000
+++ lib/lp/registry/browser/tests/productrelease-views.txt 2012-02-22 01:28:20 +0000
@@ -102,7 +102,7 @@
102It is possible to create a release directly from a series, the release's102It is possible to create a release directly from a series, the release's
103milestone can be created via an AJAX command.103milestone can be created via an AJAX command.
104104
105The view collects the the required release fields, and adds fields to to105The view collects the required release fields, and adds fields to to
106set the milestone.106set the milestone.
107107
108 >>> view = create_initialized_view(series, '+addrelease', principal=owner)108 >>> view = create_initialized_view(series, '+addrelease', principal=owner)
109109
=== modified file 'lib/lp/registry/browser/tests/test_person.py'
--- lib/lp/registry/browser/tests/test_person.py 2012-02-01 15:26:32 +0000
+++ lib/lp/registry/browser/tests/test_person.py 2012-02-22 01:28:20 +0000
@@ -123,7 +123,7 @@
123 job_source.create(from_person=dupe_person, to_person=target_person)123 job_source.create(from_person=dupe_person, to_person=target_person)
124 view = create_initialized_view(dupe_person, name="+index")124 view = create_initialized_view(dupe_person, name="+index")
125 notifications = view.request.response.notifications125 notifications = view.request.response.notifications
126 message = 'Finch is queued to be be merged in a few minutes.'126 message = 'Finch is queued to be merged in a few minutes.'
127 self.assertEqual(1, len(notifications))127 self.assertEqual(1, len(notifications))
128 self.assertEqual(message, notifications[0].message)128 self.assertEqual(message, notifications[0].message)
129129
@@ -423,7 +423,7 @@
423 self.view.field_names)423 self.view.field_names)
424424
425 def test_init_registry_expert(self):425 def test_init_registry_expert(self):
426 # Registry experts do not see the the displayname field.426 # Registry experts do not see the displayname field.
427 login_celebrity('registry_experts')427 login_celebrity('registry_experts')
428 self.view.setUpFields()428 self.view.setUpFields()
429 self.assertEqual(429 self.assertEqual(
430430
=== modified file 'lib/lp/registry/browser/tests/test_team.py'
--- lib/lp/registry/browser/tests/test_team.py 2012-02-17 17:11:57 +0000
+++ lib/lp/registry/browser/tests/test_team.py 2012-02-22 01:28:20 +0000
@@ -465,7 +465,7 @@
465 ['name', 'displayname'], view.field_names)465 ['name', 'displayname'], view.field_names)
466466
467 def test_init_registry_expert(self):467 def test_init_registry_expert(self):
468 # Registry experts do not see the the displayname field.468 # Registry experts do not see the displayname field.
469 team = self.factory.makeTeam()469 team = self.factory.makeTeam()
470 login_celebrity('registry_experts')470 login_celebrity('registry_experts')
471 view = create_initialized_view(team, name=self.view_name)471 view = create_initialized_view(team, name=self.view_name)
@@ -811,7 +811,7 @@
811 view = create_initialized_view(self.team, name="+index")811 view = create_initialized_view(self.team, name="+index")
812 notifications = view.request.response.notifications812 notifications = view.request.response.notifications
813 message = (813 message = (
814 'Test Team is queued to be be merged or deleted '814 'Test Team is queued to be merged or deleted '
815 'in a few minutes.')815 'in a few minutes.')
816 self.assertEqual(1, len(notifications))816 self.assertEqual(1, len(notifications))
817 self.assertEqual(message, notifications[0].message)817 self.assertEqual(message, notifications[0].message)
818818
=== modified file 'lib/lp/registry/doc/distroseries.txt'
--- lib/lp/registry/doc/distroseries.txt 2012-01-06 11:08:30 +0000
+++ lib/lp/registry/doc/distroseries.txt 2012-02-22 01:28:20 +0000
@@ -448,7 +448,7 @@
448448
449The distroseries getPrioritizedUnlinkedSourcePackages() method returns449The distroseries getPrioritizedUnlinkedSourcePackages() method returns
450a prioritized list of `ISourcePackage` objects that need a packaging link to450a prioritized list of `ISourcePackage` objects that need a packaging link to
451an `IProductSeries` to provide the the upstream information to share bugs,451an `IProductSeries` to provide the upstream information to share bugs,
452translations, and code. Each item in the list is a dict with the 'package',452translations, and code. Each item in the list is a dict with the 'package',
453total_bugs, and total_messages (translatable messages).453total_bugs, and total_messages (translatable messages).
454454
455455
=== modified file 'lib/lp/registry/javascript/milestonetable.js'
--- lib/lp/registry/javascript/milestonetable.js 2011-08-09 14:18:02 +0000
+++ lib/lp/registry/javascript/milestonetable.js 2012-02-22 01:28:20 +0000
@@ -1,4 +1,4 @@
1/* Copyright 2010 Canonical Ltd. This software is licensed under the1/* Copyright 2010-2012 Canonical Ltd. This software is licensed under the
2 * GNU Affero General Public License version 3 (see the file LICENSE).2 * GNU Affero General Public License version 3 (see the file LICENSE).
3 *3 *
4 * Dynamically add milestones to an HTML table.4 * Dynamically add milestones to an HTML table.
@@ -95,7 +95,7 @@
95 * @param {Object} parameters Object literal of config name/value pairs.95 * @param {Object} parameters Object literal of config name/value pairs.
96 * config.milestone_row_uri_template is the Y.substitute template96 * config.milestone_row_uri_template is the Y.substitute template
97 * that is used to create the URL to get the milestone row.97 * that is used to create the URL to get the milestone row.
98 * config.milestone_rows_id is the id the the tbody that the98 * config.milestone_rows_id is the id the tbody that the
99 * milestone row will be added too.99 * milestone row will be added too.
100 */100 */
101 module.setup = function(config) {101 module.setup = function(config) {
102102
=== modified file 'lib/lp/registry/javascript/tests/test_distroseriesdifferences_details.js'
--- lib/lp/registry/javascript/tests/test_distroseriesdifferences_details.js 2011-08-30 16:41:31 +0000
+++ lib/lp/registry/javascript/tests/test_distroseriesdifferences_details.js 2012-02-22 01:28:20 +0000
@@ -1,4 +1,4 @@
1/* Copyright 2009-2011 Canonical Ltd. This software is licensed under the1/* Copyright 2009-2012 Canonical Ltd. This software is licensed under the
2 GNU Affero General Public License version 3 (see the file LICENSE). */2 GNU Affero General Public License version 3 (see the file LICENSE). */
33
4YUI().use(4YUI().use(
@@ -905,7 +905,7 @@
905905
906 test_request_wrong_click: function() {906 test_request_wrong_click: function() {
907 // Click on the placeholder has no effect.907 // Click on the placeholder has no effect.
908 // The listeners are on the the link with class908 // The listeners are on the link with class
909 // '.package-diff-compute-request'.909 // '.package-diff-compute-request'.
910 // bug=746277.910 // bug=746277.
911 var placeholder = Y.one('#placeholder');911 var placeholder = Y.one('#placeholder');
912912
=== modified file 'lib/lp/registry/model/person.py'
--- lib/lp/registry/model/person.py 2012-02-20 10:32:23 +0000
+++ lib/lp/registry/model/person.py 2012-02-22 01:28:20 +0000
@@ -1050,7 +1050,7 @@
1050 return contributions1050 return contributions
10511051
1052 def _getProjectsWithTheMostKarma(self, limit=10):1052 def _getProjectsWithTheMostKarma(self, limit=10):
1053 """Return the names and karma points of of this person on the1053 """Return the names and karma points of this person on the
1054 product/distribution with that name.1054 product/distribution with that name.
10551055
1056 The results are ordered descending by the karma points and limited to1056 The results are ordered descending by the karma points and limited to
10571057
=== modified file 'lib/lp/registry/model/teammembership.py'
--- lib/lp/registry/model/teammembership.py 2012-01-04 14:40:15 +0000
+++ lib/lp/registry/model/teammembership.py 2012-02-22 01:28:20 +0000
@@ -1,4 +1,4 @@
1# Copyright 2009-2011 Canonical Ltd. This software is licensed under the1# Copyright 2009-2012 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).2# GNU Affero General Public License version 3 (see the file LICENSE).
33
4# pylint: disable-msg=E0611,W02124# pylint: disable-msg=E0611,W0212
@@ -531,7 +531,7 @@
531 """531 """
532 # Delete participation entries for the child and the child's532 # Delete participation entries for the child and the child's
533 # direct/indirect members in other ancestor teams, unless those533 # direct/indirect members in other ancestor teams, unless those
534 # ancestor teams have another path the the child besides the534 # ancestor teams have another path the child besides the
535 # membership that has just been deactivated.535 # membership that has just been deactivated.
536 store = Store.of(parent)536 store = Store.of(parent)
537 store.execute("""537 store.execute("""
538538
=== modified file 'lib/lp/registry/stories/milestone/object-milestones.txt'
--- lib/lp/registry/stories/milestone/object-milestones.txt 2011-12-28 17:03:06 +0000
+++ lib/lp/registry/stories/milestone/object-milestones.txt 2012-02-22 01:28:20 +0000
@@ -83,7 +83,7 @@
83 Mozilla Firefox 1.0 trunk A date83 Mozilla Firefox 1.0 trunk A date
84 not yet released84 not yet released
8585
86When the project is a member of a project group, the the user can see a86When the project is a member of a project group, the user can see a
87link to the project groups's milestone's page.87link to the project groups's milestone's page.
8888
89 >>> anon_browser.getLink(89 >>> anon_browser.getLink(
9090
=== modified file 'lib/lp/registry/tests/test_commercialprojects_vocabularies.py'
--- lib/lp/registry/tests/test_commercialprojects_vocabularies.py 2012-02-13 21:01:51 +0000
+++ lib/lp/registry/tests/test_commercialprojects_vocabularies.py 2012-02-22 01:28:20 +0000
@@ -1,4 +1,4 @@
1# Copyright 2009-2011 Canonical Ltd. This software is licensed under the1# Copyright 2009-2012 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).2# GNU Affero General Public License version 3 (see the file LICENSE).
33
4"""Test the commercial projects vocabularies."""4"""Test the commercial projects vocabularies."""
@@ -65,7 +65,7 @@
65 len(results)))65 len(results)))
6666
67 def test_searchForTerms_success(self):67 def test_searchForTerms_success(self):
68 # Search for for active maintained projects success.68 # Search for active maintained projects success.
69 results = self.vocab.searchForTerms('widget')69 results = self.vocab.searchForTerms('widget')
70 self.assertEqual(70 self.assertEqual(
71 self.num_commercial, len(results),71 self.num_commercial, len(results),
7272
=== modified file 'lib/lp/registry/tests/test_team.py'
--- lib/lp/registry/tests/test_team.py 2012-01-17 21:45:24 +0000
+++ lib/lp/registry/tests/test_team.py 2012-02-22 01:28:20 +0000
@@ -1,4 +1,4 @@
1# Copyright 2010-2011 Canonical Ltd. This software is licensed under the1# Copyright 2010-2012 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).2# GNU Affero General Public License version 3 (see the file LICENSE).
33
4"""Tests for PersonSet."""4"""Tests for PersonSet."""
@@ -120,7 +120,7 @@
120 def test_setContactAddress_after_purged_mailing_list_and_rename(self):120 def test_setContactAddress_after_purged_mailing_list_and_rename(self):
121 # This is the rare case where a list is purged for a team rename,121 # This is the rare case where a list is purged for a team rename,
122 # then the contact address is set/unset sometime afterwards.122 # then the contact address is set/unset sometime afterwards.
123 # The old mailing list address belongs the the team, but not the list.123 # The old mailing list address belongs the team, but not the list.
124 # 1. Create then purge a mailing list.124 # 1. Create then purge a mailing list.
125 self.createMailingListAndGetAddress()125 self.createMailingListAndGetAddress()
126 mailing_list = self.team.mailing_list126 mailing_list = self.team.mailing_list
127127
=== modified file 'lib/lp/services/database/sqlbase.py'
--- lib/lp/services/database/sqlbase.py 2012-02-07 14:39:27 +0000
+++ lib/lp/services/database/sqlbase.py 2012-02-22 01:28:20 +0000
@@ -1,4 +1,4 @@
1# Copyright 2009-2011 Canonical Ltd. This software is licensed under the1# Copyright 2009-2012 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).2# GNU Affero General Public License version 3 (see the file LICENSE).
33
4__metaclass__ = type4__metaclass__ = type
@@ -164,7 +164,7 @@
164 def __init__(self, *args, **kwargs):164 def __init__(self, *args, **kwargs):
165 """Extended version of the SQLObjectBase constructor.165 """Extended version of the SQLObjectBase constructor.
166166
167 We we force use of the the master Store.167 We force use of the master Store.
168168
169 We refetch any parameters from different stores from the169 We refetch any parameters from different stores from the
170 correct master Store.170 correct master Store.
171171
=== modified file 'lib/lp/services/doc/limitedlist.txt'
--- lib/lp/services/doc/limitedlist.txt 2010-03-22 13:07:05 +0000
+++ lib/lp/services/doc/limitedlist.txt 2012-02-22 01:28:20 +0000
@@ -32,7 +32,7 @@
32 <LimitedList(2, [2, 3])>32 <LimitedList(2, [2, 3])>
3333
34If we add two LimitedLists, the result is a LimitedList too, its maximum34If we add two LimitedLists, the result is a LimitedList too, its maximum
35length is the same as the the maximum length of the left operand. If the35length is the same as the maximum length of the left operand. If the
36concatenated lists have more elements than left_operand.max_length, only36concatenated lists have more elements than left_operand.max_length, only
37the last elements are stored.37the last elements are stored.
3838
3939
=== modified file 'lib/lp/services/gpg/doc/gpghandler.txt'
--- lib/lp/services/gpg/doc/gpghandler.txt 2011-12-24 17:49:30 +0000
+++ lib/lp/services/gpg/doc/gpghandler.txt 2012-02-22 01:28:20 +0000
@@ -303,7 +303,7 @@
303 >>> len(list(gpghandler.localKeys()))303 >>> len(list(gpghandler.localKeys()))
304 0304 0
305305
306When we we need the public key again we use retrieveKey(), which will306When we need the public key again we use retrieveKey(), which will
307hit the keyserver and import it automatically.307hit the keyserver and import it automatically.
308308
309 >>> retrieved_key = gpghandler.retrieveKey(new_key.fingerprint)309 >>> retrieved_key = gpghandler.retrieveKey(new_key.fingerprint)
310310
=== modified file 'lib/lp/services/webapp/interfaces.py'
--- lib/lp/services/webapp/interfaces.py 2012-01-15 12:22:55 +0000
+++ lib/lp/services/webapp/interfaces.py 2012-02-22 01:28:20 +0000
@@ -1,4 +1,4 @@
1# Copyright 2009-2011 Canonical Ltd. This software is licensed under the1# Copyright 2009-2012 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).2# GNU Affero General Public License version 3 (see the file LICENSE).
33
4# pylint: disable-msg=E0211,E02134# pylint: disable-msg=E0211,E0213
@@ -170,7 +170,7 @@
170170
171 hidden = Attribute(171 hidden = Attribute(
172 "Boolean to say whether this link is hidden. This is separate from "172 "Boolean to say whether this link is hidden. This is separate from "
173 "being enabled and is used to support links which need to be be "173 "being enabled and is used to support links which need to be "
174 "enabled but not viewable in the rendered HTML. The link may be "174 "enabled but not viewable in the rendered HTML. The link may be "
175 "changed to visible by JavaScript or some other means.")175 "changed to visible by JavaScript or some other means.")
176176
177177
=== modified file 'lib/lp/soyuz/scripts/packagecopier.py'
--- lib/lp/soyuz/scripts/packagecopier.py 2012-01-09 13:25:02 +0000
+++ lib/lp/soyuz/scripts/packagecopier.py 2012-02-22 01:28:20 +0000
@@ -66,7 +66,7 @@
66 # XXX cprov 2009-06-12: This function could be incorporated in ILFA.66 # XXX cprov 2009-06-12: This function could be incorporated in ILFA.
67 # I just don't see a clear benefit in doing that right now.67 # I just don't see a clear benefit in doing that right now.
6868
69 # Open the the libraryfile for reading.69 # Open the libraryfile for reading.
70 libraryfile.open()70 libraryfile.open()
7171
72 # Make a temporary file to hold the download. It's annoying72 # Make a temporary file to hold the download. It's annoying
7373
=== modified file 'lib/lp/soyuz/stories/distribution/xx-distribution-packages.txt'
--- lib/lp/soyuz/stories/distribution/xx-distribution-packages.txt 2011-12-30 06:14:56 +0000
+++ lib/lp/soyuz/stories/distribution/xx-distribution-packages.txt 2012-02-22 01:28:20 +0000
@@ -581,7 +581,7 @@
581------------------581------------------
582582
583Users can inspect the full publishing history by clicking on a link in583Users can inspect the full publishing history by clicking on a link in
584the action menu on the the distribution source package index page.584the action menu on the distribution source package index page.
585585
586 >>> anon_browser.getLink('View full publishing history').click()586 >>> anon_browser.getLink('View full publishing history').click()
587587
588588
=== modified file 'utilities/format-imports'
--- utilities/format-imports 2012-01-01 03:20:03 +0000
+++ utilities/format-imports 2012-02-22 01:28:20 +0000
@@ -1,6 +1,6 @@
1#!/usr/bin/python1#!/usr/bin/python
2#2#
3# Copyright 2010 Canonical Ltd. This software is licensed under the3# Copyright 2010-2012 Canonical Ltd. This software is licensed under the
4# GNU Affero General Public License version 3 (see the file LICENSE).4# GNU Affero General Public License version 3 (see the file LICENSE).
55
6""" Format import sections in python files6""" Format import sections in python files
@@ -65,7 +65,7 @@
65length.65length.
6666
67Comments stick with the import statement that followed them. Comments at the67Comments stick with the import statement that followed them. Comments at the
68end of one-line statements are moved to be be in front of it, .i.e.68end of one-line statements are moved to be in front of it, .i.e.
69{{{69{{{
70 from sys import exit # Have a way out70 from sys import exit # Have a way out
71}}}71}}}
7272
=== modified file 'utilities/paste'
--- utilities/paste 2012-01-01 03:10:25 +0000
+++ utilities/paste 2012-02-22 01:28:20 +0000
@@ -1,6 +1,6 @@
1#!/usr/bin/python -S1#!/usr/bin/python -S
2#2#
3# Copyright 2009 Canonical Ltd. This software is licensed under the3# Copyright 2009-2012 Canonical Ltd. This software is licensed under the
4# GNU Affero General Public License version 3 (see the file LICENSE).4# GNU Affero General Public License version 3 (see the file LICENSE).
55
6import _pythonpath6import _pythonpath
@@ -131,7 +131,7 @@
131 cookiejar.set_cookie(lp_cookie)131 cookiejar.set_cookie(lp_cookie)
132 browser.mech_browser.set_cookiejar(cookiejar)132 browser.mech_browser.set_cookiejar(cookiejar)
133133
134 # Remove the the check for robots.txt, since the one on134 # Remove the check for robots.txt, since the one on
135 # pastebin.ubuntu.com doesn't allow us to open the page. We're not135 # pastebin.ubuntu.com doesn't allow us to open the page. We're not
136 # really a robot.136 # really a robot.
137 browser.mech_browser.handlers = [137 browser.mech_browser.handlers = [
138138
=== modified file 'utilities/top-tests.py'
--- utilities/top-tests.py 2012-01-01 03:10:25 +0000
+++ utilities/top-tests.py 2012-02-22 01:28:20 +0000
@@ -1,6 +1,6 @@
1#!/usr/bin/python1#!/usr/bin/python
2#2#
3# Copyright 2009 Canonical Ltd. This software is licensed under the3# Copyright 2009-2012 Canonical Ltd. This software is licensed under the
4# GNU Affero General Public License version 3 (see the file LICENSE).4# GNU Affero General Public License version 3 (see the file LICENSE).
55
6"""top-tests.py - Report about slowest tests in the test suite.6"""top-tests.py - Report about slowest tests in the test suite.
@@ -112,7 +112,7 @@
112 raise ParseException('End of file before end of test run.')112 raise ParseException('End of file before end of test run.')
113113
114 def handleStartTestRunner(self, line, ignored):114 def handleStartTestRunner(self, line, ignored):
115 """Switch the the layer state."""115 """Switch the layer state."""
116116
117 def handleLayerStart(self, line, match):117 def handleLayerStart(self, line, match):
118 """Create a new stats container for the layer."""118 """Create a new stats container for the layer."""