[Python-Dev] Re: Can't build Zope on Windows w/ 2.4.1c1
Tres Seaver
tseaver at zope.com
Thu Mar 10 22:09:56 CET 2005
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Tim Peters wrote:
| [Tres Seaver]
|
|>Unit tests for Zope 2.7.4's 'zdaemon' package, which passed under Python
|>2.4, now fail under 2.4.1c1:
|
|
| Are you sure they passed under 2.4?
Yep. I showed output from that in the original post (and below).
| Derrick Hudson changed run() to
| _run() in the SVN version of zdaemon way back on Jan 19, with this
| checkin comment:
|
| Log message for revision 28881:
| Renamed run() method to _run(). Python 2.4's unittest.TestCase class
| defines all of the test logic in the run() method instead of in
__call__()
| (as 2.3 did). The rename prevents overriding the base
implementation and
| causing the tests to fail.
|
| Changed:
| U Zope3/trunk/src/zdaemon/tests/testzdrun.py
|
| I then ported that to where it belonged (zdaemon isn't part of Zope3
| under SVN, it's stitched in to Zope3, from time to time, from the
| distinct zdaemon SVN trunk).
|
| I suppose that never got ported to the CVS version -- well, until
| today, cuz it looks like Stefan Holek checked in the same kinds of
| changes to testzdrun.py about 2.5 hours ago.
Right. In fact, he beat me to the commit, and gave me a nice CVS
conflict as lagniappe.
| [BTW, the zdaemon tests don't run at all on Windows, so I'll never
| notice anything wrong with them]
|
|
|>$ uname -a
|>Linux secretariat 2.6.8.1-5-686 #1 Sat Feb 12 00:50:37 UTC 2005 i686 \
|>GNU/Linux
|>$ ../Python-2.4/python test.py -v zdaemon
|>Running unit tests at level 1
|>Running unit tests from
|>/home/tseaver/projects/Zope-CVS/Zope-2.7.4/lib/python
|>/home/tseaver/projects/Zope-CVS/Python-2.4/Lib/whrandom.py:38:
|>DeprecationWarning: the whrandom module is deprecated; please use the
|>random module
|>~ DeprecationWarning)
|>............................
|>- ----------------------------------------------------------------------
|>Ran 28 tests in 2.278s
|>
|>OK
|>$ ../Python-2.4.1c1/python test.py -v zdaemon
|>Running unit tests at level 1
|>Running unit tests from
|>/home/tseaver/projects/Zope-CVS/Zope-2.7.4/lib/python
|>/home/tseaver/projects/Zope-CVS/Python-2.4.1c1/Lib/whrandom.py:38:
|>DeprecationWarning: the whrandom module is deprecated; please use the
|>random module
|>~ DeprecationWarning)
|>...................Traceback (most recent call last):
|>~ File "test.py", line 918, in ?
|>~ process_args()
|>~ File "test.py", line 908, in process_args
|>~ bad = main(module_filter, test_filter, libdir)
|>~ File "test.py", line 698, in main
|>~ runner(files, test_filter, debug)
|>~ File "test.py", line 599, in runner
|>~ r = runner.run(suite)
|>~ File "test.py", line 366, in run
|>~ return unittest.TextTestRunner.run(self, test)
|>~ File "/home/tseaver/projects/Zope-CVS/Python-2.4.1c1/Lib/unittest.py",
|>line 696, in run
|>~ test(result)
|>~ File "/home/tseaver/projects/Zope-CVS/Python-2.4.1c1/Lib/unittest.py",
|>line 428, in __call__
|>~ return self.run(*args, **kwds)
|>~ File "/home/tseaver/projects/Zope-CVS/Python-2.4.1c1/Lib/unittest.py",
|>line 424, in run
|>~ test(result)
|>~ File "/home/tseaver/projects/Zope-CVS/Python-2.4.1c1/Lib/unittest.py",
|>line 428, in __call__
|>~ return self.run(*args, **kwds)
|>~ File "/home/tseaver/projects/Zope-CVS/Python-2.4.1c1/Lib/unittest.py",
|>line 424, in run
|>~ test(result)
|>~ File "/home/tseaver/projects/Zope-CVS/Python-2.4.1c1/Lib/unittest.py",
|>line 428, in __call__
|>~ return self.run(*args, **kwds)
|>~ File "/home/tseaver/projects/Zope-CVS/Python-2.4.1c1/Lib/unittest.py",
|>line 424, in run
|>~ test(result)
|>~ File "/home/tseaver/projects/Zope-CVS/Python-2.4.1c1/Lib/unittest.py",
|>line 281, in __call__
|>~ return self.run(*args, **kwds)
|>~ File
|>"/home/tseaver/projects/Zope-CVS/Zope-2.7.4/lib/python/zdaemon/tests/testzdrun.py",
|>line 97, in run
|>~ zdctl.main(["-s", self.zdsock] + args)
|>AttributeError: 'ZDaemonTests' object has no attribute 'zdsock'
|>
|>By staring at the code of the failing test, it looks like the MRO of the
|>testcase class has changed: it declares a 'run' method, which is
|>supposed to run the external process, which clashes with the 'run'
|>method of unittest.TestCase. I don't know what change in the 2.4 ->
|>2.4.1c1 update would have mucked with the MRO (if a MRO issue is
involved).
|>
|>Tres.
|
|
| Pretty baffling. I assume that if you did "cvs up", the test would
| pass now (because of Stefan's recent checkin).
|
| Sounds anyway like an unintended unittest incompatibility snuck in
| somewhere between 2.3 and 2.4.
I think somebody tweaked either the base classes of unittest.TestCase or
else the MRO algoritm (if it *is* algorithmic, that is ;)
Tres.
- --
===============================================================
Tres Seaver tseaver at zope.com
Zope Corporation "Zope Dealers" http://www.zope.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFCMLekGqWXf00rNCgRAofeAJ9nEbAMmklXhH3BpRzihinTVFuiiQCfZA2q
EwBLgXghI8WLJVmwoRMQxxA=
=nAjP
-----END PGP SIGNATURE-----
More information about the Python-Dev
mailing list