Merge lp:~stevenk/launchpad/double-word-death into lp:launchpad
- double-word-death
- Merge into devel
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 | ||||||||
Related bugs: |
|
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.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'lib/lp/answers/browser/question.py' | |||
2 | --- lib/lp/answers/browser/question.py 2012-01-01 02:58:52 +0000 | |||
3 | +++ lib/lp/answers/browser/question.py 2012-02-22 01:28:20 +0000 | |||
4 | @@ -1,4 +1,4 @@ | |||
6 | 1 | # Copyright 2009-2011 Canonical Ltd. This software is licensed under the | 1 | # Copyright 2009-2012 Canonical Ltd. This software is licensed under the |
7 | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). |
8 | 3 | 3 | ||
9 | 4 | """Question views.""" | 4 | """Question views.""" |
10 | @@ -1299,7 +1299,7 @@ | |||
11 | 1299 | 1299 | ||
12 | 1300 | Those found in `values` are marked as selected. The list of rendered | 1300 | Those found in `values` are marked as selected. The list of rendered |
13 | 1301 | values is controlled by the search query. The currently selected | 1301 | values is controlled by the search query. The currently selected |
15 | 1302 | value is always added the the set. | 1302 | value is always added to the set. |
16 | 1303 | """ | 1303 | """ |
17 | 1304 | rendered_items = [] | 1304 | rendered_items = [] |
18 | 1305 | rendered_values = set() | 1305 | rendered_values = set() |
19 | 1306 | 1306 | ||
20 | === modified file 'lib/lp/answers/errors.py' | |||
21 | --- lib/lp/answers/errors.py 2011-06-16 18:51:45 +0000 | |||
22 | +++ lib/lp/answers/errors.py 2012-02-22 01:28:20 +0000 | |||
23 | @@ -1,4 +1,4 @@ | |||
25 | 1 | # Copyright 2011 Canonical Ltd. This software is licensed under the | 1 | # Copyright 2011-2012 Canonical Ltd. This software is licensed under the |
26 | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). |
27 | 3 | 3 | ||
28 | 4 | __metaclass__ = type | 4 | __metaclass__ = type |
29 | @@ -47,12 +47,12 @@ | |||
30 | 47 | 47 | ||
31 | 48 | @error_status(httplib.BAD_REQUEST) | 48 | @error_status(httplib.BAD_REQUEST) |
32 | 49 | class NotMessageOwnerError(ValueError): | 49 | class NotMessageOwnerError(ValueError): |
34 | 50 | """The person be the the message owner.""" | 50 | """The person must be the message owner.""" |
35 | 51 | 51 | ||
36 | 52 | 52 | ||
37 | 53 | @error_status(httplib.BAD_REQUEST) | 53 | @error_status(httplib.BAD_REQUEST) |
38 | 54 | class NotQuestionOwnerError(ValueError): | 54 | class NotQuestionOwnerError(ValueError): |
40 | 55 | """The person be the the question owner.""" | 55 | """The person must be the question owner.""" |
41 | 56 | 56 | ||
42 | 57 | 57 | ||
43 | 58 | @error_status(httplib.BAD_REQUEST) | 58 | @error_status(httplib.BAD_REQUEST) |
44 | 59 | 59 | ||
45 | === modified file 'lib/lp/answers/stories/question-search-multiple-languages.txt' | |||
46 | --- lib/lp/answers/stories/question-search-multiple-languages.txt 2012-01-15 11:06:57 +0000 | |||
47 | +++ lib/lp/answers/stories/question-search-multiple-languages.txt 2012-02-22 01:28:20 +0000 | |||
48 | @@ -31,7 +31,7 @@ | |||
49 | 31 | 31 | ||
50 | 32 | The questions match the languages inferred from by GeoIP | 32 | The questions match the languages inferred from by GeoIP |
51 | 33 | 127.0.0.1 is mapped to South Africa in the test suite. The language | 33 | 127.0.0.1 is mapped to South Africa in the test suite. The language |
53 | 34 | control shows the intersection of the the user's languages and the | 34 | control shows the intersection of the user's languages and the |
54 | 35 | languages of the target's questions. In this example: | 35 | languages of the target's questions. In this example: |
55 | 36 | set(['af', 'en', 'st', 'xh', 'zu']) & set(['en', 'es']) == set(en). | 36 | set(['af', 'en', 'st', 'xh', 'zu']) & set(['en', 'es']) == set(en). |
56 | 37 | 37 | ||
57 | 38 | 38 | ||
58 | === modified file 'lib/lp/answers/stories/question-workflow.txt' | |||
59 | --- lib/lp/answers/stories/question-workflow.txt 2011-11-30 23:31:25 +0000 | |||
60 | +++ lib/lp/answers/stories/question-workflow.txt 2012-02-22 01:28:20 +0000 | |||
61 | @@ -159,7 +159,7 @@ | |||
62 | 159 | ... "support enabled. You can use apt-get or adept to upgrade.") | 159 | ... "support enabled. You can use apt-get or adept to upgrade.") |
63 | 160 | >>> support_browser.getControl('Propose Answer').click() | 160 | >>> support_browser.getControl('Propose Answer').click() |
64 | 161 | 161 | ||
66 | 162 | This moves the the question to the Answered state and adds the answer to | 162 | This moves the question to the Answered state and adds the answer to |
67 | 163 | the end of the discussion: | 163 | the end of the discussion: |
68 | 164 | 164 | ||
69 | 165 | >>> print find_request_status(support_browser.contents) | 165 | >>> print find_request_status(support_browser.contents) |
70 | 166 | 166 | ||
71 | === modified file 'lib/lp/app/longpoll/__init__.py' | |||
72 | --- lib/lp/app/longpoll/__init__.py 2011-09-20 15:30:54 +0000 | |||
73 | +++ lib/lp/app/longpoll/__init__.py 2012-02-22 01:28:20 +0000 | |||
74 | @@ -1,4 +1,4 @@ | |||
76 | 1 | # Copyright 2011 Canonical Ltd. This software is licensed under the | 1 | # Copyright 2011-2012 Canonical Ltd. This software is licensed under the |
77 | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). |
78 | 3 | 3 | ||
79 | 4 | """Long-poll infrastructure.""" | 4 | """Long-poll infrastructure.""" |
80 | @@ -39,7 +39,7 @@ | |||
81 | 39 | def emit(source, event_name=u"", **data): | 39 | def emit(source, event_name=u"", **data): |
82 | 40 | """Convenience method to emit a message for an event. | 40 | """Convenience method to emit a message for an event. |
83 | 41 | 41 | ||
85 | 42 | :param source: Something that can be be adapted to `ILongPollEvent`. | 42 | :param source: Something that can be adapted to `ILongPollEvent`. |
86 | 43 | :param event_name: The name of the event to subscribe to. This is used to | 43 | :param event_name: The name of the event to subscribe to. This is used to |
87 | 44 | look up a named adapter from `target` to `ILongPollEvent`. | 44 | look up a named adapter from `target` to `ILongPollEvent`. |
88 | 45 | :param data: See `ILongPollEvent.emit`. | 45 | :param data: See `ILongPollEvent.emit`. |
89 | 46 | 46 | ||
90 | === modified file 'lib/lp/app/widgets/launchpadtarget.py' | |||
91 | --- lib/lp/app/widgets/launchpadtarget.py 2012-01-01 02:58:52 +0000 | |||
92 | +++ lib/lp/app/widgets/launchpadtarget.py 2012-02-22 01:28:20 +0000 | |||
93 | @@ -1,4 +1,4 @@ | |||
95 | 1 | # Copyright 2009-2011 Canonical Ltd. This software is licensed under the | 1 | # Copyright 2009-2012 Canonical Ltd. This software is licensed under the |
96 | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). |
97 | 3 | 3 | ||
98 | 4 | __metaclass__ = type | 4 | __metaclass__ = type |
99 | @@ -144,7 +144,7 @@ | |||
100 | 144 | entered_name = self.request.form_ng.getOne( | 144 | entered_name = self.request.form_ng.getOne( |
101 | 145 | '%s.package' % self.name) | 145 | '%s.package' % self.name) |
102 | 146 | raise LaunchpadValidationError( | 146 | raise LaunchpadValidationError( |
104 | 147 | "There is no package name '%s' published in %s" | 147 | "There is no package named '%s' published in %s." |
105 | 148 | % (entered_name, distribution.displayname)) | 148 | % (entered_name, distribution.displayname)) |
106 | 149 | if package_name is None: | 149 | if package_name is None: |
107 | 150 | return distribution | 150 | return distribution |
108 | @@ -158,7 +158,7 @@ | |||
109 | 158 | dsp = distribution.getSourcePackage(source_name) | 158 | dsp = distribution.getSourcePackage(source_name) |
110 | 159 | except NotFoundError: | 159 | except NotFoundError: |
111 | 160 | raise LaunchpadValidationError( | 160 | raise LaunchpadValidationError( |
113 | 161 | "There is no package name '%s' published in %s" | 161 | "There is no package named '%s' published in %s." |
114 | 162 | % (package_name.name, distribution.displayname)) | 162 | % (package_name.name, distribution.displayname)) |
115 | 163 | return dsp | 163 | return dsp |
116 | 164 | else: | 164 | else: |
117 | 165 | 165 | ||
118 | === modified file 'lib/lp/app/widgets/tests/test_launchpadtarget.py' | |||
119 | --- lib/lp/app/widgets/tests/test_launchpadtarget.py 2012-01-01 02:58:52 +0000 | |||
120 | +++ lib/lp/app/widgets/tests/test_launchpadtarget.py 2012-02-22 01:28:20 +0000 | |||
121 | @@ -1,4 +1,4 @@ | |||
123 | 1 | # Copyright 2011 Canonical Ltd. This software is licensed under the | 1 | # Copyright 2011-2012 Canonical Ltd. This software is licensed under the |
124 | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). |
125 | 3 | 3 | ||
126 | 4 | __metaclass__ = type | 4 | __metaclass__ = type |
127 | @@ -213,7 +213,7 @@ | |||
128 | 213 | form['field.target.package'] = 'non-existent' | 213 | form['field.target.package'] = 'non-existent' |
129 | 214 | self.widget.request = LaunchpadTestRequest(form=form) | 214 | self.widget.request = LaunchpadTestRequest(form=form) |
130 | 215 | message = ( | 215 | message = ( |
132 | 216 | "There is no package name 'non-existent' published in Fnord") | 216 | "There is no package named 'non-existent' published in Fnord.") |
133 | 217 | self.assertRaisesWithContent( | 217 | self.assertRaisesWithContent( |
134 | 218 | LaunchpadValidationError, message, self.widget.getInputValue) | 218 | LaunchpadValidationError, message, self.widget.getInputValue) |
135 | 219 | self.assertEqual(message, self.widget.error()) | 219 | self.assertEqual(message, self.widget.error()) |
136 | 220 | 220 | ||
137 | === modified file 'lib/lp/archivepublisher/tests/test_customupload.py' | |||
138 | --- lib/lp/archivepublisher/tests/test_customupload.py 2010-08-20 20:31:18 +0000 | |||
139 | +++ lib/lp/archivepublisher/tests/test_customupload.py 2012-02-22 01:28:20 +0000 | |||
140 | @@ -1,4 +1,4 @@ | |||
142 | 1 | # Copyright 2009-2010 Canonical Ltd. This software is licensed under the | 1 | # Copyright 2009-2012 Canonical Ltd. This software is licensed under the |
143 | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). |
144 | 3 | 3 | ||
145 | 4 | """Tests for `CustomUploads`.""" | 4 | """Tests for `CustomUploads`.""" |
146 | @@ -57,7 +57,7 @@ | |||
147 | 57 | self.assertEntries(['1.0', '1.1', '1.2', '1.3']) | 57 | self.assertEntries(['1.0', '1.1', '1.2', '1.3']) |
148 | 58 | 58 | ||
149 | 59 | # `fixCurrentSymlink` will keep only the latest 3 and create a | 59 | # `fixCurrentSymlink` will keep only the latest 3 and create a |
151 | 60 | # 'current' symbolic link the the highest one. | 60 | # 'current' symbolic link the highest one. |
152 | 61 | custom_processor.fixCurrentSymlink() | 61 | custom_processor.fixCurrentSymlink() |
153 | 62 | self.assertEntries(['1.1', '1.2', '1.3', 'current']) | 62 | self.assertEntries(['1.1', '1.2', '1.3', 'current']) |
154 | 63 | self.assertEqual( | 63 | self.assertEqual( |
155 | 64 | 64 | ||
156 | === modified file 'lib/lp/archiveuploader/nascentuploadfile.py' | |||
157 | --- lib/lp/archiveuploader/nascentuploadfile.py 2012-01-06 11:08:30 +0000 | |||
158 | +++ lib/lp/archiveuploader/nascentuploadfile.py 2012-02-22 01:28:20 +0000 | |||
159 | @@ -1,4 +1,4 @@ | |||
161 | 1 | # Copyright 2009-2011 Canonical Ltd. This software is licensed under the | 1 | # Copyright 2009-2012 Canonical Ltd. This software is licensed under the |
162 | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). |
163 | 3 | 3 | ||
164 | 4 | """Specific models for uploaded files""" | 4 | """Specific models for uploaded files""" |
165 | @@ -579,7 +579,7 @@ | |||
166 | 579 | 579 | ||
167 | 580 | # Since DDEBs are generated after the original DEBs are processed | 580 | # Since DDEBs are generated after the original DEBs are processed |
168 | 581 | # and considered by `dpkg-genchanges` they are only half-incorporated | 581 | # and considered by `dpkg-genchanges` they are only half-incorporated |
170 | 582 | # the the binary upload changes file. DDEBs are only listed in the | 582 | # the binary upload changes file. DDEBs are only listed in the |
171 | 583 | # Files/Checksums-Sha1/ChecksumsSha256 sections and missing from | 583 | # Files/Checksums-Sha1/ChecksumsSha256 sections and missing from |
172 | 584 | # Binary/Description. | 584 | # Binary/Description. |
173 | 585 | if not self.filename.endswith('.ddeb'): | 585 | if not self.filename.endswith('.ddeb'): |
174 | 586 | 586 | ||
175 | === modified file 'lib/lp/blueprints/tests/test_specification.py' | |||
176 | --- lib/lp/blueprints/tests/test_specification.py 2012-01-01 02:58:52 +0000 | |||
177 | +++ lib/lp/blueprints/tests/test_specification.py 2012-02-22 01:28:20 +0000 | |||
178 | @@ -1,4 +1,4 @@ | |||
180 | 1 | # Copyright 2010-2011 Canonical Ltd. This software is licensed under the | 1 | # Copyright 2010-2012 Canonical Ltd. This software is licensed under the |
181 | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). |
182 | 3 | 3 | ||
183 | 4 | """Unit tests for Specification.""" | 4 | """Unit tests for Specification.""" |
184 | @@ -118,7 +118,7 @@ | |||
185 | 118 | self.new_names = NewSpecificationDefinitionStatus.items.mapping.keys() | 118 | self.new_names = NewSpecificationDefinitionStatus.items.mapping.keys() |
186 | 119 | 119 | ||
187 | 120 | def test_new_with_open_definition_status_creates_specification(self): | 120 | def test_new_with_open_definition_status_creates_specification(self): |
189 | 121 | # Calling new() with an open definition status will will create | 121 | # Calling new() with an open definition status will create |
190 | 122 | # a specification. | 122 | # a specification. |
191 | 123 | self.assertTrue( | 123 | self.assertTrue( |
192 | 124 | SpecificationDefinitionStatus.NEW.name in self.new_names) | 124 | SpecificationDefinitionStatus.NEW.name in self.new_names) |
193 | 125 | 125 | ||
194 | === modified file 'lib/lp/bugs/browser/bugtarget.py' | |||
195 | --- lib/lp/bugs/browser/bugtarget.py 2012-02-09 12:42:00 +0000 | |||
196 | +++ lib/lp/bugs/browser/bugtarget.py 2012-02-22 01:28:20 +0000 | |||
197 | @@ -774,7 +774,7 @@ | |||
198 | 774 | def inline_filebug_form_url(self): | 774 | def inline_filebug_form_url(self): |
199 | 775 | """Return the URL to the inline filebug form. | 775 | """Return the URL to the inline filebug form. |
200 | 776 | 776 | ||
202 | 777 | If a token was passed to this view, it will be be passed through | 777 | If a token was passed to this view, it will be passed through |
203 | 778 | to the inline bug filing form via the returned URL. | 778 | to the inline bug filing form via the returned URL. |
204 | 779 | """ | 779 | """ |
205 | 780 | url = canonical_url(self.context, view_name='+filebug-inline-form') | 780 | url = canonical_url(self.context, view_name='+filebug-inline-form') |
206 | @@ -1173,7 +1173,7 @@ | |||
207 | 1173 | def inline_filebug_form_url(self): | 1173 | def inline_filebug_form_url(self): |
208 | 1174 | """Return the URL to the inline filebug form. | 1174 | """Return the URL to the inline filebug form. |
209 | 1175 | 1175 | ||
211 | 1176 | If a token was passed to this view, it will be be passed through | 1176 | If a token was passed to this view, it will be passed through |
212 | 1177 | to the inline bug filing form via the returned URL. | 1177 | to the inline bug filing form via the returned URL. |
213 | 1178 | 1178 | ||
214 | 1179 | The URL returned will be the URL of the first of the current | 1179 | The URL returned will be the URL of the first of the current |
215 | 1180 | 1180 | ||
216 | === modified file 'lib/lp/bugs/browser/tests/bug-views.txt' | |||
217 | --- lib/lp/bugs/browser/tests/bug-views.txt 2011-12-30 07:38:46 +0000 | |||
218 | +++ lib/lp/bugs/browser/tests/bug-views.txt 2012-02-22 01:28:20 +0000 | |||
219 | @@ -358,7 +358,7 @@ | |||
220 | 358 | 'edit' | 358 | 'edit' |
221 | 359 | 359 | ||
222 | 360 | If we now unsubscribe Foo Bar, it will say 'Subscribe', since team | 360 | If we now unsubscribe Foo Bar, it will say 'Subscribe', since team |
224 | 361 | unsubsription is handled by the remove icon next the the team in the | 361 | unsubsription is handled by the remove icon next the team in the |
225 | 362 | subscribers portlet. | 362 | subscribers portlet. |
226 | 363 | 363 | ||
227 | 364 | >>> bug_one.unsubscribe(foo_bar, foo_bar) | 364 | >>> bug_one.unsubscribe(foo_bar, foo_bar) |
228 | 365 | 365 | ||
229 | === modified file 'lib/lp/bugs/browser/tests/bugtask-edit-views.txt' | |||
230 | --- lib/lp/bugs/browser/tests/bugtask-edit-views.txt 2011-12-24 17:49:30 +0000 | |||
231 | +++ lib/lp/bugs/browser/tests/bugtask-edit-views.txt 2012-02-22 01:28:20 +0000 | |||
232 | @@ -83,8 +83,8 @@ | |||
233 | 83 | >>> for error in edit_view.errors: | 83 | >>> for error in edit_view.errors: |
234 | 84 | ... print error | 84 | ... print error |
235 | 85 | (u'ubuntu_thunderbird.target', u'Target', | 85 | (u'ubuntu_thunderbird.target', u'Target', |
238 | 86 | LaunchpadValidationError(u"There is no package name 'no-such-package' | 86 | LaunchpadValidationError(u"There is no package named 'no-such-package' |
239 | 87 | published in Ubuntu")) | 87 | published in Ubuntu.")) |
240 | 88 | 88 | ||
241 | 89 | An error is reported to the user when a bug is retargeted and there is | 89 | An error is reported to the user when a bug is retargeted and there is |
242 | 90 | an existing task for the same target. | 90 | an existing task for the same target. |
243 | 91 | 91 | ||
244 | === modified file 'lib/lp/bugs/doc/bug-watch-activity.txt' | |||
245 | --- lib/lp/bugs/doc/bug-watch-activity.txt 2012-01-20 16:11:11 +0000 | |||
246 | +++ lib/lp/bugs/doc/bug-watch-activity.txt 2012-02-22 01:28:20 +0000 | |||
247 | @@ -114,7 +114,7 @@ | |||
248 | 114 | >>> print bug_watch.activity.count() | 114 | >>> print bug_watch.activity.count() |
249 | 115 | 3 | 115 | 3 |
250 | 116 | 116 | ||
252 | 117 | And this time its result field will record that the the remote bug was | 117 | And this time its result field will record that the remote bug was |
253 | 118 | not found. | 118 | not found. |
254 | 119 | 119 | ||
255 | 120 | >>> most_recent_activity = bug_watch.activity.first() | 120 | >>> most_recent_activity = bug_watch.activity.first() |
256 | 121 | 121 | ||
257 | === modified file 'lib/lp/bugs/doc/distribution-upstream-bug-report.txt' | |||
258 | --- lib/lp/bugs/doc/distribution-upstream-bug-report.txt 2011-12-24 15:28:06 +0000 | |||
259 | +++ lib/lp/bugs/doc/distribution-upstream-bug-report.txt 2012-02-22 01:28:20 +0000 | |||
260 | @@ -225,7 +225,7 @@ | |||
261 | 225 | Deltas | 225 | Deltas |
262 | 226 | ...... | 226 | ...... |
263 | 227 | 227 | ||
265 | 228 | BugReportData also offers a set of of *_delta properties along with the | 228 | BugReportData also offers a set of *_delta properties along with the |
266 | 229 | *_percentage properties. | 229 | *_percentage properties. |
267 | 230 | 230 | ||
268 | 231 | BugReportData.triaged_bugs_delta is the difference between the number of | 231 | BugReportData.triaged_bugs_delta is the difference between the number of |
269 | 232 | 232 | ||
270 | === modified file 'lib/lp/bugs/doc/filebug-data-parser.txt' | |||
271 | --- lib/lp/bugs/doc/filebug-data-parser.txt 2010-02-23 15:10:04 +0000 | |||
272 | +++ lib/lp/bugs/doc/filebug-data-parser.txt 2012-02-22 01:28:20 +0000 | |||
273 | @@ -189,7 +189,7 @@ | |||
274 | 189 | 189 | ||
275 | 190 | ==== HWDB submission keys ==== | 190 | ==== HWDB submission keys ==== |
276 | 191 | 191 | ||
278 | 192 | The HWDB-Submission key is turned into a list of of strings, available | 192 | The HWDB-Submission key is turned into a list of strings, available |
279 | 193 | through the hwdb_submission_keys attribute. | 193 | through the hwdb_submission_keys attribute. |
280 | 194 | 194 | ||
281 | 195 | >>> data = FileBugData() | 195 | >>> data = FileBugData() |
282 | 196 | 196 | ||
283 | === modified file 'lib/lp/bugs/javascript/bug_subscription_portlet.js' | |||
284 | --- lib/lp/bugs/javascript/bug_subscription_portlet.js 2011-09-27 06:06:13 +0000 | |||
285 | +++ lib/lp/bugs/javascript/bug_subscription_portlet.js 2012-02-22 01:28:20 +0000 | |||
286 | @@ -1,4 +1,4 @@ | |||
288 | 1 | /* Copyright 2011 Canonical Ltd. This software is licensed under the | 1 | /* Copyright 2011-2012 Canonical Ltd. This software is licensed under the |
289 | 2 | * GNU Affero General Public License version 3 (see the file LICENSE). | 2 | * GNU Affero General Public License version 3 (see the file LICENSE). |
290 | 3 | * | 3 | * |
291 | 4 | * Provide information and actions on all bug subscriptions a person holds. | 4 | * Provide information and actions on all bug subscriptions a person holds. |
292 | @@ -309,7 +309,7 @@ | |||
293 | 309 | .setStyle('textOverflow', 'ellipsis') | 309 | .setStyle('textOverflow', 'ellipsis') |
294 | 310 | .setStyle('whiteSpace', 'nowrap') | 310 | .setStyle('whiteSpace', 'nowrap') |
295 | 311 | .setStyle('width', '21em'); | 311 | .setStyle('width', '21em'); |
297 | 312 | // This is the the node that description of the current subscription | 312 | // This is the node that description of the current subscription |
298 | 313 | // status. | 313 | // status. |
299 | 314 | var status_node = tag('div') | 314 | var status_node = tag('div') |
300 | 315 | .addClass('subscription-status') | 315 | .addClass('subscription-status') |
301 | @@ -328,7 +328,7 @@ | |||
302 | 328 | .set('text', | 328 | .set('text', |
303 | 329 | 'You currently only receive email when this bug is closed.') | 329 | 'You currently only receive email when this bug is closed.') |
304 | 330 | ); | 330 | ); |
306 | 331 | // This is the the node that contains the links to subscribe at a certain | 331 | // This is the node that contains the links to subscribe at a certain |
307 | 332 | // level. | 332 | // level. |
308 | 333 | var actions_node = tag('div') | 333 | var actions_node = tag('div') |
309 | 334 | .addClass('subscription-actions') | 334 | .addClass('subscription-actions') |
310 | 335 | 335 | ||
311 | === modified file 'lib/lp/bugs/model/bugwatch.py' | |||
312 | --- lib/lp/bugs/model/bugwatch.py 2011-12-30 06:14:56 +0000 | |||
313 | +++ lib/lp/bugs/model/bugwatch.py 2012-02-22 01:28:20 +0000 | |||
314 | @@ -1,4 +1,4 @@ | |||
316 | 1 | # Copyright 2009 Canonical Ltd. This software is licensed under the | 1 | # Copyright 2009-2012 Canonical Ltd. This software is licensed under the |
317 | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). |
318 | 3 | 3 | ||
319 | 4 | # pylint: disable-msg=E0611,W0212 | 4 | # pylint: disable-msg=E0611,W0212 |
320 | @@ -331,7 +331,7 @@ | |||
321 | 331 | self.next_check <= datetime.now(utc)): | 331 | self.next_check <= datetime.now(utc)): |
322 | 332 | # If the watch is already scheduled for a time in the past | 332 | # If the watch is already scheduled for a time in the past |
323 | 333 | # (or for right now) it can't be rescheduled, since it | 333 | # (or for right now) it can't be rescheduled, since it |
325 | 334 | # should be be checked by the next checkwatches run anyway. | 334 | # should be checked by the next checkwatches run anyway. |
326 | 335 | return False | 335 | return False |
327 | 336 | 336 | ||
328 | 337 | if self.activity.is_empty(): | 337 | if self.activity.is_empty(): |
329 | 338 | 338 | ||
330 | === modified file 'lib/lp/bugs/stories/webservice/xx-bug-tracker.txt' | |||
331 | --- lib/lp/bugs/stories/webservice/xx-bug-tracker.txt 2011-07-13 06:08:16 +0000 | |||
332 | +++ lib/lp/bugs/stories/webservice/xx-bug-tracker.txt 2012-02-22 01:28:20 +0000 | |||
333 | @@ -31,7 +31,7 @@ | |||
334 | 31 | web_link: u'http://bugs.launchpad.dev/bugs/bugtrackers/mozilla.org' | 31 | web_link: u'http://bugs.launchpad.dev/bugs/bugtrackers/mozilla.org' |
335 | 32 | --- ... | 32 | --- ... |
336 | 33 | 33 | ||
338 | 34 | A bug tracker can be retrieved using the the bug tracker collection's | 34 | A bug tracker can be retrieved using the bug tracker collection's |
339 | 35 | getByName named operation. | 35 | getByName named operation. |
340 | 36 | 36 | ||
341 | 37 | >>> bug_tracker = anon_webservice.named_get( | 37 | >>> bug_tracker = anon_webservice.named_get( |
342 | @@ -40,7 +40,7 @@ | |||
343 | 40 | >>> print bug_tracker['name'] | 40 | >>> print bug_tracker['name'] |
344 | 41 | gnome-bugzilla | 41 | gnome-bugzilla |
345 | 42 | 42 | ||
347 | 43 | A bug tracker can be retrieved using the the bug tracker collection's | 43 | A bug tracker can be retrieved using the bug tracker collection's |
348 | 44 | queryByBaseURL named operation. | 44 | queryByBaseURL named operation. |
349 | 45 | 45 | ||
350 | 46 | >>> bug_tracker = anon_webservice.named_get( | 46 | >>> bug_tracker = anon_webservice.named_get( |
351 | 47 | 47 | ||
352 | === modified file 'lib/lp/bugs/templates/bug-mute.pt' | |||
353 | --- lib/lp/bugs/templates/bug-mute.pt 2011-03-23 16:28:51 +0000 | |||
354 | +++ lib/lp/bugs/templates/bug-mute.pt 2012-02-22 01:28:20 +0000 | |||
355 | @@ -16,7 +16,7 @@ | |||
356 | 16 | <div id="maincontent"> | 16 | <div id="maincontent"> |
357 | 17 | <div id="nonportlets" class="readable"> | 17 | <div id="nonportlets" class="readable"> |
358 | 18 | <p> | 18 | <p> |
360 | 19 | If you mute a bug you will receive no mail about the the bug | 19 | If you mute a bug you will receive no mail about the bug |
361 | 20 | at all until you unmute it again. | 20 | at all until you unmute it again. |
362 | 21 | </p> | 21 | </p> |
363 | 22 | 22 | ||
364 | 23 | 23 | ||
365 | === modified file 'lib/lp/bugs/tests/test_apportjob.py' | |||
366 | --- lib/lp/bugs/tests/test_apportjob.py 2012-01-01 02:58:52 +0000 | |||
367 | +++ lib/lp/bugs/tests/test_apportjob.py 2012-02-22 01:28:20 +0000 | |||
368 | @@ -1,4 +1,4 @@ | |||
370 | 1 | # Copyright 2010-2011 Canonical Ltd. This software is licensed under the | 1 | # Copyright 2010-2012 Canonical Ltd. This software is licensed under the |
371 | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). |
372 | 3 | 3 | ||
373 | 4 | """Tests for ApportJobs.""" | 4 | """Tests for ApportJobs.""" |
374 | @@ -126,7 +126,7 @@ | |||
375 | 126 | data_dict['hwdb_submission_keys'], | 126 | data_dict['hwdb_submission_keys'], |
376 | 127 | "Values for hwdb_submission_keys do not match") | 127 | "Values for hwdb_submission_keys do not match") |
377 | 128 | 128 | ||
379 | 129 | # The attachments list of of the data_dict dict will be of | 129 | # The attachments list of the data_dict dict will be of |
380 | 130 | # the same length as the attachments list in the filebug_data | 130 | # the same length as the attachments list in the filebug_data |
381 | 131 | # object. | 131 | # object. |
382 | 132 | self.assertEqual( | 132 | self.assertEqual( |
383 | 133 | 133 | ||
384 | === modified file 'lib/lp/code/browser/tests/test_sourcepackagerecipe.py' | |||
385 | --- lib/lp/code/browser/tests/test_sourcepackagerecipe.py 2012-01-15 13:32:27 +0000 | |||
386 | +++ lib/lp/code/browser/tests/test_sourcepackagerecipe.py 2012-02-22 01:28:20 +0000 | |||
387 | @@ -1255,7 +1255,7 @@ | |||
388 | 1255 | naked_build.date_created + timedelta(minutes=10)) | 1255 | naked_build.date_created + timedelta(minutes=10)) |
389 | 1256 | set_status(build6, BuildStatus.FULLYBUILT) | 1256 | set_status(build6, BuildStatus.FULLYBUILT) |
390 | 1257 | set_status(build5, BuildStatus.FAILEDTOBUILD) | 1257 | set_status(build5, BuildStatus.FAILEDTOBUILD) |
392 | 1258 | # When there are 4+ pending builds, only the the most | 1258 | # When there are 4+ pending builds, only the most |
393 | 1259 | # recently-completed build is returned (i.e. build1, not build2) | 1259 | # recently-completed build is returned (i.e. build1, not build2) |
394 | 1260 | self.assertEqual( | 1260 | self.assertEqual( |
395 | 1261 | [build4, build3, build2, build1, build6], | 1261 | [build4, build3, build2, build1, build6], |
396 | 1262 | 1262 | ||
397 | === modified file 'lib/lp/code/errors.py' | |||
398 | --- lib/lp/code/errors.py 2012-02-06 05:33:31 +0000 | |||
399 | +++ lib/lp/code/errors.py 2012-02-22 01:28:20 +0000 | |||
400 | @@ -297,7 +297,7 @@ | |||
401 | 297 | 297 | ||
402 | 298 | 298 | ||
403 | 299 | class UpdatePreviewDiffNotReady(Exception): | 299 | class UpdatePreviewDiffNotReady(Exception): |
405 | 300 | """Raised if the the preview diff is not ready to run.""" | 300 | """Raised if the preview diff is not ready to run.""" |
406 | 301 | 301 | ||
407 | 302 | 302 | ||
408 | 303 | class UserHasExistingReview(Exception): | 303 | class UserHasExistingReview(Exception): |
409 | 304 | 304 | ||
410 | === modified file 'lib/lp/code/model/tests/test_branch_privacy_triggers.py' | |||
411 | --- lib/lp/code/model/tests/test_branch_privacy_triggers.py 2012-01-20 15:42:44 +0000 | |||
412 | +++ lib/lp/code/model/tests/test_branch_privacy_triggers.py 2012-02-22 01:28:20 +0000 | |||
413 | @@ -1,4 +1,4 @@ | |||
415 | 1 | # Copyright 2011 Canonical Ltd. This software is licensed under the | 1 | # Copyright 2011-2012 Canonical Ltd. This software is licensed under the |
416 | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). |
417 | 3 | 3 | ||
418 | 4 | """Tests that the triggers to maintain the branch table transitively_private | 4 | """Tests that the triggers to maintain the branch table transitively_private |
419 | @@ -133,7 +133,7 @@ | |||
420 | 133 | def testRemoveStackedOn(self): | 133 | def testRemoveStackedOn(self): |
421 | 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. |
422 | 135 | # Unstack 1. | 135 | # Unstack 1. |
424 | 136 | # 1 should no longer be be transitively private. | 136 | # 1 should no longer be transitively private. |
425 | 137 | self.createBranches() | 137 | self.createBranches() |
426 | 138 | self.updateStackedOnForBranch(1, 5) | 138 | self.updateStackedOnForBranch(1, 5) |
427 | 139 | self.updatePrivacyForBranch(5, True) | 139 | self.updatePrivacyForBranch(5, True) |
428 | 140 | 140 | ||
429 | === modified file 'lib/lp/code/stories/branches/xx-subscribing-branches.txt' | |||
430 | --- lib/lp/code/stories/branches/xx-subscribing-branches.txt 2012-01-15 13:32:27 +0000 | |||
431 | +++ lib/lp/code/stories/branches/xx-subscribing-branches.txt 2012-02-22 01:28:20 +0000 | |||
432 | @@ -218,7 +218,7 @@ | |||
433 | 218 | =========================== | 218 | =========================== |
434 | 219 | 219 | ||
435 | 220 | In order to edit a team subscription the logged in user needs to be a member | 220 | In order to edit a team subscription the logged in user needs to be a member |
437 | 221 | of the team that is subscribed, or must the the person who subscribed the team | 221 | of the team that is subscribed, or must the person who subscribed the team |
438 | 222 | to the branch. There is a link shown in the subscriptions portlet to edit the | 222 | to the branch. There is a link shown in the subscriptions portlet to edit the |
439 | 223 | subscription of a team that the logged in user is a member of. | 223 | subscription of a team that the logged in user is a member of. |
440 | 224 | 224 | ||
441 | 225 | 225 | ||
442 | === modified file 'lib/lp/code/windmill/tests/test_recipe_inline_distroseries_edit.py' | |||
443 | --- lib/lp/code/windmill/tests/test_recipe_inline_distroseries_edit.py 2012-01-15 13:32:27 +0000 | |||
444 | +++ lib/lp/code/windmill/tests/test_recipe_inline_distroseries_edit.py 2012-02-22 01:28:20 +0000 | |||
445 | @@ -1,4 +1,4 @@ | |||
447 | 1 | # Copyright 2011 Canonical Ltd. This software is licensed under the | 1 | # Copyright 2011-2012 Canonical Ltd. This software is licensed under the |
448 | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). |
449 | 3 | 3 | ||
450 | 4 | """Tests for requesting recipe builds.""" | 4 | """Tests for requesting recipe builds.""" |
451 | @@ -51,7 +51,7 @@ | |||
452 | 51 | # Save it | 51 | # Save it |
453 | 52 | client.click(jquery=u'("#edit-distroseries-save")[0]') | 52 | client.click(jquery=u'("#edit-distroseries-save")[0]') |
454 | 53 | 53 | ||
456 | 54 | # Wait for the the new one that is added. | 54 | # Wait for the new one that is added. |
457 | 55 | client.waits.forElement( | 55 | client.waits.forElement( |
458 | 56 | jquery=u"('#edit-distroseries-items ul li a')[0]", | 56 | jquery=u"('#edit-distroseries-items ul li a')[0]", |
459 | 57 | timeout=FOR_ELEMENT) | 57 | timeout=FOR_ELEMENT) |
460 | 58 | 58 | ||
461 | === modified file 'lib/lp/code/windmill/tests/test_recipe_request_build.py' | |||
462 | --- lib/lp/code/windmill/tests/test_recipe_request_build.py 2012-01-15 13:32:27 +0000 | |||
463 | +++ lib/lp/code/windmill/tests/test_recipe_request_build.py 2012-02-22 01:28:20 +0000 | |||
464 | @@ -1,4 +1,4 @@ | |||
466 | 1 | # Copyright 2011 Canonical Ltd. This software is licensed under the | 1 | # Copyright 2011-2012 Canonical Ltd. This software is licensed under the |
467 | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). |
468 | 3 | 3 | ||
469 | 4 | """Tests for requesting recipe builds.""" | 4 | """Tests for requesting recipe builds.""" |
470 | @@ -78,7 +78,7 @@ | |||
471 | 78 | def test_recipe_build_request_already_pending(self): | 78 | def test_recipe_build_request_already_pending(self): |
472 | 79 | """Test that already pending builds are correctly highlighted. | 79 | """Test that already pending builds are correctly highlighted. |
473 | 80 | 80 | ||
475 | 81 | If all possible builds are pending, the the Request Builds button | 81 | If all possible builds are pending, the Request Builds button |
476 | 82 | should be hidden. | 82 | should be hidden. |
477 | 83 | """ | 83 | """ |
478 | 84 | 84 | ||
479 | 85 | 85 | ||
480 | === modified file 'lib/lp/code/xmlrpc/tests/test_codehosting.py' | |||
481 | --- lib/lp/code/xmlrpc/tests/test_codehosting.py 2012-01-06 11:08:30 +0000 | |||
482 | +++ lib/lp/code/xmlrpc/tests/test_codehosting.py 2012-02-22 01:28:20 +0000 | |||
483 | @@ -1,4 +1,4 @@ | |||
485 | 1 | # Copyright 2009-2011 Canonical Ltd. This software is licensed under the | 1 | # Copyright 2009-2012 Canonical Ltd. This software is licensed under the |
486 | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). |
487 | 3 | 3 | ||
488 | 4 | """Tests for the internal codehosting API.""" | 4 | """Tests for the internal codehosting API.""" |
489 | @@ -1041,7 +1041,7 @@ | |||
490 | 1041 | self.assertEqual(expected, translation) | 1041 | self.assertEqual(expected, translation) |
491 | 1042 | 1042 | ||
492 | 1043 | def test_translatePath_branch_id_alias_owned(self): | 1043 | def test_translatePath_branch_id_alias_owned(self): |
494 | 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. |
495 | 1045 | requester = self.factory.makePerson() | 1045 | requester = self.factory.makePerson() |
496 | 1046 | branch = removeSecurityProxy( | 1046 | branch = removeSecurityProxy( |
497 | 1047 | self.factory.makeAnyBranch( | 1047 | self.factory.makeAnyBranch( |
498 | 1048 | 1048 | ||
499 | === modified file 'lib/lp/codehosting/scanner/tests/test_bzrsync.py' | |||
500 | --- lib/lp/codehosting/scanner/tests/test_bzrsync.py 2012-02-15 17:29:54 +0000 | |||
501 | +++ lib/lp/codehosting/scanner/tests/test_bzrsync.py 2012-02-22 01:28:20 +0000 | |||
502 | @@ -1,6 +1,6 @@ | |||
503 | 1 | #!/usr/bin/python | 1 | #!/usr/bin/python |
504 | 2 | # | 2 | # |
506 | 3 | # Copyright 2009-2011 Canonical Ltd. This software is licensed under the | 3 | # Copyright 2009-2012 Canonical Ltd. This software is licensed under the |
507 | 4 | # GNU Affero General Public License version 3 (see the file LICENSE). | 4 | # GNU Affero General Public License version 3 (see the file LICENSE). |
508 | 5 | 5 | ||
509 | 6 | # pylint: disable-msg=W0141 | 6 | # pylint: disable-msg=W0141 |
510 | @@ -620,7 +620,7 @@ | |||
511 | 620 | 620 | ||
512 | 621 | def _makeProductSeries(self, mode=None): | 621 | def _makeProductSeries(self, mode=None): |
513 | 622 | """Switch to the Launchpad db user to create and configure a | 622 | """Switch to the Launchpad db user to create and configure a |
515 | 623 | product series that is linked to the the branch. | 623 | product series that is linked to the branch. |
516 | 624 | """ | 624 | """ |
517 | 625 | with lp_dbuser(): | 625 | with lp_dbuser(): |
518 | 626 | self.product_series = self.factory.makeProductSeries() | 626 | self.product_series = self.factory.makeProductSeries() |
519 | 627 | 627 | ||
520 | === modified file 'lib/lp/registry/browser/mailinglists.py' | |||
521 | --- lib/lp/registry/browser/mailinglists.py 2012-01-01 02:58:52 +0000 | |||
522 | +++ lib/lp/registry/browser/mailinglists.py 2012-02-22 01:28:20 +0000 | |||
523 | @@ -1,4 +1,4 @@ | |||
525 | 1 | # Copyright 2009-2010 Canonical Ltd. This software is licensed under the | 1 | # Copyright 2009-2012 Canonical Ltd. This software is licensed under the |
526 | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). |
527 | 3 | 3 | ||
528 | 4 | """Browser views for handling mailing lists.""" | 4 | """Browser views for handling mailing lists.""" |
529 | @@ -28,7 +28,7 @@ | |||
530 | 28 | 28 | ||
531 | 29 | 29 | ||
532 | 30 | class HeldMessageView(LaunchpadView): | 30 | class HeldMessageView(LaunchpadView): |
534 | 31 | """A little helper view for for held messages.""" | 31 | """A little helper view for held messages.""" |
535 | 32 | 32 | ||
536 | 33 | def __init__(self, context, request): | 33 | def __init__(self, context, request): |
537 | 34 | super(HeldMessageView, self).__init__(context, request) | 34 | super(HeldMessageView, self).__init__(context, request) |
538 | 35 | 35 | ||
539 | === modified file 'lib/lp/registry/browser/milestone.py' | |||
540 | --- lib/lp/registry/browser/milestone.py 2012-01-14 09:00:20 +0000 | |||
541 | +++ lib/lp/registry/browser/milestone.py 2012-02-22 01:28:20 +0000 | |||
542 | @@ -1,4 +1,4 @@ | |||
544 | 1 | # Copyright 2009-2011 Canonical Ltd. This software is licensed under the | 1 | # Copyright 2009-2012 Canonical Ltd. This software is licensed under the |
545 | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). |
546 | 3 | 3 | ||
547 | 4 | """Milestone views.""" | 4 | """Milestone views.""" |
548 | @@ -496,7 +496,7 @@ | |||
549 | 496 | def _field_names(self): | 496 | def _field_names(self): |
550 | 497 | """See `LaunchpadFormView`. | 497 | """See `LaunchpadFormView`. |
551 | 498 | 498 | ||
553 | 499 | There are two series fields, one for for product milestones and the | 499 | There are two series fields, one for product milestones and the |
554 | 500 | other for distribution milestones. The product milestone may change | 500 | other for distribution milestones. The product milestone may change |
555 | 501 | its productseries. The distribution milestone may change its | 501 | its productseries. The distribution milestone may change its |
556 | 502 | distroseries. | 502 | distroseries. |
557 | 503 | 503 | ||
558 | === modified file 'lib/lp/registry/browser/person.py' | |||
559 | --- lib/lp/registry/browser/person.py 2012-02-21 12:43:54 +0000 | |||
560 | +++ lib/lp/registry/browser/person.py 2012-02-22 01:28:20 +0000 | |||
561 | @@ -2244,7 +2244,7 @@ | |||
562 | 2244 | else: | 2244 | else: |
563 | 2245 | merge_action = 'merged' | 2245 | merge_action = 'merged' |
564 | 2246 | self.request.response.addInfoNotification( | 2246 | self.request.response.addInfoNotification( |
566 | 2247 | "%s is queued to be be %s in a few minutes." % ( | 2247 | "%s is queued to be %s in a few minutes." % ( |
567 | 2248 | self.context.displayname, merge_action)) | 2248 | self.context.displayname, merge_action)) |
568 | 2249 | if self.request.method == "POST": | 2249 | if self.request.method == "POST": |
569 | 2250 | self.processForm() | 2250 | self.processForm() |
570 | 2251 | 2251 | ||
571 | === modified file 'lib/lp/registry/browser/tests/browser-views.txt' | |||
572 | --- lib/lp/registry/browser/tests/browser-views.txt 2011-12-24 17:49:30 +0000 | |||
573 | +++ lib/lp/registry/browser/tests/browser-views.txt 2012-02-22 01:28:20 +0000 | |||
574 | @@ -8,7 +8,7 @@ | |||
575 | 8 | --------------------- | 8 | --------------------- |
576 | 9 | 9 | ||
577 | 10 | The MilestoneOverlayMixin provides data that is needed by milestoneoverlay.js. | 10 | The MilestoneOverlayMixin provides data that is needed by milestoneoverlay.js. |
579 | 11 | The milestone_form_uri property is the location of of the rendered form. The | 11 | The milestone_form_uri property is the location of the rendered form. The |
580 | 12 | javascript calls newMilestone on the object at series_api_uri. | 12 | javascript calls newMilestone on the object at series_api_uri. |
581 | 13 | 13 | ||
582 | 14 | >>> from lp.services.webapp import LaunchpadView | 14 | >>> from lp.services.webapp import LaunchpadView |
583 | 15 | 15 | ||
584 | === modified file 'lib/lp/registry/browser/tests/productrelease-views.txt' | |||
585 | --- lib/lp/registry/browser/tests/productrelease-views.txt 2012-02-02 12:30:53 +0000 | |||
586 | +++ lib/lp/registry/browser/tests/productrelease-views.txt 2012-02-22 01:28:20 +0000 | |||
587 | @@ -102,7 +102,7 @@ | |||
588 | 102 | It is possible to create a release directly from a series, the release's | 102 | It is possible to create a release directly from a series, the release's |
589 | 103 | milestone can be created via an AJAX command. | 103 | milestone can be created via an AJAX command. |
590 | 104 | 104 | ||
592 | 105 | The view collects the the required release fields, and adds fields to to | 105 | The view collects the required release fields, and adds fields to to |
593 | 106 | set the milestone. | 106 | set the milestone. |
594 | 107 | 107 | ||
595 | 108 | >>> view = create_initialized_view(series, '+addrelease', principal=owner) | 108 | >>> view = create_initialized_view(series, '+addrelease', principal=owner) |
596 | 109 | 109 | ||
597 | === modified file 'lib/lp/registry/browser/tests/test_person.py' | |||
598 | --- lib/lp/registry/browser/tests/test_person.py 2012-02-01 15:26:32 +0000 | |||
599 | +++ lib/lp/registry/browser/tests/test_person.py 2012-02-22 01:28:20 +0000 | |||
600 | @@ -123,7 +123,7 @@ | |||
601 | 123 | job_source.create(from_person=dupe_person, to_person=target_person) | 123 | job_source.create(from_person=dupe_person, to_person=target_person) |
602 | 124 | view = create_initialized_view(dupe_person, name="+index") | 124 | view = create_initialized_view(dupe_person, name="+index") |
603 | 125 | notifications = view.request.response.notifications | 125 | notifications = view.request.response.notifications |
605 | 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.' |
606 | 127 | self.assertEqual(1, len(notifications)) | 127 | self.assertEqual(1, len(notifications)) |
607 | 128 | self.assertEqual(message, notifications[0].message) | 128 | self.assertEqual(message, notifications[0].message) |
608 | 129 | 129 | ||
609 | @@ -423,7 +423,7 @@ | |||
610 | 423 | self.view.field_names) | 423 | self.view.field_names) |
611 | 424 | 424 | ||
612 | 425 | def test_init_registry_expert(self): | 425 | def test_init_registry_expert(self): |
614 | 426 | # Registry experts do not see the the displayname field. | 426 | # Registry experts do not see the displayname field. |
615 | 427 | login_celebrity('registry_experts') | 427 | login_celebrity('registry_experts') |
616 | 428 | self.view.setUpFields() | 428 | self.view.setUpFields() |
617 | 429 | self.assertEqual( | 429 | self.assertEqual( |
618 | 430 | 430 | ||
619 | === modified file 'lib/lp/registry/browser/tests/test_team.py' | |||
620 | --- lib/lp/registry/browser/tests/test_team.py 2012-02-17 17:11:57 +0000 | |||
621 | +++ lib/lp/registry/browser/tests/test_team.py 2012-02-22 01:28:20 +0000 | |||
622 | @@ -465,7 +465,7 @@ | |||
623 | 465 | ['name', 'displayname'], view.field_names) | 465 | ['name', 'displayname'], view.field_names) |
624 | 466 | 466 | ||
625 | 467 | def test_init_registry_expert(self): | 467 | def test_init_registry_expert(self): |
627 | 468 | # Registry experts do not see the the displayname field. | 468 | # Registry experts do not see the displayname field. |
628 | 469 | team = self.factory.makeTeam() | 469 | team = self.factory.makeTeam() |
629 | 470 | login_celebrity('registry_experts') | 470 | login_celebrity('registry_experts') |
630 | 471 | view = create_initialized_view(team, name=self.view_name) | 471 | view = create_initialized_view(team, name=self.view_name) |
631 | @@ -811,7 +811,7 @@ | |||
632 | 811 | view = create_initialized_view(self.team, name="+index") | 811 | view = create_initialized_view(self.team, name="+index") |
633 | 812 | notifications = view.request.response.notifications | 812 | notifications = view.request.response.notifications |
634 | 813 | message = ( | 813 | message = ( |
636 | 814 | 'Test Team is queued to be be merged or deleted ' | 814 | 'Test Team is queued to be merged or deleted ' |
637 | 815 | 'in a few minutes.') | 815 | 'in a few minutes.') |
638 | 816 | self.assertEqual(1, len(notifications)) | 816 | self.assertEqual(1, len(notifications)) |
639 | 817 | self.assertEqual(message, notifications[0].message) | 817 | self.assertEqual(message, notifications[0].message) |
640 | 818 | 818 | ||
641 | === modified file 'lib/lp/registry/doc/distroseries.txt' | |||
642 | --- lib/lp/registry/doc/distroseries.txt 2012-01-06 11:08:30 +0000 | |||
643 | +++ lib/lp/registry/doc/distroseries.txt 2012-02-22 01:28:20 +0000 | |||
644 | @@ -448,7 +448,7 @@ | |||
645 | 448 | 448 | ||
646 | 449 | The distroseries getPrioritizedUnlinkedSourcePackages() method returns | 449 | The distroseries getPrioritizedUnlinkedSourcePackages() method returns |
647 | 450 | a prioritized list of `ISourcePackage` objects that need a packaging link to | 450 | a prioritized list of `ISourcePackage` objects that need a packaging link to |
649 | 451 | an `IProductSeries` to provide the the upstream information to share bugs, | 451 | an `IProductSeries` to provide the upstream information to share bugs, |
650 | 452 | translations, and code. Each item in the list is a dict with the 'package', | 452 | translations, and code. Each item in the list is a dict with the 'package', |
651 | 453 | total_bugs, and total_messages (translatable messages). | 453 | total_bugs, and total_messages (translatable messages). |
652 | 454 | 454 | ||
653 | 455 | 455 | ||
654 | === modified file 'lib/lp/registry/javascript/milestonetable.js' | |||
655 | --- lib/lp/registry/javascript/milestonetable.js 2011-08-09 14:18:02 +0000 | |||
656 | +++ lib/lp/registry/javascript/milestonetable.js 2012-02-22 01:28:20 +0000 | |||
657 | @@ -1,4 +1,4 @@ | |||
659 | 1 | /* Copyright 2010 Canonical Ltd. This software is licensed under the | 1 | /* Copyright 2010-2012 Canonical Ltd. This software is licensed under the |
660 | 2 | * GNU Affero General Public License version 3 (see the file LICENSE). | 2 | * GNU Affero General Public License version 3 (see the file LICENSE). |
661 | 3 | * | 3 | * |
662 | 4 | * Dynamically add milestones to an HTML table. | 4 | * Dynamically add milestones to an HTML table. |
663 | @@ -95,7 +95,7 @@ | |||
664 | 95 | * @param {Object} parameters Object literal of config name/value pairs. | 95 | * @param {Object} parameters Object literal of config name/value pairs. |
665 | 96 | * config.milestone_row_uri_template is the Y.substitute template | 96 | * config.milestone_row_uri_template is the Y.substitute template |
666 | 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. |
668 | 98 | * config.milestone_rows_id is the id the the tbody that the | 98 | * config.milestone_rows_id is the id the tbody that the |
669 | 99 | * milestone row will be added too. | 99 | * milestone row will be added too. |
670 | 100 | */ | 100 | */ |
671 | 101 | module.setup = function(config) { | 101 | module.setup = function(config) { |
672 | 102 | 102 | ||
673 | === modified file 'lib/lp/registry/javascript/tests/test_distroseriesdifferences_details.js' | |||
674 | --- lib/lp/registry/javascript/tests/test_distroseriesdifferences_details.js 2011-08-30 16:41:31 +0000 | |||
675 | +++ lib/lp/registry/javascript/tests/test_distroseriesdifferences_details.js 2012-02-22 01:28:20 +0000 | |||
676 | @@ -1,4 +1,4 @@ | |||
678 | 1 | /* Copyright 2009-2011 Canonical Ltd. This software is licensed under the | 1 | /* Copyright 2009-2012 Canonical Ltd. This software is licensed under the |
679 | 2 | GNU Affero General Public License version 3 (see the file LICENSE). */ | 2 | GNU Affero General Public License version 3 (see the file LICENSE). */ |
680 | 3 | 3 | ||
681 | 4 | YUI().use( | 4 | YUI().use( |
682 | @@ -905,7 +905,7 @@ | |||
683 | 905 | 905 | ||
684 | 906 | test_request_wrong_click: function() { | 906 | test_request_wrong_click: function() { |
685 | 907 | // Click on the placeholder has no effect. | 907 | // Click on the placeholder has no effect. |
687 | 908 | // The listeners are on the the link with class | 908 | // The listeners are on the link with class |
688 | 909 | // '.package-diff-compute-request'. | 909 | // '.package-diff-compute-request'. |
689 | 910 | // bug=746277. | 910 | // bug=746277. |
690 | 911 | var placeholder = Y.one('#placeholder'); | 911 | var placeholder = Y.one('#placeholder'); |
691 | 912 | 912 | ||
692 | === modified file 'lib/lp/registry/model/person.py' | |||
693 | --- lib/lp/registry/model/person.py 2012-02-20 10:32:23 +0000 | |||
694 | +++ lib/lp/registry/model/person.py 2012-02-22 01:28:20 +0000 | |||
695 | @@ -1050,7 +1050,7 @@ | |||
696 | 1050 | return contributions | 1050 | return contributions |
697 | 1051 | 1051 | ||
698 | 1052 | def _getProjectsWithTheMostKarma(self, limit=10): | 1052 | def _getProjectsWithTheMostKarma(self, limit=10): |
700 | 1053 | """Return the names and karma points of of this person on the | 1053 | """Return the names and karma points of this person on the |
701 | 1054 | product/distribution with that name. | 1054 | product/distribution with that name. |
702 | 1055 | 1055 | ||
703 | 1056 | The results are ordered descending by the karma points and limited to | 1056 | The results are ordered descending by the karma points and limited to |
704 | 1057 | 1057 | ||
705 | === modified file 'lib/lp/registry/model/teammembership.py' | |||
706 | --- lib/lp/registry/model/teammembership.py 2012-01-04 14:40:15 +0000 | |||
707 | +++ lib/lp/registry/model/teammembership.py 2012-02-22 01:28:20 +0000 | |||
708 | @@ -1,4 +1,4 @@ | |||
710 | 1 | # Copyright 2009-2011 Canonical Ltd. This software is licensed under the | 1 | # Copyright 2009-2012 Canonical Ltd. This software is licensed under the |
711 | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). |
712 | 3 | 3 | ||
713 | 4 | # pylint: disable-msg=E0611,W0212 | 4 | # pylint: disable-msg=E0611,W0212 |
714 | @@ -531,7 +531,7 @@ | |||
715 | 531 | """ | 531 | """ |
716 | 532 | # Delete participation entries for the child and the child's | 532 | # Delete participation entries for the child and the child's |
717 | 533 | # direct/indirect members in other ancestor teams, unless those | 533 | # direct/indirect members in other ancestor teams, unless those |
719 | 534 | # ancestor teams have another path the the child besides the | 534 | # ancestor teams have another path the child besides the |
720 | 535 | # membership that has just been deactivated. | 535 | # membership that has just been deactivated. |
721 | 536 | store = Store.of(parent) | 536 | store = Store.of(parent) |
722 | 537 | store.execute(""" | 537 | store.execute(""" |
723 | 538 | 538 | ||
724 | === modified file 'lib/lp/registry/stories/milestone/object-milestones.txt' | |||
725 | --- lib/lp/registry/stories/milestone/object-milestones.txt 2011-12-28 17:03:06 +0000 | |||
726 | +++ lib/lp/registry/stories/milestone/object-milestones.txt 2012-02-22 01:28:20 +0000 | |||
727 | @@ -83,7 +83,7 @@ | |||
728 | 83 | Mozilla Firefox 1.0 trunk A date | 83 | Mozilla Firefox 1.0 trunk A date |
729 | 84 | not yet released | 84 | not yet released |
730 | 85 | 85 | ||
732 | 86 | When the project is a member of a project group, the the user can see a | 86 | When the project is a member of a project group, the user can see a |
733 | 87 | link to the project groups's milestone's page. | 87 | link to the project groups's milestone's page. |
734 | 88 | 88 | ||
735 | 89 | >>> anon_browser.getLink( | 89 | >>> anon_browser.getLink( |
736 | 90 | 90 | ||
737 | === modified file 'lib/lp/registry/tests/test_commercialprojects_vocabularies.py' | |||
738 | --- lib/lp/registry/tests/test_commercialprojects_vocabularies.py 2012-02-13 21:01:51 +0000 | |||
739 | +++ lib/lp/registry/tests/test_commercialprojects_vocabularies.py 2012-02-22 01:28:20 +0000 | |||
740 | @@ -1,4 +1,4 @@ | |||
742 | 1 | # Copyright 2009-2011 Canonical Ltd. This software is licensed under the | 1 | # Copyright 2009-2012 Canonical Ltd. This software is licensed under the |
743 | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). |
744 | 3 | 3 | ||
745 | 4 | """Test the commercial projects vocabularies.""" | 4 | """Test the commercial projects vocabularies.""" |
746 | @@ -65,7 +65,7 @@ | |||
747 | 65 | len(results))) | 65 | len(results))) |
748 | 66 | 66 | ||
749 | 67 | def test_searchForTerms_success(self): | 67 | def test_searchForTerms_success(self): |
751 | 68 | # Search for for active maintained projects success. | 68 | # Search for active maintained projects success. |
752 | 69 | results = self.vocab.searchForTerms('widget') | 69 | results = self.vocab.searchForTerms('widget') |
753 | 70 | self.assertEqual( | 70 | self.assertEqual( |
754 | 71 | self.num_commercial, len(results), | 71 | self.num_commercial, len(results), |
755 | 72 | 72 | ||
756 | === modified file 'lib/lp/registry/tests/test_team.py' | |||
757 | --- lib/lp/registry/tests/test_team.py 2012-01-17 21:45:24 +0000 | |||
758 | +++ lib/lp/registry/tests/test_team.py 2012-02-22 01:28:20 +0000 | |||
759 | @@ -1,4 +1,4 @@ | |||
761 | 1 | # Copyright 2010-2011 Canonical Ltd. This software is licensed under the | 1 | # Copyright 2010-2012 Canonical Ltd. This software is licensed under the |
762 | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). |
763 | 3 | 3 | ||
764 | 4 | """Tests for PersonSet.""" | 4 | """Tests for PersonSet.""" |
765 | @@ -120,7 +120,7 @@ | |||
766 | 120 | def test_setContactAddress_after_purged_mailing_list_and_rename(self): | 120 | def test_setContactAddress_after_purged_mailing_list_and_rename(self): |
767 | 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, |
768 | 122 | # then the contact address is set/unset sometime afterwards. | 122 | # then the contact address is set/unset sometime afterwards. |
770 | 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. |
771 | 124 | # 1. Create then purge a mailing list. | 124 | # 1. Create then purge a mailing list. |
772 | 125 | self.createMailingListAndGetAddress() | 125 | self.createMailingListAndGetAddress() |
773 | 126 | mailing_list = self.team.mailing_list | 126 | mailing_list = self.team.mailing_list |
774 | 127 | 127 | ||
775 | === modified file 'lib/lp/services/database/sqlbase.py' | |||
776 | --- lib/lp/services/database/sqlbase.py 2012-02-07 14:39:27 +0000 | |||
777 | +++ lib/lp/services/database/sqlbase.py 2012-02-22 01:28:20 +0000 | |||
778 | @@ -1,4 +1,4 @@ | |||
780 | 1 | # Copyright 2009-2011 Canonical Ltd. This software is licensed under the | 1 | # Copyright 2009-2012 Canonical Ltd. This software is licensed under the |
781 | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). |
782 | 3 | 3 | ||
783 | 4 | __metaclass__ = type | 4 | __metaclass__ = type |
784 | @@ -164,7 +164,7 @@ | |||
785 | 164 | def __init__(self, *args, **kwargs): | 164 | def __init__(self, *args, **kwargs): |
786 | 165 | """Extended version of the SQLObjectBase constructor. | 165 | """Extended version of the SQLObjectBase constructor. |
787 | 166 | 166 | ||
789 | 167 | We we force use of the the master Store. | 167 | We force use of the master Store. |
790 | 168 | 168 | ||
791 | 169 | We refetch any parameters from different stores from the | 169 | We refetch any parameters from different stores from the |
792 | 170 | correct master Store. | 170 | correct master Store. |
793 | 171 | 171 | ||
794 | === modified file 'lib/lp/services/doc/limitedlist.txt' | |||
795 | --- lib/lp/services/doc/limitedlist.txt 2010-03-22 13:07:05 +0000 | |||
796 | +++ lib/lp/services/doc/limitedlist.txt 2012-02-22 01:28:20 +0000 | |||
797 | @@ -32,7 +32,7 @@ | |||
798 | 32 | <LimitedList(2, [2, 3])> | 32 | <LimitedList(2, [2, 3])> |
799 | 33 | 33 | ||
800 | 34 | If we add two LimitedLists, the result is a LimitedList too, its maximum | 34 | If we add two LimitedLists, the result is a LimitedList too, its maximum |
802 | 35 | length is the same as the the maximum length of the left operand. If the | 35 | length is the same as the maximum length of the left operand. If the |
803 | 36 | concatenated lists have more elements than left_operand.max_length, only | 36 | concatenated lists have more elements than left_operand.max_length, only |
804 | 37 | the last elements are stored. | 37 | the last elements are stored. |
805 | 38 | 38 | ||
806 | 39 | 39 | ||
807 | === modified file 'lib/lp/services/gpg/doc/gpghandler.txt' | |||
808 | --- lib/lp/services/gpg/doc/gpghandler.txt 2011-12-24 17:49:30 +0000 | |||
809 | +++ lib/lp/services/gpg/doc/gpghandler.txt 2012-02-22 01:28:20 +0000 | |||
810 | @@ -303,7 +303,7 @@ | |||
811 | 303 | >>> len(list(gpghandler.localKeys())) | 303 | >>> len(list(gpghandler.localKeys())) |
812 | 304 | 0 | 304 | 0 |
813 | 305 | 305 | ||
815 | 306 | When we we need the public key again we use retrieveKey(), which will | 306 | When we need the public key again we use retrieveKey(), which will |
816 | 307 | hit the keyserver and import it automatically. | 307 | hit the keyserver and import it automatically. |
817 | 308 | 308 | ||
818 | 309 | >>> retrieved_key = gpghandler.retrieveKey(new_key.fingerprint) | 309 | >>> retrieved_key = gpghandler.retrieveKey(new_key.fingerprint) |
819 | 310 | 310 | ||
820 | === modified file 'lib/lp/services/webapp/interfaces.py' | |||
821 | --- lib/lp/services/webapp/interfaces.py 2012-01-15 12:22:55 +0000 | |||
822 | +++ lib/lp/services/webapp/interfaces.py 2012-02-22 01:28:20 +0000 | |||
823 | @@ -1,4 +1,4 @@ | |||
825 | 1 | # Copyright 2009-2011 Canonical Ltd. This software is licensed under the | 1 | # Copyright 2009-2012 Canonical Ltd. This software is licensed under the |
826 | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). |
827 | 3 | 3 | ||
828 | 4 | # pylint: disable-msg=E0211,E0213 | 4 | # pylint: disable-msg=E0211,E0213 |
829 | @@ -170,7 +170,7 @@ | |||
830 | 170 | 170 | ||
831 | 171 | hidden = Attribute( | 171 | hidden = Attribute( |
832 | 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 " |
834 | 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 " |
835 | 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 " |
836 | 175 | "changed to visible by JavaScript or some other means.") | 175 | "changed to visible by JavaScript or some other means.") |
837 | 176 | 176 | ||
838 | 177 | 177 | ||
839 | === modified file 'lib/lp/soyuz/scripts/packagecopier.py' | |||
840 | --- lib/lp/soyuz/scripts/packagecopier.py 2012-01-09 13:25:02 +0000 | |||
841 | +++ lib/lp/soyuz/scripts/packagecopier.py 2012-02-22 01:28:20 +0000 | |||
842 | @@ -66,7 +66,7 @@ | |||
843 | 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. |
844 | 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. |
845 | 68 | 68 | ||
847 | 69 | # Open the the libraryfile for reading. | 69 | # Open the libraryfile for reading. |
848 | 70 | libraryfile.open() | 70 | libraryfile.open() |
849 | 71 | 71 | ||
850 | 72 | # Make a temporary file to hold the download. It's annoying | 72 | # Make a temporary file to hold the download. It's annoying |
851 | 73 | 73 | ||
852 | === modified file 'lib/lp/soyuz/stories/distribution/xx-distribution-packages.txt' | |||
853 | --- lib/lp/soyuz/stories/distribution/xx-distribution-packages.txt 2011-12-30 06:14:56 +0000 | |||
854 | +++ lib/lp/soyuz/stories/distribution/xx-distribution-packages.txt 2012-02-22 01:28:20 +0000 | |||
855 | @@ -581,7 +581,7 @@ | |||
856 | 581 | ------------------ | 581 | ------------------ |
857 | 582 | 582 | ||
858 | 583 | Users can inspect the full publishing history by clicking on a link in | 583 | Users can inspect the full publishing history by clicking on a link in |
860 | 584 | the action menu on the the distribution source package index page. | 584 | the action menu on the distribution source package index page. |
861 | 585 | 585 | ||
862 | 586 | >>> anon_browser.getLink('View full publishing history').click() | 586 | >>> anon_browser.getLink('View full publishing history').click() |
863 | 587 | 587 | ||
864 | 588 | 588 | ||
865 | === modified file 'utilities/format-imports' | |||
866 | --- utilities/format-imports 2012-01-01 03:20:03 +0000 | |||
867 | +++ utilities/format-imports 2012-02-22 01:28:20 +0000 | |||
868 | @@ -1,6 +1,6 @@ | |||
869 | 1 | #!/usr/bin/python | 1 | #!/usr/bin/python |
870 | 2 | # | 2 | # |
872 | 3 | # Copyright 2010 Canonical Ltd. This software is licensed under the | 3 | # Copyright 2010-2012 Canonical Ltd. This software is licensed under the |
873 | 4 | # GNU Affero General Public License version 3 (see the file LICENSE). | 4 | # GNU Affero General Public License version 3 (see the file LICENSE). |
874 | 5 | 5 | ||
875 | 6 | """ Format import sections in python files | 6 | """ Format import sections in python files |
876 | @@ -65,7 +65,7 @@ | |||
877 | 65 | length. | 65 | length. |
878 | 66 | 66 | ||
879 | 67 | Comments stick with the import statement that followed them. Comments at the | 67 | Comments stick with the import statement that followed them. Comments at the |
881 | 68 | end of one-line statements are moved to be be in front of it, .i.e. | 68 | end of one-line statements are moved to be in front of it, .i.e. |
882 | 69 | {{{ | 69 | {{{ |
883 | 70 | from sys import exit # Have a way out | 70 | from sys import exit # Have a way out |
884 | 71 | }}} | 71 | }}} |
885 | 72 | 72 | ||
886 | === modified file 'utilities/paste' | |||
887 | --- utilities/paste 2012-01-01 03:10:25 +0000 | |||
888 | +++ utilities/paste 2012-02-22 01:28:20 +0000 | |||
889 | @@ -1,6 +1,6 @@ | |||
890 | 1 | #!/usr/bin/python -S | 1 | #!/usr/bin/python -S |
891 | 2 | # | 2 | # |
893 | 3 | # Copyright 2009 Canonical Ltd. This software is licensed under the | 3 | # Copyright 2009-2012 Canonical Ltd. This software is licensed under the |
894 | 4 | # GNU Affero General Public License version 3 (see the file LICENSE). | 4 | # GNU Affero General Public License version 3 (see the file LICENSE). |
895 | 5 | 5 | ||
896 | 6 | import _pythonpath | 6 | import _pythonpath |
897 | @@ -131,7 +131,7 @@ | |||
898 | 131 | cookiejar.set_cookie(lp_cookie) | 131 | cookiejar.set_cookie(lp_cookie) |
899 | 132 | browser.mech_browser.set_cookiejar(cookiejar) | 132 | browser.mech_browser.set_cookiejar(cookiejar) |
900 | 133 | 133 | ||
902 | 134 | # Remove the the check for robots.txt, since the one on | 134 | # Remove the check for robots.txt, since the one on |
903 | 135 | # pastebin.ubuntu.com doesn't allow us to open the page. We're not | 135 | # pastebin.ubuntu.com doesn't allow us to open the page. We're not |
904 | 136 | # really a robot. | 136 | # really a robot. |
905 | 137 | browser.mech_browser.handlers = [ | 137 | browser.mech_browser.handlers = [ |
906 | 138 | 138 | ||
907 | === modified file 'utilities/top-tests.py' | |||
908 | --- utilities/top-tests.py 2012-01-01 03:10:25 +0000 | |||
909 | +++ utilities/top-tests.py 2012-02-22 01:28:20 +0000 | |||
910 | @@ -1,6 +1,6 @@ | |||
911 | 1 | #!/usr/bin/python | 1 | #!/usr/bin/python |
912 | 2 | # | 2 | # |
914 | 3 | # Copyright 2009 Canonical Ltd. This software is licensed under the | 3 | # Copyright 2009-2012 Canonical Ltd. This software is licensed under the |
915 | 4 | # GNU Affero General Public License version 3 (see the file LICENSE). | 4 | # GNU Affero General Public License version 3 (see the file LICENSE). |
916 | 5 | 5 | ||
917 | 6 | """top-tests.py - Report about slowest tests in the test suite. | 6 | """top-tests.py - Report about slowest tests in the test suite. |
918 | @@ -112,7 +112,7 @@ | |||
919 | 112 | raise ParseException('End of file before end of test run.') | 112 | raise ParseException('End of file before end of test run.') |
920 | 113 | 113 | ||
921 | 114 | def handleStartTestRunner(self, line, ignored): | 114 | def handleStartTestRunner(self, line, ignored): |
923 | 115 | """Switch the the layer state.""" | 115 | """Switch the layer state.""" |
924 | 116 | 116 | ||
925 | 117 | def handleLayerStart(self, line, match): | 117 | def handleLayerStart(self, line, match): |
926 | 118 | """Create a new stats container for the layer.""" | 118 | """Create a new stats container for the layer.""" |
Thank you. I think I am responsible for 40% of these mistakes.