Diff for "PythonMigrationStatus"

Not logged in - Log In / Register

Differences between revisions 105 and 106
Revision 105 as of 2009-10-31 12:03:02
Size: 30735
Editor: maxb
Comment:
Revision 106 as of 2009-11-14 22:28:31
Size: 31590
Editor: maxb
Comment:
Deletions are marked like this. Additions are marked like this.
Line 76: Line 76:

=== Overview of content of the python-migration2.6 branch ===
I suspect we may decide to bin the python-migration2.6 branch, as much of its present content is either ZTK updates, trivial shebang munging, or fixes which can be opportunistically landed on devel whilst it is still targetting 2.5. Therefore I'm making a summary of the content of the branch:
 * shebang updates / Makefile PYTHON_VERSION updates all over the place
 * versions.cfg changes: {{{
lazr.restful = 0.9.14
lazr.smtptest = 1.2
zope.app.component = 3.5.0
zope.app.form = 3.6.4
zope.app.publisher = 3.6.2
}}}
 * Make import_fascist compatible with Python 2.6. (landable for 2.5)
 * Use hashlib. (landable for 2.5)
 * Additional clean_modules (but we don't do that any more on devel).
 * Deprecation warning suppression.
 * assert parentheses misuse (landable for 2.5)

Moving to newer Python versions

The ultimate goal is to migrate Launchpad to Python 2.6. Rather than go straight to Python 2.6, we are focusing on Python 2.5 first as a stepping stone. People involved in this effort: maxb, gary, salgado, barry, simono. We are treating this work as a sprint; come join us on #launchpad-sprint on freenode.

Update 2009-10-24: The sprint has concluded. We were successful in getting Launchpad to work under 2.5 + Zope Toolkit. Python 2.6 support will be postponed until the Lucid timeframe.

Relevant tagged bugs: https://bugs.launchpad.net/launchpad-foundations/+bugs?field.tag=python-upgrade

Branches

Review process

You should submit merge proposals into the appropriate branch. gary, salgado, and barry will review all branches and we'll use a lightweight review process to manage this (simple cover letters, 5-minute reviews). Once approved, you can land your change by just merging it into a pristine local copy of the destination and pushing it; there is no pqm gateway.

Merge flow

In general, we'll merge from devel -> ztk-2.5 -> python-migration2.6.

Things you'll need to do

Known/Open issues

Bustimications

  • The extension modules in your sourcecode directory will have been built for Python 2.4 and these will break for your 2.5 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.5. A more complex but useful thing to do to manage sourcecode directories for multiple python versions is:

    cd ~/launchpad/lp-sourcedeps
    mkdir 2.5
    cd 2.5
    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.5 - 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.

  • The pytz source package has a not-so-mysterious problem, hence we have eggs in download-cache.

Cleanup potential

  • BEFORE we go to production with Python 2.5, 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.


Python 2.5 w/Zope Toolkit

This is a branch off of python-migration which uses Python 2.5 and the Zope Toolkit.

test failures

  • lib/canonical/shipit/tests/../doc/shipit.txt
    • Salgado has a branch that fixes this
  • lib/canonical/signon/browser/tests/loginservice-unauthorized-view.txt
    • Salgado has a branch that fixes this


Python 2.6

This is the ztk-2.5 branch, converted to use Python 2.6.

Also, a multitude of modules of modules (sha, md5, sets, ...) are deprecated in Python 2.6, and many tests will fail merely because of unexpected DeprecationWarnings (but see below).

Overview of content of the python-migration2.6 branch

I suspect we may decide to bin the python-migration2.6 branch, as much of its present content is either ZTK updates, trivial shebang munging, or fixes which can be opportunistically landed on devel whilst it is still targetting 2.5. Therefore I'm making a summary of the content of the branch:

  • shebang updates / Makefile PYTHON_VERSION updates all over the place
  • versions.cfg changes:

    lazr.restful = 0.9.14
    lazr.smtptest = 1.2
    zope.app.component = 3.5.0
    zope.app.form = 3.6.4
    zope.app.publisher = 3.6.2
  • Make import_fascist compatible with Python 2.6. (landable for 2.5)
  • Use hashlib. (landable for 2.5)
  • Additional clean_modules (but we don't do that any more on devel).
  • Deprecation warning suppression.
  • assert parentheses misuse (landable for 2.5)

Getting started

  • Apply this patch and re-run bin/buildout to temporarily suppress the turning of warnings into errors. There are DeprecationErrors coming from Twisted that we can't seem to turn off any other way.

  • sudo apt-get install python-pyasn1 (for lp:twisted)

Test failures

  • Running canonical.testing.layers.BaseLayer tests:

    • test_import (lp.codehosting.codeimport.tests.test_worker.TestGitImport)

      Error in test test_import (lp.codehosting.codeimport.tests.test_worker.TestGitImport)
      Traceback (most recent call last):
        File "/home/barry/projects/launchpad/eggs/bzr-2.0.0_lp_1-py2.6-linux-x86_64.egg/bzrlib/tests/__init__.py", line 1470, in run
          testMethod()
        File "/home/barry/projects/launchpad/python-migration2.6/lib/lp/codehosting/codeimport/tests/test_worker.py", line 641, in test_import
          worker.run()
        File "/home/barry/projects/launchpad/python-migration2.6/lib/lp/codehosting/codeimport/worker.py", line 398, in run
          self._doImport()
        File "/home/barry/projects/launchpad/python-migration2.6/lib/lp/codehosting/codeimport/worker.py", line 495, in _doImport
          self.pushBazaarWorkingTree(bazaar_tree)
        File "/home/barry/projects/launchpad/python-migration2.6/lib/lp/codehosting/codeimport/worker.py", line 525, in pushBazaarWorkingTree
          'git.db', bazaar_tree.branch.repository._transport)
        File "/home/barry/projects/launchpad/python-migration2.6/lib/lp/codehosting/codeimport/worker.py", line 254, in put
          local_file = source_transport.get(filename)
        File "/home/barry/projects/launchpad/eggs/bzr-2.0.0_lp_1-py2.6-linux-x86_64.egg/bzrlib/transport/local.py", line 167, in get
          self._translate_error(e, path)
        File "/home/barry/projects/launchpad/eggs/bzr-2.0.0_lp_1-py2.6-linux-x86_64.egg/bzrlib/transport/__init__.py", line 306, 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/git.db': [Errno 2] No such file or directory: u'/var/tmp/codeimport/data/worker-for-branch-1/bzr_working_tree/.bzr/repository/git.db'
    • test_import_script (lp.codehosting.codeimport.tests.test_worker.TestGitImport)

      Failure in test test_import_script (lp.codehosting.codeimport.tests.test_worker.TestGitImport)
      Traceback (most recent call last):
        File "/home/barry/projects/launchpad/eggs/bzr-2.0.0_lp_1-py2.6-linux-x86_64.egg/bzrlib/tests/__init__.py", line 1470, in run
          testMethod()
        File "/home/barry/projects/launchpad/python-migration2.6/lib/lp/codehosting/codeimport/tests/test_worker.py", line 688, in test_import_script
          self.assertEqual(retcode, 0)
        File "/home/barry/projects/launchpad/eggs/bzr-2.0.0_lp_1-py2.6-linux-x86_64.egg/bzrlib/tests/__init__.py", line 958, in assertEqual
          pformat(a), pformat(b)))
      AssertionError: not equal:
      a = 1
      b = 0
    • test_sync (lp.codehosting.codeimport.tests.test_worker.TestGitImport)

      Error in test test_sync (lp.codehosting.codeimport.tests.test_worker.TestGitImport)
      Traceback (most recent call last):
        File "/home/barry/projects/launchpad/eggs/bzr-2.0.0_lp_1-py2.6-linux-x86_64.egg/bzrlib/tests/__init__.py", line 1470, in run
          testMethod()
        File "/home/barry/projects/launchpad/python-migration2.6/lib/lp/codehosting/codeimport/tests/test_worker.py", line 649, in test_sync
          worker.run()
        File "/home/barry/projects/launchpad/python-migration2.6/lib/lp/codehosting/codeimport/worker.py", line 398, in run
          self._doImport()
        File "/home/barry/projects/launchpad/python-migration2.6/lib/lp/codehosting/codeimport/worker.py", line 495, in _doImport
          self.pushBazaarWorkingTree(bazaar_tree)
        File "/home/barry/projects/launchpad/python-migration2.6/lib/lp/codehosting/codeimport/worker.py", line 525, in pushBazaarWorkingTree
          'git.db', bazaar_tree.branch.repository._transport)
        File "/home/barry/projects/launchpad/python-migration2.6/lib/lp/codehosting/codeimport/worker.py", line 254, in put
          local_file = source_transport.get(filename)
        File "/home/barry/projects/launchpad/eggs/bzr-2.0.0_lp_1-py2.6-linux-x86_64.egg/bzrlib/transport/local.py", line 167, in get
          self._translate_error(e, path)
        File "/home/barry/projects/launchpad/eggs/bzr-2.0.0_lp_1-py2.6-linux-x86_64.egg/bzrlib/transport/__init__.py", line 306, 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/git.db': [Errno 2] No such file or directory: u'/var/tmp/codeimport/data/worker-for-branch-1/bzr_working_tree/.bzr/repository/git.db'
  • Running canonical.testing.layers.LaunchpadScriptLayer tests:

    • 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/barry/projects/launchpad/python-migration2.6/lib/canonical/lp/ftests/test_zopeless.py", line 45, in test_initZopelessTwice
          dbuser='launchpad')
        File "/home/barry/projects/launchpad/python-migration2.6/lib/canonical/lp/__init__.py", line 84, in initZopeless
          dbname=dbname, dbhost=dbhost, dbuser=dbuser, isolation=isolation)
        File "/home/barry/projects/launchpad/python-migration2.6/lib/canonical/database/sqlbase.py", line 328, in initZopeless
          warnings.warn(alreadyInstalledMsg, stacklevel=3)
      UserWarning: A ZopelessTransactionManager with these settings is already installed.  This is probably caused by calling initZopeless twice.
  • Running canonical.testing.layers.LaunchpadZopelessLayer tests:

    • lib/lp/soyuz/tests/../doc/buildd-slave.txt

      Failure in test lib/lp/soyuz/tests/../doc/buildd-slave.txt
      Failed doctest test for buildd-slave.txt
        File "lib/lp/soyuz/tests/../doc/buildd-slave.txt", line 0
      
      ----------------------------------------------------------------------
      File "lib/lp/soyuz/tests/../doc/buildd-slave.txt", line 102, in buildd-slave.txt
      Failed example:
          s.info()
      Differences (ndiff with -expected +actual):
            Traceback (most recent call last):
          - ...
          +   File "/home/barry/projects/launchpad/eggs/zope.testing-3.8.1-py2.6.egg/zope/testing/doctest.py", line 1361, in __run
          +     compileflags, 1) in test.globs
          +   File "<doctest buildd-slave.txt[line 102, example 38]>", line 1, in <module>
          +   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 "/usr/lib/python2.6/xmlrpclib.py", line 1235, in request
          +     self.send_content(h, request_body)
          +   File "/usr/lib/python2.6/xmlrpclib.py", line 1349, in send_content
          +     connection.endheaders()
          +   File "/usr/lib/python2.6/httplib.py", line 892, in endheaders
          +     self._send_output()
          +   File "/usr/lib/python2.6/httplib.py", line 764, in _send_output
          +     self.send(msg)
          +   File "/usr/lib/python2.6/httplib.py", line 723, in send
          +     self.connect()
          +   File "/usr/lib/python2.6/httplib.py", line 704, in connect
          +     self.timeout)
          +   File "/usr/lib/python2.6/socket.py", line 514, in create_connection
          +     raise error, msg
          - error: (111, 'Connection refused')
          ?        ^   ^^^                  --
          + error: [Errno 111] Connection refused
          ?        ^^^^^^^   ^^
    • lib/lp/soyuz/tests/../doc/manage-chroot.txt

      Failure in test lib/lp/soyuz/tests/../doc/manage-chroot.txt
      Failed doctest test for manage-chroot.txt
        File "lib/lp/soyuz/tests/../doc/manage-chroot.txt", line 0
      
      ----------------------------------------------------------------------
      File "lib/lp/soyuz/tests/../doc/manage-chroot.txt", line 189, in manage-chroot.txt
      Failed example:
          try:
               manage_chroot.mainTask()
          except SoyuzScriptError, info:
              print info
          else:
              print "Did not get expected exception"
      Differences (ndiff with -expected +actual):
          - DEBUG   Initialising ChrootManager for 'The Hoary Hedgehog Release for i386 (x86)'
          ?      --
          + DEBUG Initialising ChrootManager for 'The Hoary Hedgehog Release for i386 (x86)'
          - Librarian upload failed: [...]: (111, 'Connection refused')
          ?                           ^^^   ^   ^^^                  --
          + Librarian upload failed: [localhost:57930]: [Errno 111] Connection refused
          ?                           ^^^^^^^^^^^^^^^   ^^^^^^^   ^^
    • lib/canonical/launchpad/ftests/../doc/incomingmail.txt

      Failure in test lib/canonical/launchpad/ftests/../doc/incomingmail.txt
      Failed doctest test for incomingmail.txt
        File "lib/canonical/launchpad/ftests/../doc/incomingmail.txt", line 0
      
      ----------------------------------------------------------------------
      File "lib/canonical/launchpad/ftests/../doc/incomingmail.txt", line 377, in incomingmail.txt
      Failed example:
          handleMail(transaction)
      Differences (ndiff with -expected +actual):
          - ERROR:...:Upload to Librarian failed...
          ?       ^^^                           ---
          + ERROR:process-mail:Upload to Librarian failed
          ?       ^^^^^^^^^^^^
          - ...
          - UploadFailed: [...]: (111, 'Connection refused')
          + Traceback (most recent call last):
          +   File "/home/barry/projects/launchpad/python-migration2.6/lib/canonical/launchpad/mail/incoming.py", line 202, in handleMail
          +     cStringIO(raw_mail), 'message/rfc822')
          +   File "/home/barry/projects/launchpad/python-migration2.6/lib/canonical/launchpad/database/librarian.py", line 210, in create
          +     fid = client.addFile(name, size, file, contentType, expires, debugID)
          +   File "/home/barry/projects/launchpad/python-migration2.6/lib/canonical/librarian/client.py", line 104, in addFile
          +     self._connect()
          +   File "/home/barry/projects/launchpad/python-migration2.6/lib/canonical/librarian/client.py", line 56, in _connect
          +     '[%s:%s]: %s' % (self.upload_host, self.upload_port, x))
          + UploadFailed: [localhost:57930]: [Errno 111] Connection refused
          + ERROR:process-mail:Upload to Librarian failed
          + Traceback (most recent call last):
          +   File "/home/barry/projects/launchpad/python-migration2.6/lib/canonical/launchpad/mail/incoming.py", line 202, in handleMail
          +     cStringIO(raw_mail), 'message/rfc822')
          +   File "/home/barry/projects/launchpad/python-migration2.6/lib/canonical/launchpad/database/librarian.py", line 210, in create
          +     fid = client.addFile(name, size, file, contentType, expires, debugID)
          +   File "/home/barry/projects/launchpad/python-migration2.6/lib/canonical/librarian/client.py", line 104, in addFile
          +     self._connect()
          +   File "/home/barry/projects/launchpad/python-migration2.6/lib/canonical/librarian/client.py", line 56, in _connect
          +     '[%s:%s]: %s' % (self.upload_host, self.upload_port, x))
          + UploadFailed: [localhost:57930]: [Errno 111] Connection refused
  • Running canonical.testing.layers.LaunchpadFunctionalLayer tests:

    • Set up canonical.testing.layers.GoogleServiceLayer

      Traceback (most recent call last):
        File "/home/barry/projects/launchpad/eggs/zope.testing-3.8.1-py2.6.egg/zope/testing/testrunner/runner.py", line 364, in run_layer
          setup_layer(options, layer, setup_layers)
        File "/home/barry/projects/launchpad/eggs/zope.testing-3.8.1-py2.6.egg/zope/testing/testrunner/runner.py", line 624, in setup_layer
          setup_layer(options, base, setup_layers)
        File "/home/barry/projects/launchpad/eggs/zope.testing-3.8.1-py2.6.egg/zope/testing/testrunner/runner.py", line 629, in setup_layer
          layer.setUp()
        File "/home/barry/projects/launchpad/python-migration2.6/lib/canonical/testing/layers.py", line 1009, in setUp
          google.setUp()
        File "/home/barry/projects/launchpad/python-migration2.6/lib/canonical/launchpad/testing/tests/googleserviceharness.py", line 76, in setUp
          self.startService()
        File "/home/barry/projects/launchpad/python-migration2.6/lib/canonical/launchpad/testing/tests/googleserviceharness.py", line 88, in startService
          googletestservice.wait_for_service()
        File "/home/barry/projects/launchpad/python-migration2.6/lib/canonical/launchpad/testing/googletestservice.py", line 126, in wait_for_service
          sock.connect((host, port))
        File "<string>", line 1, in connect
      error: [Errno 103] Software caused connection abort
  • Running canonical.testing.layers.AppServerLayer tests:

    • Same layer failure as above
  • Running canonical.testing.layers.DatabaseFunctionalLayer tests:

    • lib/canonical/shipit/tests/../doc/shipit-process-requests.txt

      Failure in test lib/canonical/shipit/tests/../doc/shipit-process-requests.txt
      Failed doctest test for shipit-process-requests.txt
        File "lib/canonical/shipit/tests/../doc/shipit-process-requests.txt", line 0
      
      ----------------------------------------------------------------------
      File "lib/canonical/shipit/tests/../doc/shipit-process-requests.txt", line 96, in shipit-process-requests.txt
      Failed example:
          out, err
      Differences (ndiff with -expected +actual):
          - ('', '')
          + ('', '/home/barry/projects/launchpad/python-migration2.6/lib/cscvs/dircompare/dirsums.py:18: DeprecationWarning: the md5 module is deprecated; use hashlib instead\n  import md5\n/home/barry/projects/launchpad/python-migration2.6/lib/canonical/uuid.py:10: DeprecationWarning: the sha module is deprecated; use the hashlib module instead\n  import time, random, subprocess, thread, sha\n')
    • canonical.signon.browser.tests.test_openidserver.OpenIDMixin_checkTeamMembership_TestCase.test_full_fledged_account

      Error in test canonical.signon.browser.tests.test_openidserver.OpenIDMixin_checkTeamMembership_TestCase.test_full_fledged_account
      Traceback (most recent call last):
        File "/home/barry/projects/launchpad/python-migration2.6/lib/lp/testing/__init__.py", line 390, in run
          self.setUp()
        File "/home/barry/projects/launchpad/python-migration2.6/lib/canonical/signon/browser/tests/test_openidserver.py", line 268, in setUp
          self.openid_mixin = CheckTeamMembershipTest(None, self.request)
        File "/home/barry/projects/launchpad/python-migration2.6/lib/canonical/signon/browser/openidserver.py", line 101, in __init__
          super(OpenIDMixin, self).__init__(context, request)
      TypeError: object.__init__() takes no parameters
    • canonical.signon.browser.tests.test_openidserver.OpenIDMixin_checkTeamMembership_TestCase.test_personless_account

      Error in test canonical.signon.browser.tests.test_openidserver.OpenIDMixin_checkTeamMembership_TestCase.test_personless_account
      Traceback (most recent call last):
        File "/home/barry/projects/launchpad/python-migration2.6/lib/lp/testing/__init__.py", line 390, in run
          self.setUp()
        File "/home/barry/projects/launchpad/python-migration2.6/lib/canonical/signon/browser/tests/test_openidserver.py", line 268, in setUp
          self.openid_mixin = CheckTeamMembershipTest(None, self.request)
        File "/home/barry/projects/launchpad/python-migration2.6/lib/canonical/signon/browser/openidserver.py", line 101, in __init__
          super(OpenIDMixin, self).__init__(context, request)
      TypeError: object.__init__() takes no parameters
    • lots more of those
    • lib/canonical/signon/browser/tests/loginservice-unauthorized-view.txt

      Failure in test lib/canonical/signon/browser/tests/loginservice-unauthorized-view.txt
      Failed doctest test for loginservice-unauthorized-view.txt
        File "lib/canonical/signon/browser/tests/loginservice-unauthorized-view.txt", line 0
      
      ----------------------------------------------------------------------
      File "lib/canonical/signon/browser/tests/loginservice-unauthorized-view.txt", line 39, in loginservice-unauthorized-view.txt
      Failed example:
          browser.open('http://openid.launchpad.dev/+edit')
      Differences (ndiff with -expected +actual):
          - ERROR:...
  • Running canonical.testing.layers.PageTestLayer tests:

    • Google service layer failure again
  • Running canonical.testing.layers.TwistedLayer tests:

    • test_run_proces_with_timeout_success (canonical.twistedsupport.tests.test_processmonitor.TestRunProcessWithTimeout)

      Error in test test_run_proces_with_timeout_success (canonical.twistedsupport.tests.test_processmonitor.TestRunProcessWithTimeout)
      Traceback (most recent call last):
        File "/home/barry/projects/launchpad/python-migration2.6/lib/twisted/trial/unittest.py", line 1250, in run
          warnings.warn_explicit(**w)
      PotentialZombieWarning: spawnProcess called, but the SIGCHLD handler is not installed. This probably means you have not yet called reactor.run, or called reactor.run(installSignalHandler=0). You will probably never see this process finish, and it may become a zombie process.
    • more of the same
  • Running canonical.testing.layers.TwistedLaunchpadZopelessLayer tests:

    • test_import_git (lp.codehosting.codeimport.tests.test_workermonitor.TestWorkerMonitorIntegration)

      Failure in test test_import_git (lp.codehosting.codeimport.tests.test_workermonitor.TestWorkerMonitorIntegration)
      Traceback (most recent call last):
        File "/home/barry/projects/launchpad/python-migration2.6/lib/twisted/internet/defer.py", line 323, in _runCallbacks
          self.result = callback(self.result, *args, **kw)
        File "/home/barry/projects/launchpad/python-migration2.6/lib/lp/codehosting/codeimport/workermonitor.py", line 124, in transacted
          return function(*args, **kwargs)
        File "/home/barry/projects/launchpad/python-migration2.6/lib/lp/codehosting/codeimport/tests/test_workermonitor.py", line 531, in assertImported
          self.assertCodeImportResultCreated(code_import)
        File "/home/barry/projects/launchpad/python-migration2.6/lib/lp/codehosting/codeimport/tests/test_workermonitor.py", line 513, in assertCodeImportResultCreated
          self.assertEqual(result.status, CodeImportResultStatus.SUCCESS)
        File "/home/barry/projects/launchpad/python-migration2.6/lib/twisted/trial/unittest.py", line 290, in failUnlessEqual
          % (msg, pformat(first), pformat(second)))
      FailTest: not equal:
      a = <DBItem CodeImportResultStatus.FAILURE, (200) Failure>
      b = <DBItem CodeImportResultStatus.SUCCESS, (100) Success>
    • test_import_git (lp.codehosting.codeimport.tests.test_workermonitor.TestWorkerMonitorIntegrationScript)

      Failure in test test_import_git (lp.codehosting.codeimport.tests.test_workermonitor.TestWorkerMonitorIntegrationScript)
      Traceback (most recent call last):
        File "/home/barry/projects/launchpad/python-migration2.6/lib/twisted/internet/defer.py", line 323, in _runCallbacks
          self.result = callback(self.result, *args, **kw)
        File "/home/barry/projects/launchpad/python-migration2.6/lib/lp/codehosting/codeimport/workermonitor.py", line 124, in transacted
          return function(*args, **kwargs)
        File "/home/barry/projects/launchpad/python-migration2.6/lib/lp/codehosting/codeimport/tests/test_workermonitor.py", line 531, in assertImported
          self.assertCodeImportResultCreated(code_import)
        File "/home/barry/projects/launchpad/python-migration2.6/lib/lp/codehosting/codeimport/tests/test_workermonitor.py", line 513, in assertCodeImportResultCreated
          self.assertEqual(result.status, CodeImportResultStatus.SUCCESS)
        File "/home/barry/projects/launchpad/python-migration2.6/lib/twisted/trial/unittest.py", line 290, in failUnlessEqual
          % (msg, pformat(first), pformat(second)))
      FailTest: not equal:
      a = <DBItem CodeImportResultStatus.FAILURE, (200) Failure>
      b = <DBItem CodeImportResultStatus.SUCCESS, (100) Success>
      
      Error in test test_import_git (lp.codehosting.codeimport.tests.test_workermonitor.TestWorkerMonitorIntegrationScript)
      Traceback (most recent call last):
        File "/home/barry/projects/launchpad/python-migration2.6/lib/twisted/trial/unittest.py", line 1250, in run
          warnings.warn_explicit(**w)
      PotentialZombieWarning: spawnProcess called, but the SIGCHLD handler is not installed. This probably means you have not yet called reactor.run, or called reactor.run(installSignalHandler=0). You will probably never see this process finish, and it may become a zombie process.
  • Running canonical.testing.layers.TwistedAppServerLayer tests:

    • lp.codehosting.puller.tests.test_scheduler.TestPullerMasterIntegration.test_lock_with_magic_id

      /home/barry/projects/launchpad/python-migration2.6/lib/cscvs/dircompare/dirsums.py:18: DeprecationWarning: the md5 module is deprecated; use hashlib instead
        import md5
      
      
      
      Error in test lp.codehosting.puller.tests.test_scheduler.TestPullerMasterIntegration.test_lock_with_magic_id
      Traceback (most recent call last):
      UnexpectedStderr: Unexpected standard error from subprocess:   import md5
      
      
      
      Error in test lp.codehosting.puller.tests.test_scheduler.TestPullerMasterIntegration.test_lock_with_magic_id
      Traceback (most recent call last):
        File "/home/barry/projects/launchpad/python-migration2.6/lib/twisted/trial/unittest.py", line 1250, in run
          warnings.warn_explicit(**w)
      PotentialZombieWarning: spawnProcess called, but the SIGCHLD handler is not installed. This probably means you have not yet called reactor.run, or called reactor.run(installSignalHandler=0). You will probably never see this process finish, and it may become a zombie process.
    • lp.codehosting.puller.tests.test_scheduler.TestPullerMasterIntegration.test_mirror

      Error in test lp.codehosting.puller.tests.test_scheduler.TestPullerMasterIntegration.test_mirror
      Traceback (most recent call last):
        File "/home/barry/projects/launchpad/python-migration2.6/lib/twisted/trial/unittest.py", line 1250, in run
          warnings.warn_explicit(**w)
      PotentialZombieWarning: spawnProcess called, but the SIGCHLD handler is not installed. This probably means you have not yet called reactor.run, or called reactor.run(installSignalHandler=0). You will probably never see this process finish, and it may become a zombie process.
      
      
       lp.codehosting.puller.tests.test_scheduler.TestPullerMasterIntegration.test_mirror_with_destination_locked_by_another/home/barry/projects/launchpad/python-migration2.6/lib/cscvs/dircompare/dirsums.py:18: DeprecationWarning: the md5 module is deprecated; use hashlib instead
        import md5
      
      
      
      Error in test lp.codehosting.puller.tests.test_scheduler.TestPullerMasterIntegration.test_mirror_with_destination_locked_by_another
      Traceback (most recent call last):
      UnexpectedStderr: Unexpected standard error from subprocess:   import md5
      
      
      
      Error in test lp.codehosting.puller.tests.test_scheduler.TestPullerMasterIntegration.test_mirror_with_destination_locked_by_another
      Traceback (most recent call last):
        File "/home/barry/projects/launchpad/python-migration2.6/lib/twisted/trial/unittest.py", line 1250, in run
          warnings.warn_explicit(**w)
      PotentialZombieWarning: spawnProcess called, but the SIGCHLD handler is not installed. This probably means you have not yet called reactor.run, or called reactor.run(installSignalHandler=0). You will probably never see this process finish, and it may become a zombie process.
    • lp.codehosting.puller.tests.test_scheduler.TestPullerMasterIntegration.test_mirror_with_destination_self_locked

      Error in test lp.codehosting.puller.tests.test_scheduler.TestPullerMasterIntegration.test_mirror_with_destination_self_locked
      Traceback (most recent call last):
        File "/home/barry/projects/launchpad/python-migration2.6/lib/twisted/trial/unittest.py", line 1250, in run
          warnings.warn_explicit(**w)
      PotentialZombieWarning: spawnProcess called, but the SIGCHLD handler is not installed. This probably means you have not yet called reactor.run, or called reactor.run(installSignalHandler=0). You will probably never see this process finish, and it may become a zombie process.
    • lp.codehosting.puller.tests.test_scheduler.TestPullerMasterIntegration.test_stderrLoggedToOOPS

      Error in test lp.codehosting.puller.tests.test_scheduler.TestPullerMasterIntegration.test_stderrLoggedToOOPS
      Traceback (most recent call last):
        File "/home/barry/projects/launchpad/python-migration2.6/lib/twisted/trial/unittest.py", line 1250, in run
          warnings.warn_explicit(**w)
      PotentialZombieWarning: spawnProcess called, but the SIGCHLD handler is not installed. This probably means you have not yet called reactor.run, or called reactor.run(installSignalHandler=0). You will probably never see this process finish, and it may become a zombie process.
  • Running canonical.testing.layers.ZopelessAppServerLayer tests:

    • lp.codehosting.puller.tests.test_acceptance.TestBranchPuller.test_mirror_hosted_loom_branch

        C-c C-cTraceback (most recent call last):
        File "bin/test", line 246, in <module>
          result = testrunner.run([])
        File "/home/barry/projects/launchpad/eggs/zope.testing-3.8.1-py2.6.egg/zope/testing/testrunner/__init__.py", line 32, in run
          failed = run_internal(defaults, args, script_parts=script_parts)
        File "/home/barry/projects/launchpad/eggs/zope.testing-3.8.1-py2.6.egg/zope/testing/testrunner/__init__.py", line 45, in run_internal
          runner.run()
        File "/home/barry/projects/launchpad/eggs/zope.testing-3.8.1-py2.6.egg/zope/testing/testrunner/runner.py", line 136, in run
          self.run_tests()
        File "/home/barry/projects/launchpad/eggs/zope.testing-3.8.1-py2.6.egg/zope/testing/testrunner/runner.py", line 235, in run_tests
          layers_to_run, self.failures, self.errors)
        File "/home/barry/projects/launchpad/eggs/zope.testing-3.8.1-py2.6.egg/zope/testing/testrunner/runner.py", line 584, in resume_tests
          time.sleep(0.01) # Keep the loop from being too tight.
      KeyboardInterrupt