Merge lp:~salgado/launchpad/python2.5-and-2.6 into lp:launchpad
- python2.5-and-2.6
- Merge into devel
Proposed by
Guilherme Salgado
Status: | Merged |
---|---|
Merged at revision: | not available |
Proposed branch: | lp:~salgado/launchpad/python2.5-and-2.6 |
Merge into: | lp:launchpad |
Diff against target: |
716 lines (+205/-77) 27 files modified
buildout-templates/_pythonpath.py.in (+6/-0) buildout-templates/bin/test.in (+14/-3) ez_setup.py (+11/-3) lib/canonical/buildd/tests/test_generate_translation_templates.py (+1/-1) lib/canonical/database/ftests/script_isolation.py (+8/-0) lib/canonical/launchpad/daemons/tachandler.py (+7/-1) lib/canonical/launchpad/doc/gpghandler.txt (+1/-1) lib/canonical/launchpad/doc/incomingmail.txt (+1/-1) lib/canonical/launchpad/testing/googletestservice.py (+1/-1) lib/canonical/launchpad/tests/test_helpers.py (+4/-2) lib/canonical/launchpad/utilities/gpghandler.py (+16/-2) lib/canonical/launchpad/validators/url.py (+7/-1) lib/canonical/lazr/doc/timeout.txt (+1/-1) lib/lp/bugs/tests/bugs-emailinterface.txt (+3/-5) lib/lp/codehosting/puller/tests/test_acceptance.py (+36/-1) lib/lp/poppy/daemon.py (+7/-0) lib/lp/services/mailman/doc/deactivate-lists.txt (+4/-2) lib/lp/soyuz/doc/buildd-dispatching.txt (+2/-2) lib/lp/soyuz/doc/buildd-slave.txt.disabled (+1/-1) lib/lp/soyuz/doc/manage-chroot.txt (+1/-1) lib/lp/translations/doc/poexport-language-pack.txt (+38/-29) lib/lp/translations/doc/poexport-request-productseries.txt (+5/-3) lib/lp/translations/doc/poexport-request.txt (+4/-2) lib/lp/translations/doc/potemplate.txt (+6/-3) lib/lp/translations/stories/importqueue/xx-translation-import-queue.txt (+7/-3) lib/lp/translations/utilities/doc/gettext_mo_exporter.txt (+7/-5) lib/lp/translations/utilities/doc/launchpad_write_tarfile.txt (+6/-3) |
To merge this branch: | bzr merge lp:~salgado/launchpad/python2.5-and-2.6 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Gary Poster (community) | Approve | ||
Review via email: mp+24121@code.launchpad.net |
Commit message
Description of the change
Make sure the test suite passes on both python2.5 and python2.6.
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 'buildout-templates/_pythonpath.py.in' | |||
2 | --- buildout-templates/_pythonpath.py.in 2010-04-20 19:10:35 +0000 | |||
3 | +++ buildout-templates/_pythonpath.py.in 2010-04-27 20:46:29 +0000 | |||
4 | @@ -12,7 +12,13 @@ | |||
5 | 12 | 12 | ||
6 | 13 | import os | 13 | import os |
7 | 14 | import sys | 14 | import sys |
8 | 15 | import warnings | ||
9 | 15 | 16 | ||
10 | 17 | # XXX: 2010-04-26, Salgado, bug=570246: Silence python2.6 deprecation | ||
11 | 18 | # warnings. | ||
12 | 19 | warnings.filterwarnings( | ||
13 | 20 | 'ignore', '.*(md5|sha|sets)', DeprecationWarning, | ||
14 | 21 | ) | ||
15 | 16 | 22 | ||
16 | 17 | site_dir = ${scripts:parts-directory|path-repr} | 23 | site_dir = ${scripts:parts-directory|path-repr} |
17 | 18 | 24 | ||
18 | 19 | 25 | ||
19 | === modified file 'buildout-templates/bin/test.in' | |||
20 | --- buildout-templates/bin/test.in 2010-04-20 19:10:35 +0000 | |||
21 | +++ buildout-templates/bin/test.in 2010-04-27 20:46:29 +0000 | |||
22 | @@ -98,7 +98,7 @@ | |||
23 | 98 | # need to be silenced should have an accompanied Bug reference. | 98 | # need to be silenced should have an accompanied Bug reference. |
24 | 99 | # | 99 | # |
25 | 100 | warnings.filterwarnings( | 100 | warnings.filterwarnings( |
27 | 101 | 'ignore', 'PyCrypto', RuntimeWarning, 'twisted[.]conch[.]ssh' | 101 | 'ignore', 'PyCrypto', RuntimeWarning, 'twisted[.]conch[.]ssh', |
28 | 102 | ) | 102 | ) |
29 | 103 | warnings.filterwarnings( | 103 | warnings.filterwarnings( |
30 | 104 | 'ignore', 'twisted.python.plugin', DeprecationWarning, | 104 | 'ignore', 'twisted.python.plugin', DeprecationWarning, |
31 | @@ -107,8 +107,19 @@ | |||
32 | 107 | 'ignore', 'zope.testing.doctest', DeprecationWarning, | 107 | 'ignore', 'zope.testing.doctest', DeprecationWarning, |
33 | 108 | ) | 108 | ) |
34 | 109 | warnings.filterwarnings( | 109 | warnings.filterwarnings( |
37 | 110 | 'ignore', 'bzrlib.*was deprecated', DeprecationWarning | 110 | 'ignore', 'bzrlib.*was deprecated', DeprecationWarning, |
38 | 111 | ) | 111 | ) |
39 | 112 | # XXX: 2010-04-26, Salgado, bug=570246: Silence python2.6 deprecation | ||
40 | 113 | # warnings. | ||
41 | 114 | # We cannot narrow this warnings filter to just twisted because | ||
42 | 115 | # warnings.warn_explicit() sees this import as coming from importfascist, not | ||
43 | 116 | # from twisted. It makes no sense to put module='importfascist' here though | ||
44 | 117 | # because /everything/ gets imported through it. So, sad as it is, until | ||
45 | 118 | # twisted doesn't produce warnings under Python 2.6, just ignore all these | ||
46 | 119 | # deprecations. | ||
47 | 120 | warnings.filterwarnings( | ||
48 | 121 | 'ignore', '.*(md5|sha|sets)', DeprecationWarning, | ||
49 | 122 | ) | ||
50 | 112 | # The next one is caused by a lamosity in python-openid. The following change | 123 | # The next one is caused by a lamosity in python-openid. The following change |
51 | 113 | # to openid/server/server.py would make the warning filter unnecessary: | 124 | # to openid/server/server.py would make the warning filter unnecessary: |
52 | 114 | # 978c974,974 | 125 | # 978c974,974 |
53 | 115 | 126 | ||
54 | === modified file 'ez_setup.py' | |||
55 | --- ez_setup.py 2009-05-31 22:17:45 +0000 | |||
56 | +++ ez_setup.py 2010-04-27 20:46:29 +0000 | |||
57 | @@ -3,7 +3,6 @@ | |||
58 | 3 | # NOTE TO LAUNCHPAD DEVELOPERS: This is a bootstrapping file from the | 3 | # NOTE TO LAUNCHPAD DEVELOPERS: This is a bootstrapping file from the |
59 | 4 | # setuptools project. It is imported by our setup.py. | 4 | # setuptools project. It is imported by our setup.py. |
60 | 5 | 5 | ||
61 | 6 | #!python | ||
62 | 7 | """Bootstrap setuptools installation | 6 | """Bootstrap setuptools installation |
63 | 8 | 7 | ||
64 | 9 | If you want to use setuptools in your package's setup.py, just include this | 8 | If you want to use setuptools in your package's setup.py, just include this |
65 | @@ -19,7 +18,7 @@ | |||
66 | 19 | This file can also be run as a script to install or upgrade setuptools. | 18 | This file can also be run as a script to install or upgrade setuptools. |
67 | 20 | """ | 19 | """ |
68 | 21 | import sys | 20 | import sys |
70 | 22 | DEFAULT_VERSION = "0.6c9" | 21 | DEFAULT_VERSION = "0.6c11" |
71 | 23 | DEFAULT_URL = "http://pypi.python.org/packages/%s/s/setuptools/" % sys.version[:3] | 22 | DEFAULT_URL = "http://pypi.python.org/packages/%s/s/setuptools/" % sys.version[:3] |
72 | 24 | 23 | ||
73 | 25 | md5_data = { | 24 | md5_data = { |
74 | @@ -33,6 +32,14 @@ | |||
75 | 33 | 'setuptools-0.6b4-py2.4.egg': '4cb2a185d228dacffb2d17f103b3b1c4', | 32 | 'setuptools-0.6b4-py2.4.egg': '4cb2a185d228dacffb2d17f103b3b1c4', |
76 | 34 | 'setuptools-0.6c1-py2.3.egg': 'b3f2b5539d65cb7f74ad79127f1a908c', | 33 | 'setuptools-0.6c1-py2.3.egg': 'b3f2b5539d65cb7f74ad79127f1a908c', |
77 | 35 | 'setuptools-0.6c1-py2.4.egg': 'b45adeda0667d2d2ffe14009364f2a4b', | 34 | 'setuptools-0.6c1-py2.4.egg': 'b45adeda0667d2d2ffe14009364f2a4b', |
78 | 35 | 'setuptools-0.6c10-py2.3.egg': 'ce1e2ab5d3a0256456d9fc13800a7090', | ||
79 | 36 | 'setuptools-0.6c10-py2.4.egg': '57d6d9d6e9b80772c59a53a8433a5dd4', | ||
80 | 37 | 'setuptools-0.6c10-py2.5.egg': 'de46ac8b1c97c895572e5e8596aeb8c7', | ||
81 | 38 | 'setuptools-0.6c10-py2.6.egg': '58ea40aef06da02ce641495523a0b7f5', | ||
82 | 39 | 'setuptools-0.6c11-py2.3.egg': '2baeac6e13d414a9d28e7ba5b5a596de', | ||
83 | 40 | 'setuptools-0.6c11-py2.4.egg': 'bd639f9b0eac4c42497034dec2ec0c2b', | ||
84 | 41 | 'setuptools-0.6c11-py2.5.egg': '64c94f3bf7a72a13ec83e0b24f2749b2', | ||
85 | 42 | 'setuptools-0.6c11-py2.6.egg': 'bfa92100bd772d5a213eedd356d64086', | ||
86 | 36 | 'setuptools-0.6c2-py2.3.egg': 'f0064bf6aa2b7d0f3ba0b43f20817c27', | 43 | 'setuptools-0.6c2-py2.3.egg': 'f0064bf6aa2b7d0f3ba0b43f20817c27', |
87 | 37 | 'setuptools-0.6c2-py2.4.egg': '616192eec35f47e8ea16cd6a122b7277', | 44 | 'setuptools-0.6c2-py2.4.egg': '616192eec35f47e8ea16cd6a122b7277', |
88 | 38 | 'setuptools-0.6c3-py2.3.egg': 'f181fa125dfe85a259c9cd6f1d7b78fa', | 45 | 'setuptools-0.6c3-py2.3.egg': 'f181fa125dfe85a259c9cd6f1d7b78fa', |
89 | @@ -97,7 +104,7 @@ | |||
90 | 97 | try: | 104 | try: |
91 | 98 | import pkg_resources | 105 | import pkg_resources |
92 | 99 | except ImportError: | 106 | except ImportError: |
94 | 100 | return do_download() | 107 | return do_download() |
95 | 101 | try: | 108 | try: |
96 | 102 | pkg_resources.require("setuptools>="+version); return | 109 | pkg_resources.require("setuptools>="+version); return |
97 | 103 | except pkg_resources.VersionConflict, e: | 110 | except pkg_resources.VersionConflict, e: |
98 | @@ -278,3 +285,4 @@ | |||
99 | 278 | 285 | ||
100 | 279 | 286 | ||
101 | 280 | 287 | ||
102 | 288 | |||
103 | 281 | 289 | ||
104 | === modified file 'lib/canonical/buildd/tests/test_generate_translation_templates.py' | |||
105 | --- lib/canonical/buildd/tests/test_generate_translation_templates.py 2010-03-18 13:27:47 +0000 | |||
106 | +++ lib/canonical/buildd/tests/test_generate_translation_templates.py 2010-04-27 20:46:29 +0000 | |||
107 | @@ -92,7 +92,7 @@ | |||
108 | 92 | os.path.dirname(__file__),'dummy_templates.tar.gz') | 92 | os.path.dirname(__file__),'dummy_templates.tar.gz') |
109 | 93 | tar = tarfile.open(dummy_tar, 'r|*') | 93 | tar = tarfile.open(dummy_tar, 'r|*') |
110 | 94 | tar.extractall(branchdir) | 94 | tar.extractall(branchdir) |
112 | 95 | potnames = [name for name in tar.getnames() if not name.endswith('/')] | 95 | potnames = [member.name for member in tar.getmembers() if not member.isdir()] |
113 | 96 | tar.close() | 96 | tar.close() |
114 | 97 | 97 | ||
115 | 98 | generator = GenerateTranslationTemplates( | 98 | generator = GenerateTranslationTemplates( |
116 | 99 | 99 | ||
117 | === modified file 'lib/canonical/database/ftests/script_isolation.py' | |||
118 | --- lib/canonical/database/ftests/script_isolation.py 2009-08-13 15:12:16 +0000 | |||
119 | +++ lib/canonical/database/ftests/script_isolation.py 2010-04-27 20:46:29 +0000 | |||
120 | @@ -8,6 +8,14 @@ | |||
121 | 8 | __metaclass__ = type | 8 | __metaclass__ = type |
122 | 9 | __all__ = [] | 9 | __all__ = [] |
123 | 10 | 10 | ||
124 | 11 | import warnings | ||
125 | 12 | |||
126 | 13 | # XXX: 2010-04-26, Salgado, bug=570246: Silence python2.6 deprecation | ||
127 | 14 | # warnings. | ||
128 | 15 | warnings.filterwarnings( | ||
129 | 16 | 'ignore', '.*(md5|sha|sets)', DeprecationWarning, | ||
130 | 17 | ) | ||
131 | 18 | |||
132 | 11 | from canonical.database.sqlbase import cursor, ISOLATION_LEVEL_SERIALIZABLE | 19 | from canonical.database.sqlbase import cursor, ISOLATION_LEVEL_SERIALIZABLE |
133 | 12 | from canonical.launchpad.scripts import execute_zcml_for_scripts | 20 | from canonical.launchpad.scripts import execute_zcml_for_scripts |
134 | 13 | from canonical.lp import initZopeless | 21 | from canonical.lp import initZopeless |
135 | 14 | 22 | ||
136 | === modified file 'lib/canonical/launchpad/daemons/tachandler.py' | |||
137 | --- lib/canonical/launchpad/daemons/tachandler.py 2010-04-05 09:22:54 +0000 | |||
138 | +++ lib/canonical/launchpad/daemons/tachandler.py 2010-04-27 20:46:29 +0000 | |||
139 | @@ -128,7 +128,13 @@ | |||
140 | 128 | remove_if_exists(self.logfile) | 128 | remove_if_exists(self.logfile) |
141 | 129 | 129 | ||
142 | 130 | self.setUpRoot() | 130 | self.setUpRoot() |
144 | 131 | args = [sys.executable, twistd_script, '-o', '-y', self.tacfile, | 131 | args = [sys.executable, |
145 | 132 | # XXX: 2010-04-26, Salgado, bug=570246: Deprecation warnings | ||
146 | 133 | # in Twisted are not our problem. They also aren't easy to | ||
147 | 134 | # suppress, and cause test failures due to spurious stderr | ||
148 | 135 | # output. Just shut the whole bloody mess up. | ||
149 | 136 | '-Wignore::DeprecationWarning', | ||
150 | 137 | twistd_script, '-o', '-y', self.tacfile, | ||
151 | 132 | '--pidfile', self.pidfile, '--logfile', self.logfile] | 138 | '--pidfile', self.pidfile, '--logfile', self.logfile] |
152 | 133 | if spew: | 139 | if spew: |
153 | 134 | args.append('--spew') | 140 | args.append('--spew') |
154 | 135 | 141 | ||
155 | === modified file 'lib/canonical/launchpad/doc/gpghandler.txt' | |||
156 | --- lib/canonical/launchpad/doc/gpghandler.txt 2010-04-20 21:20:43 +0000 | |||
157 | +++ lib/canonical/launchpad/doc/gpghandler.txt 2010-04-27 20:46:29 +0000 | |||
158 | @@ -332,7 +332,7 @@ | |||
159 | 332 | Traceback (most recent call last): | 332 | Traceback (most recent call last): |
160 | 333 | ... | 333 | ... |
161 | 334 | GPGUploadFailure: Could not reach keyserver at | 334 | GPGUploadFailure: Could not reach keyserver at |
163 | 335 | http://localhost:11371 (111, 'Connection refused') | 335 | http://localhost:11371...Connection refused... |
164 | 336 | 336 | ||
165 | 337 | 337 | ||
166 | 338 | == Fingerprint sanitizing == | 338 | == Fingerprint sanitizing == |
167 | 339 | 339 | ||
168 | === modified file 'lib/canonical/launchpad/doc/incomingmail.txt' | |||
169 | --- lib/canonical/launchpad/doc/incomingmail.txt 2010-03-02 14:37:56 +0000 | |||
170 | +++ lib/canonical/launchpad/doc/incomingmail.txt 2010-04-27 20:46:29 +0000 | |||
171 | @@ -360,7 +360,7 @@ | |||
172 | 360 | >>> handleMail(transaction) | 360 | >>> handleMail(transaction) |
173 | 361 | ERROR:...:Upload to Librarian failed... | 361 | ERROR:...:Upload to Librarian failed... |
174 | 362 | ... | 362 | ... |
176 | 363 | UploadFailed: [...]: (111, 'Connection refused') | 363 | UploadFailed: ...Connection refused... |
177 | 364 | 364 | ||
178 | 365 | >>> len(stub.test_emails) | 365 | >>> len(stub.test_emails) |
179 | 366 | 2 | 366 | 2 |
180 | 367 | 367 | ||
181 | === modified file 'lib/canonical/launchpad/testing/googletestservice.py' | |||
182 | --- lib/canonical/launchpad/testing/googletestservice.py 2009-10-17 14:06:03 +0000 | |||
183 | +++ lib/canonical/launchpad/testing/googletestservice.py 2010-04-27 20:46:29 +0000 | |||
184 | @@ -125,7 +125,7 @@ | |||
185 | 125 | try: | 125 | try: |
186 | 126 | sock.connect((host, port)) | 126 | sock.connect((host, port)) |
187 | 127 | except socket.error, err: | 127 | except socket.error, err: |
189 | 128 | if err.args[0] == errno.ECONNREFUSED: | 128 | if err.args[0] in [errno.ECONNREFUSED, errno.ECONNABORTED]: |
190 | 129 | elapsed = (time.time() - start) | 129 | elapsed = (time.time() - start) |
191 | 130 | if elapsed > timeout: | 130 | if elapsed > timeout: |
192 | 131 | raise RuntimeError("Socket poll time exceeded.") | 131 | raise RuntimeError("Socket poll time exceeded.") |
193 | 132 | 132 | ||
194 | === modified file 'lib/canonical/launchpad/tests/test_helpers.py' | |||
195 | --- lib/canonical/launchpad/tests/test_helpers.py 2009-07-17 00:26:05 +0000 | |||
196 | +++ lib/canonical/launchpad/tests/test_helpers.py 2010-04-27 20:46:29 +0000 | |||
197 | @@ -55,8 +55,10 @@ | |||
198 | 55 | 55 | ||
199 | 56 | Check the expected files are in the archive. | 56 | Check the expected files are in the archive. |
200 | 57 | 57 | ||
203 | 58 | >>> tarball.getnames() | 58 | # XXX: 2010-04-26, Salgado, bug=570244: This rstrip('/') is to make the |
204 | 59 | ['test/', 'test/cy.po', 'test/es.po', 'test/test.pot'] | 59 | # test pass on python2.5 and 2.6. |
205 | 60 | >>> [name.rstrip('/') for name in tarball.getnames()] | ||
206 | 61 | ['test', 'test/cy.po', 'test/es.po', 'test/test.pot'] | ||
207 | 60 | 62 | ||
208 | 61 | Check the contents. | 63 | Check the contents. |
209 | 62 | 64 | ||
210 | 63 | 65 | ||
211 | === modified file 'lib/canonical/launchpad/utilities/gpghandler.py' | |||
212 | --- lib/canonical/launchpad/utilities/gpghandler.py 2010-04-20 18:55:06 +0000 | |||
213 | +++ lib/canonical/launchpad/utilities/gpghandler.py 2010-04-27 20:46:29 +0000 | |||
214 | @@ -160,7 +160,14 @@ | |||
215 | 160 | try: | 160 | try: |
216 | 161 | signatures = ctx.verify(sig, plain, None) | 161 | signatures = ctx.verify(sig, plain, None) |
217 | 162 | except gpgme.GpgmeError, e: | 162 | except gpgme.GpgmeError, e: |
219 | 163 | raise GPGVerificationError(e.message) | 163 | # XXX: 2010-04-26, Salgado, bug=570244: This hack is needed |
220 | 164 | # for python2.5 compatibility. We should remove it when we no | ||
221 | 165 | # longer need to run on python2.5. | ||
222 | 166 | if hasattr(e, 'message'): | ||
223 | 167 | msg = e.message | ||
224 | 168 | else: | ||
225 | 169 | msg = e.strerror | ||
226 | 170 | raise GPGVerificationError(msg) | ||
227 | 164 | else: | 171 | else: |
228 | 165 | # store clearsigned signature | 172 | # store clearsigned signature |
229 | 166 | sig = StringIO(content) | 173 | sig = StringIO(content) |
230 | @@ -170,7 +177,14 @@ | |||
231 | 170 | try: | 177 | try: |
232 | 171 | signatures = ctx.verify(sig, None, plain) | 178 | signatures = ctx.verify(sig, None, plain) |
233 | 172 | except gpgme.GpgmeError, e: | 179 | except gpgme.GpgmeError, e: |
235 | 173 | raise GPGVerificationError(e.message) | 180 | # XXX: 2010-04-26, Salgado, bug=570244: This hack is needed |
236 | 181 | # for python2.5 compatibility. We should remove it when we no | ||
237 | 182 | # longer need to run on python2.5. | ||
238 | 183 | if hasattr(e, 'message'): | ||
239 | 184 | msg = e.message | ||
240 | 185 | else: | ||
241 | 186 | msg = e.strerror | ||
242 | 187 | raise GPGVerificationError(msg) | ||
243 | 174 | 188 | ||
244 | 175 | # XXX jamesh 2006-01-31: | 189 | # XXX jamesh 2006-01-31: |
245 | 176 | # We raise an exception if we don't get exactly one signature. | 190 | # We raise an exception if we don't get exactly one signature. |
246 | 177 | 191 | ||
247 | === modified file 'lib/canonical/launchpad/validators/url.py' | |||
248 | --- lib/canonical/launchpad/validators/url.py 2009-06-25 05:30:52 +0000 | |||
249 | +++ lib/canonical/launchpad/validators/url.py 2010-04-27 20:46:29 +0000 | |||
250 | @@ -21,8 +21,14 @@ | |||
251 | 21 | True | 21 | True |
252 | 22 | >>> valid_absolute_url('http://www.example.com') | 22 | >>> valid_absolute_url('http://www.example.com') |
253 | 23 | True | 23 | True |
255 | 24 | >>> valid_absolute_url('whatever://example.com/blah') | 24 | >>> valid_absolute_url('whatever:/uxample.com/blah') |
256 | 25 | False | 25 | False |
257 | 26 | |||
258 | 27 | # XXX: 2010-04-26, Salgado, bug=570244: This test only works against | ||
259 | 28 | # python2.6 but we still need to run on python2.5, so we should uncomment | ||
260 | 29 | # it only when we no longer need to run on 2.5. | ||
261 | 30 | >>> #valid_absolute_url('whatever://example.com/blah') | ||
262 | 31 | True | ||
263 | 26 | """ | 32 | """ |
264 | 27 | # Have to import urlparse locally since imports from helpers.py | 33 | # Have to import urlparse locally since imports from helpers.py |
265 | 28 | # causes this module to be imported, and we can't import stuff from | 34 | # causes this module to be imported, and we can't import stuff from |
266 | 29 | 35 | ||
267 | === modified file 'lib/canonical/lazr/doc/timeout.txt' | |||
268 | --- lib/canonical/lazr/doc/timeout.txt 2008-06-23 12:15:18 +0000 | |||
269 | +++ lib/canonical/lazr/doc/timeout.txt 2010-04-27 20:46:29 +0000 | |||
270 | @@ -173,7 +173,7 @@ | |||
271 | 173 | >>> urlfetch(http_server_url) | 173 | >>> urlfetch(http_server_url) |
272 | 174 | Traceback (most recent call last): | 174 | Traceback (most recent call last): |
273 | 175 | ... | 175 | ... |
275 | 176 | URLError: ...'Connection refused'... | 176 | URLError: ...Connection refused... |
276 | 177 | 177 | ||
277 | 178 | After the listen() is called, connections will hang until accept() is | 178 | After the listen() is called, connections will hang until accept() is |
278 | 179 | called, so a TimeoutError will be raised. | 179 | called, so a TimeoutError will be raised. |
279 | 180 | 180 | ||
280 | === modified file 'lib/lp/bugs/tests/bugs-emailinterface.txt' | |||
281 | --- lib/lp/bugs/tests/bugs-emailinterface.txt 2010-04-15 14:02:10 +0000 | |||
282 | +++ lib/lp/bugs/tests/bugs-emailinterface.txt 2010-04-27 20:46:29 +0000 | |||
283 | @@ -2776,10 +2776,8 @@ | |||
284 | 2776 | this is not a real JPG file | 2776 | this is not a real JPG file |
285 | 2777 | 2777 | ||
286 | 2778 | Some mail clients append a filename to the content type of attachments. | 2778 | Some mail clients append a filename to the content type of attachments. |
291 | 2779 | This does not affect the processing. Note though that the filename from | 2779 | The content type of the PGP signature is properly detected and thus no bug |
292 | 2780 | the content-type header is ignored, even if the content-disposition | 2780 | attachment is created. |
289 | 2781 | header does not provide a filename. The content type of the PGP signature | ||
290 | 2782 | is properly detected and thus no bug attchement created. | ||
293 | 2783 | 2781 | ||
294 | 2784 | >>> submit_mail = """From: Sample Person <test@canonical.com> | 2782 | >>> submit_mail = """From: Sample Person <test@canonical.com> |
295 | 2785 | ... To: new@bugs.canonical.com | 2783 | ... To: new@bugs.canonical.com |
296 | @@ -2824,7 +2822,7 @@ | |||
297 | 2824 | >>> | 2822 | >>> |
298 | 2825 | >>> process_email(submit_mail) | 2823 | >>> process_email(submit_mail) |
299 | 2826 | >>> print_attachments(get_latest_added_bug().attachments) | 2824 | >>> print_attachments(get_latest_added_bug().attachments) |
301 | 2827 | LibraryFileAlias unnamed image/jpeg; name="image.jpg" UNSPECIFIED | 2825 | LibraryFileAlias ... image/jpeg; name="image.jpg" UNSPECIFIED |
302 | 2828 | this is not a real JPG file | 2826 | this is not a real JPG file |
303 | 2829 | LibraryFileAlias sourcefile.diff text/x-diff; name="sourcefile1.diff" PATCH | 2827 | LibraryFileAlias sourcefile.diff text/x-diff; name="sourcefile1.diff" PATCH |
304 | 2830 | this should be diff output. | 2828 | this should be diff output. |
305 | 2831 | 2829 | ||
306 | === modified file 'lib/lp/codehosting/puller/tests/test_acceptance.py' | |||
307 | --- lib/lp/codehosting/puller/tests/test_acceptance.py 2010-04-15 01:30:39 +0000 | |||
308 | +++ lib/lp/codehosting/puller/tests/test_acceptance.py 2010-04-27 20:46:29 +0000 | |||
309 | @@ -8,6 +8,7 @@ | |||
310 | 8 | 8 | ||
311 | 9 | 9 | ||
312 | 10 | import os | 10 | import os |
313 | 11 | import socket | ||
314 | 11 | from subprocess import PIPE, Popen | 12 | from subprocess import PIPE, Popen |
315 | 12 | import unittest | 13 | import unittest |
316 | 13 | 14 | ||
317 | @@ -18,6 +19,8 @@ | |||
318 | 18 | from bzrlib.config import TransportConfig | 19 | from bzrlib.config import TransportConfig |
319 | 19 | from bzrlib import errors | 20 | from bzrlib import errors |
320 | 20 | from bzrlib.tests import HttpServer | 21 | from bzrlib.tests import HttpServer |
321 | 22 | from bzrlib.tests.http_server import ( | ||
322 | 23 | TestingHTTPServer, TestingThreadingHTTPServer) | ||
323 | 21 | from bzrlib.transport import get_transport | 24 | from bzrlib.transport import get_transport |
324 | 22 | from bzrlib.upgrade import upgrade | 25 | from bzrlib.upgrade import upgrade |
325 | 23 | from bzrlib.urlutils import join as urljoin, local_path_from_url | 26 | from bzrlib.urlutils import join as urljoin, local_path_from_url |
326 | @@ -33,6 +36,38 @@ | |||
327 | 33 | from canonical.testing import ZopelessAppServerLayer | 36 | from canonical.testing import ZopelessAppServerLayer |
328 | 34 | 37 | ||
329 | 35 | 38 | ||
330 | 39 | # XXX MichaelHudson, bug=564375: With changes to the SocketServer module in | ||
331 | 40 | # Python 2.6 the thread created in serveOverHTTP cannot be joined, because | ||
332 | 41 | # HttpServer.stop_server doesn't do enough to get the thread out of the select | ||
333 | 42 | # call in SocketServer.BaseServer.handle_request(). So what follows is | ||
334 | 43 | # slightly horrible code to use the version of handle_request from Python 2.5. | ||
335 | 44 | |||
336 | 45 | def fixed_handle_request(self): | ||
337 | 46 | """Handle one request, possibly blocking. """ | ||
338 | 47 | try: | ||
339 | 48 | request, client_address = self.get_request() | ||
340 | 49 | except socket.error: | ||
341 | 50 | return | ||
342 | 51 | if self.verify_request(request, client_address): | ||
343 | 52 | try: | ||
344 | 53 | self.process_request(request, client_address) | ||
345 | 54 | except: | ||
346 | 55 | self.handle_error(request, client_address) | ||
347 | 56 | self.close_request(request) | ||
348 | 57 | |||
349 | 58 | |||
350 | 59 | class FixedTHS(TestingHTTPServer): | ||
351 | 60 | handle_request = fixed_handle_request | ||
352 | 61 | |||
353 | 62 | |||
354 | 63 | class FixedTTHS(TestingThreadingHTTPServer): | ||
355 | 64 | handle_request = fixed_handle_request | ||
356 | 65 | |||
357 | 66 | |||
358 | 67 | class FixedHttpServer(HttpServer): | ||
359 | 68 | http_server_class = {'HTTP/1.0': FixedTHS, 'HTTP/1.1': FixedTTHS} | ||
360 | 69 | |||
361 | 70 | |||
362 | 36 | class TestBranchPuller(PullerBranchTestCase): | 71 | class TestBranchPuller(PullerBranchTestCase): |
363 | 37 | """Integration tests for the branch puller. | 72 | """Integration tests for the branch puller. |
364 | 38 | 73 | ||
365 | @@ -135,7 +170,7 @@ | |||
366 | 135 | 170 | ||
367 | 136 | def serveOverHTTP(self): | 171 | def serveOverHTTP(self): |
368 | 137 | """Serve the current directory over HTTP, returning the server URL.""" | 172 | """Serve the current directory over HTTP, returning the server URL.""" |
370 | 138 | http_server = HttpServer() | 173 | http_server = FixedHttpServer() |
371 | 139 | http_server.start_server() | 174 | http_server.start_server() |
372 | 140 | # Join cleanup added before the tearDown so the tearDown is executed | 175 | # Join cleanup added before the tearDown so the tearDown is executed |
373 | 141 | # first as this tells the thread to die. We then join explicitly as | 176 | # first as this tells the thread to die. We then join explicitly as |
374 | 142 | 177 | ||
375 | === modified file 'lib/lp/poppy/daemon.py' | |||
376 | --- lib/lp/poppy/daemon.py 2010-03-17 12:26:14 +0000 | |||
377 | +++ lib/lp/poppy/daemon.py 2010-04-27 20:46:29 +0000 | |||
378 | @@ -9,11 +9,18 @@ | |||
379 | 9 | ] | 9 | ] |
380 | 10 | 10 | ||
381 | 11 | import optparse | 11 | import optparse |
382 | 12 | import warnings | ||
383 | 12 | 13 | ||
384 | 13 | from canonical.launchpad.scripts import logger, logger_options | 14 | from canonical.launchpad.scripts import logger, logger_options |
385 | 14 | from lp.poppy.hooks import Hooks | 15 | from lp.poppy.hooks import Hooks |
386 | 15 | from lp.poppy.server import run_server | 16 | from lp.poppy.server import run_server |
387 | 16 | 17 | ||
388 | 18 | # XXX: 2010-04-26, Salgado, bug=570246: Silence python2.6 deprecation | ||
389 | 19 | # warnings. | ||
390 | 20 | warnings.filterwarnings( | ||
391 | 21 | 'ignore', '.*(md5|sha|sets)', DeprecationWarning, | ||
392 | 22 | ) | ||
393 | 23 | |||
394 | 17 | 24 | ||
395 | 18 | def main(): | 25 | def main(): |
396 | 19 | parser = optparse.OptionParser() | 26 | parser = optparse.OptionParser() |
397 | 20 | 27 | ||
398 | === modified file 'lib/lp/services/mailman/doc/deactivate-lists.txt' | |||
399 | --- lib/lp/services/mailman/doc/deactivate-lists.txt 2009-06-23 19:33:57 +0000 | |||
400 | +++ lib/lp/services/mailman/doc/deactivate-lists.txt 2010-04-27 20:46:29 +0000 | |||
401 | @@ -42,7 +42,9 @@ | |||
402 | 42 | >>> import tarfile | 42 | >>> import tarfile |
403 | 43 | >>> tarball = tarfile.open(backup_file, 'r:gz') | 43 | >>> tarball = tarfile.open(backup_file, 'r:gz') |
404 | 44 | >>> for name in sorted(tarball.getnames()): | 44 | >>> for name in sorted(tarball.getnames()): |
407 | 45 | ... print name | 45 | ... # XXX: 2010-04-26, Salgado, bug=570244: The .rstrip('/') is to |
408 | 46 | itest-one/ | 46 | ... # make this pass on python2.5 and 2.6. |
409 | 47 | ... print name.rstrip('/') | ||
410 | 48 | itest-one | ||
411 | 47 | itest-one/config.pck | 49 | itest-one/config.pck |
412 | 48 | itest-one/config.pck.last | 50 | itest-one/config.pck.last |
413 | 49 | 51 | ||
414 | === modified file 'lib/lp/soyuz/doc/buildd-dispatching.txt' | |||
415 | --- lib/lp/soyuz/doc/buildd-dispatching.txt 2010-04-09 15:46:09 +0000 | |||
416 | +++ lib/lp/soyuz/doc/buildd-dispatching.txt 2010-04-27 20:46:29 +0000 | |||
417 | @@ -67,10 +67,10 @@ | |||
418 | 67 | builder and was reset due to a communication time-out. | 67 | builder and was reset due to a communication time-out. |
419 | 68 | 68 | ||
420 | 69 | >>> builder_set.checkBuilders(logger, transaction) | 69 | >>> builder_set.checkBuilders(logger, transaction) |
422 | 70 | WARNING:root:Resetting builder: http://localhost:9221/ -- (111, 'Connection refused') | 70 | WARNING:root:Resetting builder: http://localhost:9221/...Connection refused... |
423 | 71 | Traceback (most recent call last): | 71 | Traceback (most recent call last): |
424 | 72 | ... | 72 | ... |
426 | 73 | error: (111, 'Connection refused') | 73 | error: ...Connection refused... |
427 | 74 | 74 | ||
428 | 75 | The 'frog' builder was not marked as failed. | 75 | The 'frog' builder was not marked as failed. |
429 | 76 | 76 | ||
430 | 77 | 77 | ||
431 | === modified file 'lib/lp/soyuz/doc/buildd-slave.txt.disabled' | |||
432 | --- lib/lp/soyuz/doc/buildd-slave.txt.disabled 2010-04-03 03:38:55 +0000 | |||
433 | +++ lib/lp/soyuz/doc/buildd-slave.txt.disabled 2010-04-27 20:46:29 +0000 | |||
434 | @@ -94,4 +94,4 @@ | |||
435 | 94 | >>> s.info() | 94 | >>> s.info() |
436 | 95 | Traceback (most recent call last): | 95 | Traceback (most recent call last): |
437 | 96 | ... | 96 | ... |
439 | 97 | error: (111, 'Connection refused') | 97 | error: ...Connection refused... |
440 | 98 | 98 | ||
441 | === modified file 'lib/lp/soyuz/doc/manage-chroot.txt' | |||
442 | --- lib/lp/soyuz/doc/manage-chroot.txt 2009-04-28 12:59:43 +0000 | |||
443 | +++ lib/lp/soyuz/doc/manage-chroot.txt 2010-04-27 20:46:29 +0000 | |||
444 | @@ -193,6 +193,6 @@ | |||
445 | 193 | ... else: | 193 | ... else: |
446 | 194 | ... print "Did not get expected exception" | 194 | ... print "Did not get expected exception" |
447 | 195 | DEBUG Initialising ChrootManager for 'The Hoary Hedgehog Release for i386 (x86)' | 195 | DEBUG Initialising ChrootManager for 'The Hoary Hedgehog Release for i386 (x86)' |
449 | 196 | Librarian upload failed: [...]: (111, 'Connection refused') | 196 | Librarian upload failed: ...Connection refused... |
450 | 197 | 197 | ||
451 | 198 | >>> LibrarianLayer.reveal() | 198 | >>> LibrarianLayer.reveal() |
452 | 199 | 199 | ||
453 | === modified file 'lib/lp/translations/doc/poexport-language-pack.txt' | |||
454 | --- lib/lp/translations/doc/poexport-language-pack.txt 2009-11-17 09:50:33 +0000 | |||
455 | +++ lib/lp/translations/doc/poexport-language-pack.txt 2010-04-27 20:46:29 +0000 | |||
456 | @@ -55,7 +55,9 @@ | |||
457 | 55 | ... size = 'bin' | 55 | ... size = 'bin' |
458 | 56 | ... else: | 56 | ... else: |
459 | 57 | ... size = len(tarfile.extractfile(member).readlines()) | 57 | ... size = len(tarfile.extractfile(member).readlines()) |
461 | 58 | ... print "| %5s | %s" % (size, member.name) | 58 | ... # XXX: 2010-04-26, Salgado, bug=570244: The .rstrip('/') is to |
462 | 59 | ... # make this pass on python2.5 and 2.6. | ||
463 | 60 | ... print "| %5s | %s" % (size, member.name.rstrip('/')) | ||
464 | 59 | 61 | ||
465 | 60 | 62 | ||
466 | 61 | == Base language pack export using Librarian == | 63 | == Base language pack export using Librarian == |
467 | @@ -92,12 +94,14 @@ | |||
468 | 92 | 94 | ||
469 | 93 | The tarball has the right members. | 95 | The tarball has the right members. |
470 | 94 | 96 | ||
474 | 95 | >>> for name in tarfile.getnames(): | 97 | >>> for member in tarfile.getmembers(): |
475 | 96 | ... print name | 98 | ... # XXX: 2010-04-26, Salgado, bug=570244: The .rstrip('/') is to |
476 | 97 | rosetta-hoary/ | 99 | ... # make this pass on python2.5 and 2.6. |
477 | 100 | ... print member.name.rstrip('/') | ||
478 | 101 | rosetta-hoary | ||
479 | 98 | ... | 102 | ... |
482 | 99 | rosetta-hoary/es/ | 103 | rosetta-hoary/es |
483 | 100 | rosetta-hoary/es/LC_MESSAGES/ | 104 | rosetta-hoary/es/LC_MESSAGES |
484 | 101 | rosetta-hoary/es/LC_MESSAGES/pmount.po | 105 | rosetta-hoary/es/LC_MESSAGES/pmount.po |
485 | 102 | ... | 106 | ... |
486 | 103 | rosetta-hoary/timestamp.txt | 107 | rosetta-hoary/timestamp.txt |
487 | @@ -105,7 +109,12 @@ | |||
488 | 105 | 109 | ||
489 | 106 | Directory permissions allow correct use of those directories: | 110 | Directory permissions allow correct use of those directories: |
490 | 107 | 111 | ||
492 | 108 | >>> directory = tarfile.getmember('rosetta-hoary/') | 112 | # XXX: 2010-04-26, Salgado, bug=570244: This try/except is needed to make |
493 | 113 | # the test pass on python2.5 and 2.6. | ||
494 | 114 | >>> try: | ||
495 | 115 | ... directory = tarfile.getmember('rosetta-hoary/') | ||
496 | 116 | ... except KeyError: | ||
497 | 117 | ... directory = tarfile.getmember('rosetta-hoary') | ||
498 | 109 | >>> oct(directory.mode) | 118 | >>> oct(directory.mode) |
499 | 110 | '0755' | 119 | '0755' |
500 | 111 | 120 | ||
501 | @@ -223,11 +232,11 @@ | |||
502 | 223 | 232 | ||
503 | 224 | >>> tarfile = string_to_tarfile(language_pack.file.read()) | 233 | >>> tarfile = string_to_tarfile(language_pack.file.read()) |
504 | 225 | >>> examine_tarfile(tarfile) | 234 | >>> examine_tarfile(tarfile) |
506 | 226 | | - | rosetta-grumpy/ | 235 | | - | rosetta-grumpy |
507 | 227 | | 1 | rosetta-grumpy/mapping.txt | 236 | | 1 | rosetta-grumpy/mapping.txt |
508 | 228 | | 1 | rosetta-grumpy/timestamp.txt | 237 | | 1 | rosetta-grumpy/timestamp.txt |
511 | 229 | | - | rosetta-grumpy/xpi/ | 238 | | - | rosetta-grumpy/xpi |
512 | 230 | | - | rosetta-grumpy/xpi/firefox/ | 239 | | - | rosetta-grumpy/xpi/firefox |
513 | 231 | | bin | rosetta-grumpy/xpi/firefox/en-US.xpi | 240 | | bin | rosetta-grumpy/xpi/firefox/en-US.xpi |
514 | 232 | | 94 | rosetta-grumpy/xpi/firefox/en.po | 241 | | 94 | rosetta-grumpy/xpi/firefox/en.po |
515 | 233 | | 102 | rosetta-grumpy/xpi/firefox/es.po | 242 | | 102 | rosetta-grumpy/xpi/firefox/es.po |
516 | @@ -345,17 +354,17 @@ | |||
517 | 345 | # Get the generated tarball. | 354 | # Get the generated tarball. |
518 | 346 | >>> tarfile = string_to_tarfile(language_pack.file.read()) | 355 | >>> tarfile = string_to_tarfile(language_pack.file.read()) |
519 | 347 | >>> examine_tarfile(tarfile) | 356 | >>> examine_tarfile(tarfile) |
523 | 348 | | - | rosetta-grumpy/ | 357 | | - | rosetta-grumpy |
524 | 349 | | - | rosetta-grumpy/cy/ | 358 | | - | rosetta-grumpy/cy |
525 | 350 | | - | rosetta-grumpy/cy/LC_MESSAGES/ | 359 | | - | rosetta-grumpy/cy/LC_MESSAGES |
526 | 351 | | 21 | rosetta-grumpy/cy/LC_MESSAGES/test.po | 360 | | 21 | rosetta-grumpy/cy/LC_MESSAGES/test.po |
529 | 352 | | - | rosetta-grumpy/es/ | 361 | | - | rosetta-grumpy/es |
530 | 353 | | - | rosetta-grumpy/es/LC_MESSAGES/ | 362 | | - | rosetta-grumpy/es/LC_MESSAGES |
531 | 354 | | 21 | rosetta-grumpy/es/LC_MESSAGES/test.po | 363 | | 21 | rosetta-grumpy/es/LC_MESSAGES/test.po |
532 | 355 | | 2 | rosetta-grumpy/mapping.txt | 364 | | 2 | rosetta-grumpy/mapping.txt |
533 | 356 | | 1 | rosetta-grumpy/timestamp.txt | 365 | | 1 | rosetta-grumpy/timestamp.txt |
536 | 357 | | - | rosetta-grumpy/xpi/ | 366 | | - | rosetta-grumpy/xpi |
537 | 358 | | - | rosetta-grumpy/xpi/firefox/ | 367 | | - | rosetta-grumpy/xpi/firefox |
538 | 359 | | bin | rosetta-grumpy/xpi/firefox/en-US.xpi | 368 | | bin | rosetta-grumpy/xpi/firefox/en-US.xpi |
539 | 360 | | 94 | rosetta-grumpy/xpi/firefox/en.po | 369 | | 94 | rosetta-grumpy/xpi/firefox/en.po |
540 | 361 | | 102 | rosetta-grumpy/xpi/firefox/es.po | 370 | | 102 | rosetta-grumpy/xpi/firefox/es.po |
541 | @@ -444,14 +453,14 @@ | |||
542 | 444 | xpi entries because those are outside the scope of this test. | 453 | xpi entries because those are outside the scope of this test. |
543 | 445 | 454 | ||
544 | 446 | >>> examine_tarfile(tarfile) | 455 | >>> examine_tarfile(tarfile) |
548 | 447 | | - | rosetta-grumpy/ | 456 | | - | rosetta-grumpy |
549 | 448 | | - | rosetta-grumpy/cy/ | 457 | | - | rosetta-grumpy/cy |
550 | 449 | | - | rosetta-grumpy/cy/LC_MESSAGES/ | 458 | | - | rosetta-grumpy/cy/LC_MESSAGES |
551 | 450 | | 21 | rosetta-grumpy/cy/LC_MESSAGES/test.po | 459 | | 21 | rosetta-grumpy/cy/LC_MESSAGES/test.po |
552 | 451 | | 2 | rosetta-grumpy/mapping.txt | 460 | | 2 | rosetta-grumpy/mapping.txt |
553 | 452 | | 1 | rosetta-grumpy/timestamp.txt | 461 | | 1 | rosetta-grumpy/timestamp.txt |
556 | 453 | | - | rosetta-grumpy/xpi/ | 462 | | - | rosetta-grumpy/xpi |
557 | 454 | | - | rosetta-grumpy/xpi/firefox/ | 463 | | - | rosetta-grumpy/xpi/firefox |
558 | 455 | | bin | rosetta-grumpy/xpi/firefox/en-US.xpi | 464 | | bin | rosetta-grumpy/xpi/firefox/en-US.xpi |
559 | 456 | | 94 | rosetta-grumpy/xpi/firefox/en.po | 465 | | 94 | rosetta-grumpy/xpi/firefox/en.po |
560 | 457 | | 102 | rosetta-grumpy/xpi/firefox/es.po | 466 | | 102 | rosetta-grumpy/xpi/firefox/es.po |
561 | @@ -489,17 +498,17 @@ | |||
562 | 489 | 498 | ||
563 | 490 | >>> tarfile = string_to_tarfile(language_pack.file.read()) | 499 | >>> tarfile = string_to_tarfile(language_pack.file.read()) |
564 | 491 | >>> examine_tarfile(tarfile) | 500 | >>> examine_tarfile(tarfile) |
568 | 492 | | - | rosetta-grumpy/ | 501 | | - | rosetta-grumpy |
569 | 493 | | - | rosetta-grumpy/cy/ | 502 | | - | rosetta-grumpy/cy |
570 | 494 | | - | rosetta-grumpy/cy/LC_MESSAGES/ | 503 | | - | rosetta-grumpy/cy/LC_MESSAGES |
571 | 495 | | 21 | rosetta-grumpy/cy/LC_MESSAGES/test.po | 504 | | 21 | rosetta-grumpy/cy/LC_MESSAGES/test.po |
574 | 496 | | - | rosetta-grumpy/es/ | 505 | | - | rosetta-grumpy/es |
575 | 497 | | - | rosetta-grumpy/es/LC_MESSAGES/ | 506 | | - | rosetta-grumpy/es/LC_MESSAGES |
576 | 498 | | 21 | rosetta-grumpy/es/LC_MESSAGES/test.po | 507 | | 21 | rosetta-grumpy/es/LC_MESSAGES/test.po |
577 | 499 | | 2 | rosetta-grumpy/mapping.txt | 508 | | 2 | rosetta-grumpy/mapping.txt |
578 | 500 | | 1 | rosetta-grumpy/timestamp.txt | 509 | | 1 | rosetta-grumpy/timestamp.txt |
581 | 501 | | - | rosetta-grumpy/xpi/ | 510 | | - | rosetta-grumpy/xpi |
582 | 502 | | - | rosetta-grumpy/xpi/firefox/ | 511 | | - | rosetta-grumpy/xpi/firefox |
583 | 503 | | bin | rosetta-grumpy/xpi/firefox/en-US.xpi | 512 | | bin | rosetta-grumpy/xpi/firefox/en-US.xpi |
584 | 504 | | 94 | rosetta-grumpy/xpi/firefox/en.po | 513 | | 94 | rosetta-grumpy/xpi/firefox/en.po |
585 | 505 | | 102 | rosetta-grumpy/xpi/firefox/es.po | 514 | | 102 | rosetta-grumpy/xpi/firefox/es.po |
586 | 506 | 515 | ||
587 | === modified file 'lib/lp/translations/doc/poexport-request-productseries.txt' | |||
588 | --- lib/lp/translations/doc/poexport-request-productseries.txt 2010-03-05 15:31:22 +0000 | |||
589 | +++ lib/lp/translations/doc/poexport-request-productseries.txt 2010-04-27 20:46:29 +0000 | |||
590 | @@ -90,10 +90,12 @@ | |||
591 | 90 | >>> from canonical.launchpad.helpers import string_to_tarfile | 90 | >>> from canonical.launchpad.helpers import string_to_tarfile |
592 | 91 | >>> tarball = string_to_tarfile(urllib2.urlopen(url).read()) | 91 | >>> tarball = string_to_tarfile(urllib2.urlopen(url).read()) |
593 | 92 | >>> for name in sorted(tarball.getnames()): | 92 | >>> for name in sorted(tarball.getnames()): |
596 | 93 | ... print name | 93 | ... # XXX: 2010-04-26, Salgado, bug=570244: The .rstrip('/') is to |
597 | 94 | evolution-2.2/ | 94 | ... # make this pass on python2.5 and 2.6. |
598 | 95 | ... print name.rstrip('/') | ||
599 | 96 | evolution-2.2 | ||
600 | 95 | evolution-2.2/evolution-2.2-es.po | 97 | evolution-2.2/evolution-2.2-es.po |
602 | 96 | po/ | 98 | po |
603 | 97 | po/evolution-2.2-test-pt_BR.po | 99 | po/evolution-2.2-test-pt_BR.po |
604 | 98 | po/evolution-2.2-test.pot | 100 | po/evolution-2.2-test.pot |
605 | 99 | po/evolution-2.2.pot | 101 | po/evolution-2.2.pot |
606 | 100 | 102 | ||
607 | === modified file 'lib/lp/translations/doc/poexport-request.txt' | |||
608 | --- lib/lp/translations/doc/poexport-request.txt 2010-03-05 20:40:40 +0000 | |||
609 | +++ lib/lp/translations/doc/poexport-request.txt 2010-04-27 20:46:29 +0000 | |||
610 | @@ -108,8 +108,10 @@ | |||
611 | 108 | >>> from canonical.launchpad.helpers import string_to_tarfile | 108 | >>> from canonical.launchpad.helpers import string_to_tarfile |
612 | 109 | >>> tarball = string_to_tarfile(urllib2.urlopen(url).read()) | 109 | >>> tarball = string_to_tarfile(urllib2.urlopen(url).read()) |
613 | 110 | >>> for name in sorted(tarball.getnames()): | 110 | >>> for name in sorted(tarball.getnames()): |
616 | 111 | ... print name | 111 | ... # XXX: 2010-04-26, Salgado, bug=570244: The .rstrip('/') is to |
617 | 112 | pmount/ | 112 | ... # make this pass on python2.5 and 2.6. |
618 | 113 | ... print name.rstrip('/') | ||
619 | 114 | pmount | ||
620 | 113 | pmount/pmount-ca.po | 115 | pmount/pmount-ca.po |
621 | 114 | pmount/pmount-cs.po | 116 | pmount/pmount-cs.po |
622 | 115 | 117 | ||
623 | 116 | 118 | ||
624 | === modified file 'lib/lp/translations/doc/potemplate.txt' | |||
625 | --- lib/lp/translations/doc/potemplate.txt 2009-11-01 22:50:17 +0000 | |||
626 | +++ lib/lp/translations/doc/potemplate.txt 2010-04-27 20:46:29 +0000 | |||
627 | @@ -619,10 +619,13 @@ | |||
628 | 619 | >>> from canonical.launchpad.helpers import string_to_tarfile | 619 | >>> from canonical.launchpad.helpers import string_to_tarfile |
629 | 620 | >>> tarfile_string = exported_translation_file.read() | 620 | >>> tarfile_string = exported_translation_file.read() |
630 | 621 | >>> tarfile = string_to_tarfile(tarfile_string) | 621 | >>> tarfile = string_to_tarfile(tarfile_string) |
633 | 622 | >>> sorted(tarfile.getnames()) | 622 | |
634 | 623 | ['evolution-2.2/', 'evolution-2.2/evolution-2.2-es.po', | 623 | # XXX: 2010-04-26, Salgado, bug=570244: The .rstrip('/') is to make this |
635 | 624 | # pass on python2.5 and 2.6. | ||
636 | 625 | >>> sorted(name.rstrip('/') for name in tarfile.getnames()) | ||
637 | 626 | ['evolution-2.2', 'evolution-2.2/evolution-2.2-es.po', | ||
638 | 624 | 'evolution-2.2/evolution-2.2-ja.po', 'evolution-2.2/evolution-2.2-xh.po', | 627 | 'evolution-2.2/evolution-2.2-ja.po', 'evolution-2.2/evolution-2.2-xh.po', |
640 | 625 | 'po/', 'po/evolution-2.2.pot'] | 628 | 'po', 'po/evolution-2.2.pot'] |
641 | 626 | 629 | ||
642 | 627 | The *-es.po file is indeed the Spanish translation... | 630 | The *-es.po file is indeed the Spanish translation... |
643 | 628 | 631 | ||
644 | 629 | 632 | ||
645 | === modified file 'lib/lp/translations/stories/importqueue/xx-translation-import-queue.txt' | |||
646 | --- lib/lp/translations/stories/importqueue/xx-translation-import-queue.txt 2010-01-19 12:35:33 +0000 | |||
647 | +++ lib/lp/translations/stories/importqueue/xx-translation-import-queue.txt 2010-04-27 20:46:29 +0000 | |||
648 | @@ -79,10 +79,14 @@ | |||
649 | 79 | True | 79 | True |
650 | 80 | >>> 'empty.po' in anon_browser.contents | 80 | >>> 'empty.po' in anon_browser.contents |
651 | 81 | False | 81 | False |
653 | 82 | >>> 'directory.po/' in tarball.getnames() | 82 | |
654 | 83 | # XXX: 2010-04-26, Salgado, bug=570244: Need this hack to make it pass on | ||
655 | 84 | # python2.5 (where tarball.getnames() include a trailing slash on | ||
656 | 85 | # directory names) and python2.6 (where directory names don't get a | ||
657 | 86 | # trailing slash). | ||
658 | 87 | >>> ('directory.po' in tarball.getnames() | ||
659 | 88 | ... or 'directory.po/' in tarball.getnames()) | ||
660 | 83 | True | 89 | True |
661 | 84 | >>> 'directory.po/' in anon_browser.contents | ||
662 | 85 | False | ||
663 | 86 | >>> 'directory.po' in anon_browser.contents | 90 | >>> 'directory.po' in anon_browser.contents |
664 | 87 | False | 91 | False |
665 | 88 | >>> 'directory.po/.another-dotfile.po' in tarball.getnames() | 92 | >>> 'directory.po/.another-dotfile.po' in tarball.getnames() |
666 | 89 | 93 | ||
667 | === modified file 'lib/lp/translations/utilities/doc/gettext_mo_exporter.txt' | |||
668 | --- lib/lp/translations/utilities/doc/gettext_mo_exporter.txt 2009-07-02 17:16:50 +0000 | |||
669 | +++ lib/lp/translations/utilities/doc/gettext_mo_exporter.txt 2010-04-27 20:46:29 +0000 | |||
670 | @@ -79,12 +79,14 @@ | |||
671 | 79 | ... lines = len(tarfile.extractfile(member).readlines()) | 79 | ... lines = len(tarfile.extractfile(member).readlines()) |
672 | 80 | ... else: | 80 | ... else: |
673 | 81 | ... lines = 0 | 81 | ... lines = 0 |
677 | 82 | ... print "| %5d | %s" % (lines, member.name) | 82 | ... # XXX: 2010-04-26, Salgado, bug=570244: The .rstrip('/') is to |
678 | 83 | | 0 | es/ | 83 | ... # make this pass on python2.5 and 2.6. |
679 | 84 | | 0 | es/LC_MESSAGES/ | 84 | ... print "| %5d | %s" % (lines, member.name.rstrip('/')) |
680 | 85 | | 0 | es | ||
681 | 86 | | 0 | es/LC_MESSAGES | ||
682 | 85 | | 12 | es/LC_MESSAGES/foo.mo | 87 | | 12 | es/LC_MESSAGES/foo.mo |
685 | 86 | | 0 | sr/ | 88 | | 0 | sr |
686 | 87 | | 0 | sr/LC_MESSAGES/ | 89 | | 0 | sr/LC_MESSAGES |
687 | 88 | | 12 | sr/LC_MESSAGES/foo.mo | 90 | | 12 | sr/LC_MESSAGES/foo.mo |
688 | 89 | 91 | ||
689 | 90 | 92 | ||
690 | 91 | 93 | ||
691 | === modified file 'lib/lp/translations/utilities/doc/launchpad_write_tarfile.txt' | |||
692 | --- lib/lp/translations/utilities/doc/launchpad_write_tarfile.txt 2009-07-01 20:45:39 +0000 | |||
693 | +++ lib/lp/translations/utilities/doc/launchpad_write_tarfile.txt 2010-04-27 20:46:29 +0000 | |||
694 | @@ -20,6 +20,9 @@ | |||
695 | 20 | ... for name in names: | 20 | ... for name in names: |
696 | 21 | ... file = tarfile.extractfile(name) | 21 | ... file = tarfile.extractfile(name) |
697 | 22 | ... | 22 | ... |
698 | 23 | ... # XXX: 2010-04-26, Salgado, bug=570244: This is to make the | ||
699 | 24 | ... # test pass on python2.5 and 2.6. | ||
700 | 25 | ... name = name.rstrip('/') | ||
701 | 23 | ... if file is not None: | 26 | ... if file is not None: |
702 | 24 | ... print format % (name, file.read()) | 27 | ... print format % (name, file.read()) |
703 | 25 | ... else: | 28 | ... else: |
704 | @@ -96,9 +99,9 @@ | |||
705 | 96 | ... 'uno/dos/tres/cuatro': 'blah' | 99 | ... 'uno/dos/tres/cuatro': 'blah' |
706 | 97 | ... }) | 100 | ... }) |
707 | 98 | >>> examine_tarfile(archive) | 101 | >>> examine_tarfile(archive) |
711 | 99 | uno/ | | 102 | uno | |
712 | 100 | uno/dos/ | | 103 | uno/dos | |
713 | 101 | uno/dos/tres/ | | 104 | uno/dos/tres | |
714 | 102 | uno/dos/tres/cuatro | blah | 105 | uno/dos/tres/cuatro | blah |
715 | 103 | 106 | ||
716 | 104 | Also, if there is a duplicated file, last one is the one that remains there. | 107 | Also, if there is a duplicated file, last one is the one that remains there. |
merge-conditional
Woohoo!
Edited IRC transcript.
[09:47am] maxb: salgado: Perhaps the DeprecationWarning suppressions that are stopgap measures should all be XXXed before being allowed into trunk? bugs/tests/ bugs-emailinter face.txt you deleted the following: services/ mailman/ doc/deactivate- lists.txt) but not on line 196 (in lib/canonical/ launchpad/ tests/test_ helpers. py). I don't have a strong feeling abot whether it is necessary, but we ought to be consistent. My inclination is to have it be another Python 2.5 XXX. /bugs.edge. launchpad. net/launchpad- code/+bug/ 564375). The thing I don't see is the proper fix. Is the proper fix in Python's HttpServer? If so, have we made a bug in the Python bug tracker? If not...what do we need to change in the future? If you are not sure, I won't let this keep you from landing, but I would like you and/or mwhudson to follow up in that regard.
[09:59am] salgado: maxb, yeah, definitely. I'll do that
[10:02am] gary_poster: maxb, salgado +1. I also wondered if importfascist (or landscape's reimplementation) could somehow not have the behavior you described, but my only interest right now is maybe mentioning this in a bug report as a way to better focus the deprecation warnings again. I don't want to spend time right now thinking about whether that's even possible. Of course, if you know already that it is not possible, nm
[10:06am] gary_poster: salgado, generally would like to see bugs for all of the new XXXs (the py 2.5 hacks in particular--I suggest that they could all be grouped together)
[10:11am] gary_poster: salgado: looking at lines 276-281 of the diff. In lib/lp/
[10:11am] gary_poster: -This does not affect the processing. Note though that the filename from
[10:11am] gary_poster: -the content-type header is ignored, even if the content-disposition
[10:11am] gary_poster: -header does not provide a filename.
[10:11am] gary_poster: Is that because in Python 2.6 we now honor the content-type filename?
[10:12am] salgado: gary_poster, yes, and since that doesn't seem to be important to us I've changed the test to not mention it and elide the thing
[10:12am] gary_poster: cool
[10:13am] salgado: gary_poster, I was thinking of having just one bug for the python2.5 hacks left behind
[10:14am] gary_poster: good, yes
[10:15am] gary_poster: salgado: you have this XXX on line 394 of the diff (in lib/lp/
[10:15am] gary_poster: # XXX: The .rstrip('/') is to make this pass on python2.5 and 2.6.
[10:16am] gary_poster: Actually you are consistent in other places, so it just looks like an oversight that the one in test_helpers.py doesn't have an XXX
[10:16am] salgado: yeah, I missed that
[10:22am] gary_poster: salgado: last topic is that I was looking at mwhudson's bug/hack (https:/
[10:25am] salgado: I'm not sure, but I'll comment on the bug asking what the proper fix would be, if that's ok with you
[10:27am] maxb: The proper fix would be for SocketServer to provide a documented way of breaking it out of its select loop
[10:28am] gary_poster: that makes sense, maxb--which would be a Python bug. thanks salgado, yes.