[Distutils] zc.buildout test failures

Maurits van Rees m.van.rees at zestsoftware.nl
Tue Feb 22 18:35:37 CET 2011


Hi,

I may want to create a branch of zc.buildout.  It would be handy if I 
get the current tests to pass first though, which for me they don't.  I 
have read the DEVELOPERS.txt on trunk.

This is zc.buildout trunk.  I ran dev.py with a clean python 2.6.6 
(freshly downloaded and compiled, no setuptools).  Mac OS X 10.6.6.
I have removed my ~/.buildout/default.cfg and ~/.pythonrc.py for good 
measure.

I ran the tests but in the end I have to interrupt them as they wait 
forever:

$ time bin/test
Running zope.testrunner.layer.UnitTests tests:
   Set up zope.testrunner.layer.UnitTests in 0.000 seconds.
zip_safe flag not set; analyzing archive contents...
zip_safe flag not set; analyzing archive contents...
zip_safe flag not set; analyzing archive contents...
zip_safe flag not set; analyzing archive contents...
zip_safe flag not set; analyzing archive contents...
Unused options for buildout: 'bar' 'foo'.
Unused options for buildout: 'bar' 'foo'.
Unused options for buildout: 'bar' 'foo'.
Unused options for buildout: 'bar' 'foo'.
Unused options for buildout: 'bar' 'foo'.
Unused options for buildout: 'bar' 'foo'.
Unused options for buildout: 'bar' 'foo'.
Unused options for buildout: 'bar' 'foo'.
Unused options for buildout: 'bar' 'foo'.
Unused options for buildout: 'bar' 'foo'.
Unused options for buildout: 'bar' 'foo'.
Unused options for buildout: 'bar' 'foo'.
Unused options for buildout: 'bar' 'foo'.
Unused options for buildout: 'bar' 'foo'.
(... wait a long time...)
^CThe following test left new threads behind:
allowed_eggs_from_site_packages_bug_592524 (zc.buildout.tests)
New thread(s): 
[<Thread(/private/var/folders/KA/KAXdMSFEHom0r8QU1jW-Jk+++TI/-Tmp-/tmpbj_z9CbuildoutSetUp/_TEST_/sample_eggs, 
started daemon 4338487296)>]
Traceback (most recent call last):
   File "bin/test", line 26, in <module>
     '--test-path', 
'/Users/mauritsvanrees/buildout/zc.buildout/trunk/z3c.recipe.scripts_/src',
   File 
"/Users/mauritsvanrees/buildout/zc.buildout/trunk/eggs/zope.testrunner-4.0.1-py2.6.egg/zope/testrunner/__init__.py", 
line 30, in run
     failed = run_internal(defaults, args, script_parts=script_parts)
   File 
"/Users/mauritsvanrees/buildout/zc.buildout/trunk/eggs/zope.testrunner-4.0.1-py2.6.egg/zope/testrunner/__init__.py", 
line 43, in run_internal
     runner.run()
   File 
"/Users/mauritsvanrees/buildout/zc.buildout/trunk/eggs/zope.testrunner-4.0.1-py2.6.egg/zope/testrunner/runner.py", 
line 139, in run
     self.run_tests()
   File 
"/Users/mauritsvanrees/buildout/zc.buildout/trunk/eggs/zope.testrunner-4.0.1-py2.6.egg/zope/testrunner/runner.py", 
line 220, in run_tests
     setup_layers, self.failures, self.errors)
   File 
"/Users/mauritsvanrees/buildout/zc.buildout/trunk/eggs/zope.testrunner-4.0.1-py2.6.egg/zope/testrunner/runner.py", 
line 377, in run_layer
     return run_tests(options, tests, layer_name, failures, errors)
   File 
"/Users/mauritsvanrees/buildout/zc.buildout/trunk/eggs/zope.testrunner-4.0.1-py2.6.egg/zope/testrunner/runner.py", 
line 309, in run_tests
     test(result)
   File 
"/Users/mauritsvanrees/py/clean/py266/lib/python2.6/unittest.py", line 
300, in __call__
     return self.run(*args, **kwds)
   File 
"/Users/mauritsvanrees/py/clean/py266/lib/python2.6/unittest.py", line 
279, in run
     testMethod()
   File "/Users/mauritsvanrees/py/clean/py266/lib/python2.6/doctest.py", 
line 2158, in runTest
     test, out=new.write, clear_globs=False)
   File "/Users/mauritsvanrees/py/clean/py266/lib/python2.6/doctest.py", 
line 1391, in run
     return self.__run(test, compileflags, out)
   File "/Users/mauritsvanrees/py/clean/py266/lib/python2.6/doctest.py", 
line 1253, in __run
     compileflags, 1) in test.globs
   File "<doctest 
zc.buildout.tests.allowed_eggs_from_site_packages_bug_592524[12]>", line 
1, in <module>
   File 
"/Users/mauritsvanrees/buildout/zc.buildout/trunk/src/zc/buildout/testing.py", 
line 121, in call_py
     ' '.join(arg for arg in (interpreter, flags, '-c', cmd) if arg))
   File 
"/Users/mauritsvanrees/buildout/zc.buildout/trunk/src/zc/buildout/testing.py", 
line 108, in system
     result = o.read() + e.read()
KeyboardInterrupt

real	54m10.648s
user	1m4.413s
sys	0m29.749s

I think the times show that I have been patient enough. :-)

The result is the same when I call it with:
env PYTHON2.6=/Users/mauritsvanrees/py/clean/py266/bin/python bin/test

The z3c.recipe.scripts tests on zc.buildout trunk have to be interrupted 
as well.

Going in with a pdb I see that it waits for completion of:

   .../_TEST_/interpreter/bin/py -c 'import pprint, sys; 
pprint.pprint(sys.path[-4:])'

When I try that command myself in a separate terminal it also waits 
forever.  Even just calling that bin/py with -h, -V, -E or -S just 
results in a process appearing to wait for input.

The interpreter/bin/py looks like this:

-----------------------------------------------------
#!/private/var/folders/KA/KAXdMSFEHom0r8QU1jW-Jk+++TI/-Tmp-/tmpcsUDSybuildoutSetUp/_TEST_/executable_buildout/bin/py 
-S
import os
import sys

argv = [sys.executable] + sys.argv[1:]
environ = os.environ.copy()
path = 
'/private/var/folders/KA/KAXdMSFEHom0r8QU1jW-Jk+++TI/-Tmp-/tmpcsUDSybuildoutSetUp/_TEST_/interpreter/parts/interpreter'
if environ.get('PYTHONPATH'):
     path = os.pathsep.join([path, environ['PYTHONPATH']])
environ['PYTHONPATH'] = path
os.execve(sys.executable, argv, environ)
-----------------------------------------------------

This is somehow wrong: even adding a print statement on line 2 gives:
line 2: print: command not found

The .../_TEST_/executable_buildout/bin/py that is called by the above 
script works fine:

-----------------------------------------------------
#!/Users/mauritsvanrees/py/clean/py266/bin/python -S
import os
import sys

argv = [sys.executable] + sys.argv[1:]
environ = os.environ.copy()
path = 
'/private/var/folders/KA/KAXdMSFEHom0r8QU1jW-Jk+++TI/-Tmp-/tmpcsUDSybuildoutSetUp/_TEST_/executable_buildout/parts/py'
if environ.get('PYTHONPATH'):
     path = os.pathsep.join([path, environ['PYTHONPATH']])
environ['PYTHONPATH'] = path
os.execve(sys.executable, argv, environ)
-----------------------------------------------------


BTW, when I run the zc.recipe.egg tests on their own, the 5 tests pass.


On zc.buildout branch 1.4 the tests do finish, but with 3 failures, the 
first of which are these:

----------------------------------------------------------------------
File 
"/Users/mauritsvanrees/buildout/zc.buildout/1.4/src/zc/buildout/buildout.txt", 
line 578, in buildout.txt
Failed example:
     wait_until("foo goes away", lambda : not os.path.exists('foo'),
                timeout=100)
Exception raised:
     Traceback (most recent call last):
       File 
"/Users/mauritsvanrees/buildout/zc.buildout/1.4/eggs/zope.testing-3.10.2-py2.6.egg/zope/testing/doctest/__init__.py", 
line 1355, in __run
         compileflags, 1) in test.globs
       File "<doctest buildout.txt[line 578, example 34]>", line 2, in 
<module>
         timeout=100)
       File 
"/Users/mauritsvanrees/buildout/zc.buildout/1.4/src/zc/buildout/testing.py", 
line 203, in wait_until
         raise ValueError('Timed out waiting for: '+label)
     ValueError: Timed out waiting for: foo goes away
----------------------------------------------------------------------
File 
"/Users/mauritsvanrees/buildout/zc.buildout/1.4/src/zc/buildout/buildout.txt", 
line 583, in buildout.txt
Failed example:
     os.path.exists('foo')
Expected:
     False
Got:
     True
----------------------------------------------------------------------

The other failures seem related.

The zc.recipe.egg (1.2.2) tests fail with some minor differences in 
generated scripts:

Expected:
     base = os.path.dirname(__file__)
Got:
     base = os.path.dirname(os.path.abspath(os.path.realpath(__file__)))

BTW, somehow the zc.recipe.egg_ directory is not used as a development 
egg, but the official 1.2.2 egg is used, even though 
develop-eggs/zc.recipe.egg.egg-link seems fine.


Are others getting these failures too?

If not, any idea what could cause them on my machine?


Sorry for the long post.  If possible, please avoid quoting the complete 
post when answering.


-- 
Maurits van Rees
Web App Programmer at Zest Software: http://zestsoftware.nl
Personal website: http://maurits.vanrees.org/



More information about the Distutils-SIG mailing list