20355
Comment:
|
13856
Remove more fixed tests. I hate python-tdb.
|
Deletions are marked like this. | Additions are marked like this. |
Line 222: | Line 222: |
* valid_absolute_url (canonical.launchpad.validators.url) -- Python 2.6's urlparse disregards the uses_netloc list when parsing urls and treats anything beginning with // as netloc based. This makes maxb and wgrant say WTF!?! | * valid_absolute_url (canonical.launchpad.validators.url) -- Python 2.6's urlparse disregards the uses_netloc list when parsing urls and treats anything beginning with // as netloc based. This makes maxb and wgrant say WTF!?! The untested valid_absolute_url DB constraint is also affected! |
Line 235: | Line 235: |
There seems to be intermittent behaviour here - sometimes the hg variants of these tests fail, sometimes the git ones, sometimes both. * test_import_hg (lp.codehosting.codeimport.tests.test_workermonitor.TestWorkerMonitorIntegration) {{{ Failure in test test_import_hg (lp.codehosting.codeimport.tests.test_workermonitor.TestWorkerMonitorIntegration) Traceback (most recent call last): File "/home/maxb/launchpad/lp-sourcedeps/eggs/Twisted-10.0.0-py2.6-linux-x86_64.egg/twisted/internet/defer.py", line 371, in _runCallbacks self.result = callback(self.result, *args, **kw) File "/home/maxb/launchpad/lp-branches/real-python-2.6/lib/lp/codehosting/codeimport/tests/test_workermonitor.py", line 674, in assertImported self.assertCodeImportResultCreated(code_import) File "/home/maxb/launchpad/lp-branches/real-python-2.6/lib/lp/codehosting/codeimport/tests/test_workermonitor.py", line 657, in assertCodeImportResultCreated self.assertEqual(result.status, CodeImportResultStatus.SUCCESS) File "/home/maxb/launchpad/lp-sourcedeps/eggs/Twisted-10.0.0-py2.6-linux-x86_64.egg/twisted/trial/unittest.py", line 287, in failUnlessEqual % (msg, pformat(first), pformat(second))) FailTest: not equal: a = <DBItem CodeImportResultStatus.FAILURE, (200) Failure> b = <DBItem CodeImportResultStatus.SUCCESS, (100) Success> }}} * test_import_hg (lp.codehosting.codeimport.tests.test_workermonitor.TestWorkerMonitorIntegrationScript) - ditto |
|
Line 256: | Line 239: |
=== ZopelessDatabaseLayer === |
=== ZopelessDatabaseLayer: OK === |
Line 260: | Line 242: |
=== ForeignBranchPluginLayer === There seems to be intermittent behaviour here - sometimes the hg variants of these tests fail, sometimes the git ones, sometimes both. * test_import (lp.codehosting.codeimport.tests.test_worker.TestMercurialImport) {{{ Error in test test_import (lp.codehosting.codeimport.tests.test_worker.TestMercurialImport) Traceback (most recent call last): _StringException: Text attachment: log ------------ 39.627 bzr-hg: using Mercurial 1.3.1 39.628 creating repository in file:///var/tmp/codeimport/data/worker-for-branch-1/bzr_working_tree/.bzr/. 39.630 creating branch <bzrlib.branch.BzrBranchFormat7 object at 0x3197490> in file:///var/tmp/codeimport/data/worker-for-branch-1/bzr_working_tree/.bzr/ 39.637 trying to create missing lock '/var/tmp/codeimport/data/worker-for-branch-1/bzr_working_tree/.bzr/checkout/dirstate' 39.637 opening working tree '/var/tmp/codeimport/data/worker-for-branch-1/bzr_working_tree' 39.641 bzr-hg: using Mercurial 1.3.1 39.644 bzr-hg: using Mercurial 1.3.1 39.644 bzr-hg: using Mercurial 1.3.1 39.645 bzr-hg: using Mercurial 1.3.1 39.646 creating repository in file:///tmp/testbzr-SAHgvG.tmp/lp.codehosting.codeimport.tests.test_worker.TestMercurialImport.test_import/work/bazaar_store/00000001/.bzr/. 39.649 creating branch <bzrlib.branch.BzrBranchFormat7 object at 0x3197490> in file:///tmp/testbzr-SAHgvG.tmp/lp.codehosting.codeimport.tests.test_worker.TestMercurialImport.test_import/work/bazaar_store/00000001/.bzr/ 39.654 Using fetch logic to copy between CHKInventoryRepository('file:///var/tmp/codeimport/data/worker-for-branch-1/bzr_working_tree/.bzr/repository/')(<RepositoryFormat2a>) and CHKInventoryRepository('file:///tmp/testbzr-SAHgvG.tmp/lp.codehosting.codeimport.tests.test_worker.TestMercurialImport.test_import/work/bazaar_store/00000001/.bzr/repository/')(<RepositoryFormat2a>) 39.654 fetch up to rev {None} 39.655 bzr-hg: using Mercurial 1.3.1 39.655 bzr-hg: using Mercurial 1.3.1 39.661 bzr-hg: using Mercurial 1.3.1 39.671 examining 3382fd51dc44:3382fd51dc44 39.671 found new changeset 3382fd51dc44 39.684 Using fetch logic to copy between CHKInventoryRepository('file:///var/tmp/codeimport/data/worker-for-branch-1/bzr_working_tree/.bzr/repository/')(<RepositoryFormat2a>) and CHKInventoryRepository('file:///tmp/testbzr-SAHgvG.tmp/lp.codehosting.codeimport.tests.test_worker.TestMercurialImport.test_import/work/bazaar_store/00000001/.bzr/repository/')(<RepositoryFormat2a>) 39.684 fetch up to rev {hg-v1:3382fd51dc448abc95fcbd7d489d0d0ff7011db3} 39.693 Using fetch logic to copy between CHKInventoryRepository('file:///var/tmp/codeimport/data/worker-for-branch-1/bzr_working_tree/.bzr/repository/')(<RepositoryFormat2a>) and CHKInventoryRepository('file:///tmp/testbzr-SAHgvG.tmp/lp.codehosting.codeimport.tests.test_worker.TestMercurialImport.test_import/work/bazaar_store/00000001/.bzr/repository/')(<RepositoryFormat2a>) 39.693 fetch up to rev {None} ------------ Text attachment: traceback ------------ Traceback (most recent call last): File "/home/maxb/launchpad/lp-sourcedeps/eggs/testtools-0.9.2-py2.6.egg/testtools/runtest.py", line 128, in _run_user return fn(*args) File "/home/maxb/launchpad/lp-sourcedeps/eggs/testtools-0.9.2-py2.6.egg/testtools/testcase.py", line 368, in _run_test_method testMethod() File "/home/maxb/launchpad/lp-branches/real-python-2.6/lib/lp/codehosting/codeimport/tests/test_worker.py", line 696, in test_import worker.run() File "/home/maxb/launchpad/lp-branches/real-python-2.6/lib/lp/codehosting/codeimport/worker.py", line 421, in run return self._doImport() File "/home/maxb/launchpad/lp-branches/real-python-2.6/lib/lp/codehosting/codeimport/worker.py", line 555, in _doImport self.pushBazaarWorkingTree(bazaar_tree) File "/home/maxb/launchpad/lp-branches/real-python-2.6/lib/lp/codehosting/codeimport/worker.py", line 649, in pushBazaarWorkingTree self.db_file, bazaar_tree.branch.repository._transport) File "/home/maxb/launchpad/lp-branches/real-python-2.6/lib/lp/codehosting/codeimport/worker.py", line 273, in put local_file = source_transport.get(filename) File "/home/maxb/launchpad/lp-sourcedeps/eggs/bzr-2.1.0-py2.6-linux-x86_64.egg/bzrlib/transport/local.py", line 167, in get self._translate_error(e, path) File "/home/maxb/launchpad/lp-sourcedeps/eggs/bzr-2.1.0-py2.6-linux-x86_64.egg/bzrlib/transport/__init__.py", line 308, in _translate_error raise errors.NoSuchFile(path, extra=e) NoSuchFile: No such file: u'/var/tmp/codeimport/data/worker-for-branch-1/bzr_working_tree/.bzr/repository/hg-v2.db': [Errno 2] No such file or directory: u'/var/tmp/codeimport/data/worker-for-branch-1/bzr_working_tree/.bzr/repository/hg-v2.db' ------------ }}} * test_import_script (lp.codehosting.codeimport.tests.test_worker.TestMercurialImport) - retval 1 * test_script_exit_codes (lp.codehosting.codeimport.tests.test_worker.TestMercurialImport) - retval 1 * test_sync (lp.codehosting.codeimport.tests.test_worker.TestMercurialImport) - like test_import |
=== ForeignBranchPluginLayer: OK === |
Moving to newer Python versions
Contents
-
Moving to newer Python versions
- Branches
- Known/Open issues
-
Known test failures and notes thereon
- BaseLayer: OK (281 tests)
- MemcachedLayer: OK (8 tests)
- LibrarianLayer: OK (9 tests)
- DatabaseLayer: OK (46 tests)
- LaunchpadLayer: OK (24 tests)
- ZopelessLayer: OK (20 tests)
- MailmanLayer: ??
- LaunchpadScriptLayer
- LaunchpadZopelessLayer
- FunctionalLayer: OK (174 tests)
- LaunchpadFunctionalLayer
- AppServerLayer: OK (143 tests)
- DatabaseFunctionalLayer: OK (4461 tests)
- GoogleLaunchpadFunctionalLayer: OK (72 tests)
- PageTestLayer
- TwistedLayer: OK (235 tests)
- TwistedLaunchpadZopelessLayer: OK (16 tests)
- TwistedAppServerLayer
- ZopelessAppServerLayer
- ZopelessDatabaseLayer: OK
- BugsWindmillLayer: OK (12 tests)
- CodeWindmillLayer: OK (11 tests)
- ForeignBranchPluginLayer: OK
- SSHServerLayer: OK (46 tests)
- RegistryWindmillLayer: OK (17 tests)
- SoyuzWindmillLayer: OK (2 tests)
- TestZopeTestInSubProcessLayer: OK (1 test)
- TranslationsWindmillLayer: OK (7 tests)
- UnitTests
- Shipit
With Lucid fast approaching, efforts to actually migrate Launchpad to Python 2.6 are getting under way.
Relevant tagged bugs: https://bugs.launchpad.net/launchpad-foundations/+bugs?field.tag=python-upgrade
Branches
https://code.launchpad.net/~launchpad-committers/launchpad/python2.6 -- collaboration branch created by maxb based on salgado's personal branch
Known/Open issues
- Things partially dealt with by Salgado, who's going on leave and might not be able to finish them:
The failure when setting up the GoogleServiceLayer seems to be a consequence of the server answering with a errno.ECONNABORTED when it's not yet ready, so I've just changed the wait_for_service function to treat that error the same way it does for errno.ECONNREFUSED.
The test hang is because of the change done on bug 349316, so I've just commented out that addCleanup() line for now, to see if we can get a full test run.
I ran the test suite with devel r10700, the python2.6 branch, and the two Python 2.6-related branches that landed overnight.
Full log is here: tests-20100414.log
Total: 25792 tests, 25 failures, 9 errors in 204 minutes 11.495 seconds.
Unfortunately I forgot to stop my launchpad-buildd before running the suite, so some test failures are spurious:
- test_manager
- buildd-dispatching.txt
- translationtemplatesbuildbehavior.txt
And three are known Lucid failures:
- xx-distribution.txt (fixed in lazr.restful, but not yet used by LP)
- soyuz-upload.txt (apt-ftparchive hash changes)
- test_generateConfig (ditto)
Old results
With the two changes above I was able to get the test suite to run to completion: Total: 25856 tests, 71 failures, 119 errors in 300 minutes 55.792 seconds.
Here's the full log: tests.log
This appears to have been run without the Lucid pygpgme fix, so there are lots of "Unknown error code" failures in Soyuz and a couple of Registry tests. I'm rerunning the Soyuz-related tests to see what the real failures are. -- wgrant
Things needing revising
A multitude of modules of modules (sha, md5, sets, ...) are deprecated in Python 2.6, and many tests would fail merely because of unexpected DeprecationWarnings, so we've had to jump through multiple hoops all over the place to suppress these. Ultimately we need a plan for removing these suppressions, because we want to know about deprecation long-term.
Setup caveat
The extension modules in your sourcecode directory will have been built for Python 2.5 and these will break for your 2.6 branch. The simple thing to do is to move your old sourcecode aside and run utilities/rocketfuel-get to get it again with Python 2.6. A more complex but useful thing to do to manage sourcecode directories for multiple python versions is:
cd ~/launchpad/lp-sourcedeps mkdir 2.6 cd 2.6 ln -s ../download-cache ln -s ../eggs mkdir sourcecode cd sourcecode for i in ../../sourcecode/*; do bzr checkout --lightweight "$i"; done
and now point utilities/link-external-sourcecode to ../../lp-sourcedeps/2.6 - if you do that you'll need to be aware that rocketfuel-get won't know about it, and your extra directories will require occasional manual updating.
Cleanup potential
- Is there any reason we need ipython-0.9.1-py2.5.egg in egg, not tarball, form?
- Presumably we could bin the wadllib 0.1 eggs too.
Eventually we should get rid of all the scripts hardcoded /usr/bin/pythonX.Y and use buildout's shebang munging.
scripts/branch-rewrite.py uses /usr/bin/pythonX.Y -u. We should figure out if this is significant and why this script has to be different from other scripts.
scripts/ftpmaster-tools/_syncorigins.py uses /usr/bin/env pythonX.Y... why?!
cronscripts/mirror-prober.sh and cronscripts/nightly.sh are invoking python scripts with explicit interpreters. Why are they not using the shebangs? This leads to versions being defined in two places.
Known test failures and notes thereon
BaseLayer: OK (281 tests)
MemcachedLayer: OK (8 tests)
LibrarianLayer: OK (9 tests)
DatabaseLayer: OK (46 tests)
LaunchpadLayer: OK (24 tests)
ZopelessLayer: OK (20 tests)
MailmanLayer: ??
Note: These do not run automatically. Use bin/test --layer=MailmanLayer
- You may get failures when you run all the tests in one go. Try running each individually for more accurate results.
LaunchpadScriptLayer
test_initZopelessTwice (canonical.lp.ftests.test_zopeless.TestInitZopeless)
Error in test test_initZopelessTwice (canonical.lp.ftests.test_zopeless.TestInitZopeless) Traceback (most recent call last): File "/usr/lib/python2.6/unittest.py", line 279, in run testMethod() File "/home/maxb/launchpad/lp-branches/real-python-2.6/lib/canonical/lp/ftests/test_zopeless.py", line 45, in test_initZopelessTwice dbuser='launchpad') File "/home/maxb/launchpad/lp-branches/real-python-2.6/lib/canonical/lp/__init__.py", line 84, in initZopeless dbname=dbname, dbhost=dbhost, dbuser=dbuser, isolation=isolation) File "/home/maxb/launchpad/lp-branches/real-python-2.6/lib/canonical/database/sqlbase.py", line 336, in initZopeless warnings.warn(alreadyInstalledMsg, stacklevel=3) UserWarning: A ZopelessTransactionManager with these settings is already installed. This is probably caused by calling initZopeless twice.
LaunchpadZopelessLayer
- test_generateConfig (lp.archivepublisher.tests.test_ftparchive.TestFTPArchive): Is benign, caused by apt-ftparchive generating SHA-1 and SHA-256 checksums in more places in Lucid.
test_bug_496988 (lp.bugs.scripts.tests.test_checkwatches.TestCheckwatchesWithSyncableGnomeProducts)
Traceback (most recent call last): _StringException: Text attachment: traceback ------------ Traceback (most recent call last): File "/home/maxb/launchpad/lp-sourcedeps/eggs/testtools-0.9.2-py2.6.egg/testtools/runtest.py", line 128, in _run_user return fn(*args) File "/home/maxb/launchpad/lp-sourcedeps/eggs/testtools-0.9.2-py2.6.egg/testtools/testcase.py", line 368, in _run_test_method testMethod() File "/home/maxb/launchpad/lp-branches/real-python-2.6/lib/lp/bugs/scripts/tests/test_checkwatches.py", line 109, in test_bug_496988 gnome_bugzilla, [bug_watch_1, bug_watch_2]) File "/home/maxb/launchpad/lp-branches/real-python-2.6/lib/lp/bugs/scripts/checkwatches/updater.py", line 522, in _getExternalBugTrackersAndWatches remote_bug_ids)) File "/home/maxb/launchpad/lp-branches/real-python-2.6/lib/lp/bugs/externalbugtracker/bugzilla.py", line 617, in getProductsForRemoteBugs self.initializeRemoteBugDB(bug_ids) File "/home/maxb/launchpad/lp-branches/real-python-2.6/lib/lp/bugs/externalbugtracker/isolation.py", line 64, in wrapper return func(*args, **kwargs) File "/home/maxb/launchpad/lp-branches/real-python-2.6/lib/lp/bugs/externalbugtracker/bugzilla.py", line 568, in initializeRemoteBugDB 'permissive': True, File "/usr/lib/python2.6/xmlrpclib.py", line 1199, in __call__ return self.__send(self.__name, args) File "/usr/lib/python2.6/xmlrpclib.py", line 1489, in __request verbose=self.__verbose File "/home/maxb/launchpad/lp-branches/real-python-2.6/lib/lp/bugs/externalbugtracker/xmlrpc.py", line 98, in request response = self._parse_response(self.opener.open(request), None) File "/usr/lib/python2.6/xmlrpclib.py", line 1392, in _parse_response return u.close() File "/usr/lib/python2.6/xmlrpclib.py", line 838, in close raise Fault(**self._stack[0]) Fault: <Fault Client: "Content-Type must be 'text/xml,' 'multipart/*,' or 'application/dime' instead of 'application/x-www-form-urlencoded'"> ------------
lib/canonical/launchpad/ftests/../../../lp/bugs/tests/bugs-emailinterface.txt
Failure in test lib/canonical/launchpad/ftests/../../../lp/bugs/tests/bugs-emailinterface.txt Failed doctest test for bugs-emailinterface.txt File "lib/canonical/launchpad/ftests/../../../lp/bugs/tests/bugs-emailinterface.txt", line 0 ---------------------------------------------------------------------- File "lib/canonical/launchpad/ftests/../../../lp/bugs/tests/bugs-emailinterface.txt", line 2808, in bugs-emailinterface.txt Failed example: print_attachments(get_latest_added_bug().attachments) Differences (ndiff with -expected +actual): - LibraryFileAlias unnamed image/jpeg; name="image.jpg" UNSPECIFIED ? ^^^ ^ ^ + LibraryFileAlias image.jpg image/jpeg; name="image.jpg" UNSPECIFIED ? ^^ ^ ^^^^ this is not a real JPG file LibraryFileAlias sourcefile.diff text/x-diff; name="sourcefile1.diff" PATCH this should be diff output.
lib/canonical/launchpad/ftests/../doc/emailauthentication.txt
Failure in test lib/canonical/launchpad/ftests/../doc/emailauthentication.txt Failed doctest test for emailauthentication.txt File "lib/canonical/launchpad/ftests/../doc/emailauthentication.txt", line 0 ---------------------------------------------------------------------- File "lib/canonical/launchpad/ftests/../doc/emailauthentication.txt", line 150, in emailauthentication.txt Failed example: print msg.as_string() #doctest: -NORMALIZE_WHITESPACE Differences (ndiff with -expected +actual): - Date:... - ... + Date: Wed, 13 Apr 2005 19:18:42 -0400 + From: Sample Person <test@canonical.com> + To: someone@somhost + Subject: Signed Email + Message-ID: <20050413231842.GB16989@localhost.localdomain> + Mime-Version: 1.0 + Content-Type: multipart/signed; micalg=pgp-sha1; + protocol="application/pgp-signature"; boundary="8NvZYKFJsRX2Djef" + Content-Disposition: inline + Status: RO + <BLANKLINE> + <BLANKLINE> + --8NvZYKFJsRX2Djef + Content-Type: multipart/mixed; - Content-Type: multipart/mixed; boundary="--------------------EuxKj2iCbKjpUGkD" ? ------------------------------ + boundary="--------------------EuxKj2iCbKjpUGkD" - ... + Content-Disposition: inline + <BLANKLINE> + <BLANKLINE> + ----------------------EuxKj2iCbKjpUGkD + Content-Type: text/plain; charset=us-ascii + Content-Disposition: inline + <BLANKLINE> + Some signed content. + <BLANKLINE> + ----------------------EuxKj2iCbKjpUGkD + Content-Type: text/plain; charset=us-ascii + Content-Disposition: attachment; filename="test.txt" + <BLANKLINE> + A signed attachment. + <BLANKLINE> + ----------------------EuxKj2iCbKjpUGkD-- + <BLANKLINE> + --8NvZYKFJsRX2Djef + Content-Type: application/pgp-signature; name="signature.asc" + Content-Description: Digital signature + Content-Disposition: inline + -----BEGIN PGP SIGNATURE----- + Version: GnuPG v1.4.1 (GNU/Linux) + <BLANKLINE> + iD8DBQBDoAFKuiuTid/SBUMRAvzNAKCPHJgldGMFXh5SvKEufqB8N6IkoACdEu+8 + Go2JWmGWaY8Nqquwk/Tr0pU= + =OhN7 + -----END PGP SIGNATURE----- + <BLANKLINE> + --8NvZYKFJsRX2Djef-- + <BLANKLINE> + <BLANKLINE> + <BLANKLINE> + <BLANKLINE>
FunctionalLayer: OK (174 tests)
LaunchpadFunctionalLayer
- lib/canonical/launchpad/ftests/../doc/profiling.txt -- HTTPCaller takes no constructor arguments but the doctest tries to give it one
- valid_absolute_url (canonical.launchpad.validators.url) -- Python 2.6's urlparse disregards the uses_netloc list when parsing urls and treats anything beginning with // as netloc based. This makes maxb and wgrant say WTF!?! The untested valid_absolute_url DB constraint is also affected!
- lib/lp/soyuz/tests/../doc/soyuz-upload.txt - Is benign, caused by apt-ftparchive generating SHA-1 and SHA-256 checksums in more places in Lucid.
AppServerLayer: OK (143 tests)
DatabaseFunctionalLayer: OK (4461 tests)
GoogleLaunchpadFunctionalLayer: OK (72 tests)
PageTestLayer
TwistedLayer: OK (235 tests)
TwistedLaunchpadZopelessLayer: OK (16 tests)
TwistedAppServerLayer
ZopelessAppServerLayer
test_hosted_branch_stacked_on_mirrored_branch (lp.codehosting.puller.tests.test_acceptance.TestBranchPuller): LayerIsolationError: Test left new live threads: [<Thread(Thread-3, started daemon 47618947405584)>]
ZopelessDatabaseLayer: OK
BugsWindmillLayer: OK (12 tests)
CodeWindmillLayer: OK (11 tests)
ForeignBranchPluginLayer: OK
SSHServerLayer: OK (46 tests)
RegistryWindmillLayer: OK (17 tests)
SoyuzWindmillLayer: OK (2 tests)
TestZopeTestInSubProcessLayer: OK (1 test)
TranslationsWindmillLayer: OK (7 tests)
UnitTests
562734 RuntimeError: The wrong site.py is imported. Scripts should usually be started with Launchpad's bin/py, or with a Python invoked with the -S flag. breaking some Rosetta scripts run from tests, seemingly only if lp.services.scripts.test_all_scripts ran earlier in the same test run:
test_script (lp.translations.scripts.tests.test_validate_translations_file.TestValidateTranslationsFile) (says AssertionError: 0 != 1, I added some print statements locally to see the cause of the failure)
- lib/lp/translations/tests/../doc/remove-upstream-translations-script.txt
Shipit
Might be ok now, I've fixed the errors that were listed here, but I don't have access to shipit --maxb.