On Thu, Apr 12, 2012 at 02:59:51PM +0800, Mark Wu wrote:
I failed to build latest vdsm code on RHEL6 host because of test failure as below:
make[2]: Entering directory `/home/mark/Work/vdsm/vdsm-src/tests' ../tests/run_tests.sh main.py miscTests.py resourceManagerTests.py processPoolTests.py fileUtilTests.py guestIFTests.py Failure runTest ERROR runTest ERROR runTest ERROR runTest ERROR runTest ERROR TestGuestIF testfilterXmlChars OK
When I manually run one of the test cases, I got the following exception:
$ ./run_tests.sh fileUtilTests.py Failure runTest ERROR
====================================================================== ERROR: Failure: ImportError (No module named fileUtils)
Traceback (most recent call last): File "/usr/lib/python2.6/site-packages/nose/loader.py", line 364, in loadTestsFromName addr.filename, addr.module) File "/usr/lib/python2.6/site-packages/nose/importer.py", line 39, in importFromPath return self.importFromDir(dir_path, fqname) File "/usr/lib/python2.6/site-packages/nose/importer.py", line 87, in importFromDir mod = load_module(part_fqname, fh, filename, desc) File "/home/mark/Work/vdsm/vdsm-src/tests/fileUtilTests.py", line 23, in <module> import storage.fileUtils as fileUtils ImportError: No module named fileUtils ----------------------> I am not sure why the name is fileUtils, not storage.fileUtils
Ran 1 test in 0.001s
FAILED (errors=1)
I also tried to manually import fileUtilTests.py. Although it failed too, it could locate the module storage.fileUtils and started to load it. I guess the 'constants' module issue could be resolved by the function hackVdsmModule in testrunner.py. In [1]: import sys
In [2]: sys.path.append('../vdsm')
In [3]: import fileUtilTests.py
ImportError Traceback (most recent call last)
/home/mark/Work/vdsm/vdsm-src/tests/<ipython console> in <module>()
/home/mark/Work/vdsm/vdsm-src/tests/fileUtilTests.py in <module>() 21 import os 22 ---> 23 import storage.fileUtils as fileUtils 24 import testValidation 25 from testrunner import VdsmTestCase as TestCaseBase
/home/mark/Work/vdsm/vdsm-src/vdsm/storage/fileUtils.py in <module>() 34 35 import shutil ---> 36 from vdsm import constants 37 import logging 38 import storage_exception as se
ImportError: cannot import name constants
I guess this problem may be related to nose. The software versions are:
python-nose-0.10.4-3.1.el6.noarch python-2.6.6-20.el6.x86_64
Anyone met this issue before? Am I missing something? Thanks!
Are you testing the tip of the master branch? we had a similar problem few days ago, but it was fixed, as Saggi has reported on list.
On my system, with the same version of nose, and a freshly cloned vdsm repo, I do not see your problem. Maybe you have a stale .py module imported by the test runner and misleading it? Could you retry with a fresh git repo?