[Openstack] [OpenStack][Nova] Issues with "run_tests.sh", no tests are run when "import libvirt is present"

Monty Taylor mordred at inaugust.com
Mon Jul 2 12:27:02 UTC 2012



On 07/02/2012 06:02 AM, Leander Bessa Beernaert wrote:
> Thanks, that let me see the real problem now:
> 
>     ./tools/with_venv.sh nosetests -svx nova
>     nose.config: INFO: Set working dir to /home/gsd/nova/nova/tests
>     nose.config: INFO: Working directory /home/gsd/nova/nova/tests is a
>     package; adding to sys.path
>     nose.config: INFO: Ignoring files matching ['^\\.', '^_',
>     '^setup\\.py$']
>     nose.plugins.cover: INFO: Coverage report will include only
>     packages: ['nova']
>     nose.selector: INFO: /home/gsd/nova/nova/auth/opendj.sh is
>     executable; skipped
>     nose.selector: INFO: /home/gsd/nova/nova/auth/slap.sh is executable;
>     skipped
>     nose.selector: INFO:
>     /home/gsd/nova/nova/cloudpipe/bootscript.template is executable; skipped
>     Failure: ImportError (No module named libvirt) ... ERROR
>     ======================================================================
>     ERROR: Failure: ImportError (No module named libvirt)
>     ----------------------------------------------------------------------
>     Traceback (most recent call last):
>       File
>     "/home/gsd/nova/.venv/local/lib/python2.7/site-packages/nose/loader.py",
>     line 390, in loadTestsFromName
>         addr.filename, addr.module)
>       File
>     "/home/gsd/nova/.venv/local/lib/python2.7/site-packages/nose/importer.py",
>     line 39, in importFromPath
>         return self.importFromDir(dir_path, fqname)
>       File
>     "/home/gsd/nova/.venv/local/lib/python2.7/site-packages/nose/importer.py",
>     line 86, in importFromDir
>         mod = load_module(part_fqname, fh, filename, desc)
>       File "/home/gsd/nova/nova/test.py", line 41, in <module>
>         from nova.tests import fake_flags
>       File "/home/gsd/nova/nova/tests/fake_flags.py", line 24, in <module>
>         flags.DECLARE('compute_scheduler_driver', 'nova.scheduler.multi')
>       File "/home/gsd/nova/nova/flags.py", line 52, in DECLARE
>         __import__(module_string, globals(), locals())
>       File "/home/gsd/nova/nova/scheduler/multi.py", line 27, in <module>
>         from nova.scheduler import driver
>       File "/home/gsd/nova/nova/scheduler/driver.py", line 53, in <module>
>         flags..DECLARE('libvirt_type', 'nova.virt.libvirt.connection')
>       File "/home/gsd/nova/nova/flags.py", line 52, in DECLARE
>         __import__(module_string, globals(), locals())
>       File "/home/gsd/nova/nova/virt/libvirt/connection.py", line 73, in
>     <module>
>         from nova.virt.libvirt import diagnostics as libvirt_diagnostics
>       File "/home/gsd/nova/nova/virt/libvirt/diagnostics.py", line 75,
>     in <module>
>         import libvirt as virt
>     ImportError: No module named libvirt
>     ----------------------------------------------------------------------
>     Ran 1 test in 0.002s
>     FAILED (errors=1)
> 
> 
> Libvirt is present on my system, i can import it through the python
> interpreter from any location. Yet, it still says it is not present.
> Could this have to do with the virtual_env or fakelibvirt?

Yes. Our virtualenvs are currently configured to not allow system
packages to be used (so that they only use python libs installed into
the virtualenv. However, libvirt is not installable via pip, which is a
problem.

We've recently added a new tox environment to help with this, so try
running:

tox -v -efull

Which is set up to allow system site packages.

However, if you're adding unittests, you should look at the other ones
which test for libvirt existence and skip the tests if they can't find it.

> On Fri, Jun 29, 2012 at 6:54 PM, Jay Pipes <jaypipes at gmail.com
> <mailto:jaypipes at gmail.com>> wrote:
> 
>     Hi Leander,
> 
>     I've noticed some weirdness with the openstack.nose_plugin (which is
>     used by default for the Nova test runner) sometimes either throwing
>     errors (particularly errors raised by nosetests) away and/or coming
>     up with a different set of skip tests than when running just with
>     nosetests.
> 
>     So, I'd recommend running just this:
> 
>     ./tools/with_venv.sh nosetests -svx nova
> 
>     That will stop at the first error and probably will give you better
>     insight into the actual errors that are likely being suppressed by
>     the openstack nose plugin.
> 
>     best,
>     -jay
> 
> 
>     On 06/29/2012 09:02 AM, Leander Bessa Beernaert wrote:
> 
>         Hello,
> 
>         I'm sorry to restart the topic
>         (https://lists.launchpad.net/__openstack/msg13621.html
>         <https://lists.launchpad.net/openstack/msg13621.html>), but
>         i accidentally deleted the message in my inbox :S.
> 
>         I'm still having the same problem, each time i add "import
>         libvirt" to
>         the file "diangostics.py"
>         (https://review.openstack.org/__#/c/8839/
>         <https://review.openstack.org/#/c/8839/>) the
>         entire test suit won't run.
> 
>         *With the import* present i get the following output:
> 
> 
>              
>         ------------------------------__------------------------------__----------
>             Ran 0 tests in 0.000s
>             OK Running PEP8 and HACKING compliance check...
>             2 imports missing in this test environment
> 
> 
>         *Without the import *present it get this output:
> 
> 
>              
>         ------------------------------__------------------------------__----------
>             Ran 3030 tests in 233.326s
>             OK (SKIP=22) Running PEP8 and HACKING compliance check...
>             11 imports missing in this test environment
> 
> 
> 
>         The problem now is that, according to the OpenStack conventions, the
>         import must be present. However, with the import present i can't
>         get any
>         of the tests to run.
>         I'm no expert in Python, so could someone please help me out here?
> 
>         Regards,
> 
>         Leander
> 
> 
>         _________________________________________________
>         Mailing list: https://launchpad.net/~__openstack
>         <https://launchpad.net/~openstack>
>         Post to     : openstack at lists.launchpad.net
>         <mailto:openstack at lists.launchpad.net>
>         Unsubscribe : https://launchpad.net/~__openstack
>         <https://launchpad.net/~openstack>
>         More help   : https://help.launchpad.net/__ListHelp
>         <https://help.launchpad.net/ListHelp>
> 
> 
> 
>     _________________________________________________
>     Mailing list: https://launchpad.net/~__openstack
>     <https://launchpad.net/~openstack>
>     Post to     : openstack at lists.launchpad.net
>     <mailto:openstack at lists.launchpad.net>
>     Unsubscribe : https://launchpad.net/~__openstack
>     <https://launchpad.net/~openstack>
>     More help   : https://help.launchpad.net/__ListHelp
>     <https://help.launchpad.net/ListHelp>
> 
> 
> 
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to     : openstack at lists.launchpad.net
> Unsubscribe : https://launchpad.net/~openstack
> More help   : https://help.launchpad.net/ListHelp
> 





More information about the Openstack mailing list