Bug 982864 - python-rhev breaks nosetests for unrelated packages
Summary: python-rhev breaks nosetests for unrelated packages
Keywords:
Status: CLOSED EOL
Alias: None
Product: Fedora
Classification: Fedora
Component: python-rhev
Version: 22
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: ---
Assignee: Marek Mahut
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-07-10 03:39 UTC by David Gibson
Modified: 2016-07-20 01:35 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-07-19 20:27:30 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description David Gibson 2013-07-10 03:39:22 UTC
Description of problem:

For some reason the DepLoader class of from rhev/test/loader.py module is picked up by nosetests as a plugin, and is enabled by default.  The wantMethod implementation from there thus prevents nosetests from locating any tests at all in most cases.

For example, with python-rhev installed, attempting to run "make check" on the vdsm source from http://gerrit.ovirt.org/p/vdsm.git will run no tests.

How reproducible:

Every time.

Steps to Reproduce:
1. Obtain vdsm git source from http://gerrit.ovirt.org/p/vdsm.git
2. Install python-rhev package
3. Run make check

Actual results:

voom:~/src/vdsm/tests (master)$ make check
Making check in functional
make[1]: Entering directory `/home/dwg/src/vdsm/tests/functional'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/home/dwg/src/vdsm/tests/functional'
make[1]: Entering directory `/home/dwg/src/vdsm/tests'
make  check-local
make[2]: Entering directory `/home/dwg/src/vdsm/tests'
*** Running tests.  To skip this step place NOSE_EXCLUDE=.* ***
*** into your environment.  Do not submit untested code!    ***
../tests/run_tests_local.sh crossImportsTests.py
nose.config: INFO: Ignoring files matching ['^\\.', '^_', '^setup\\.py$']

----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK
../tests/run_tests_local.sh alignmentScanTests.py apiTests.py betterPopenTests.py capsTests.py configNetworkTests.py fileUtilTests.py fuserTests.py getAllVolumesTests.py gluster_cli_tests.py glusterTestData.py guestIFTests.py hooksTests.py ipwrapperTests.py netconfTests.py netmodelsTests.py jsonRpcTests.py jsonRpcUtils.py vmTests.py vmTestsData.py lsblkTests.py lvmTests.py main.py md_utils_tests.py miscTests.py mkimageTests.py mountTests.py netinfoTests.py outOfProcessTests.py parted_utils_tests.py permutationTests.py persistentDictTests.py remoteFileHandlerTests.py resourceManagerTests.py schemaTests.py sslTests.py storageMailboxTests.py tcTests.py utilsTests.py vdsClientTests.py volumeTests.py zombieReaperTests.py 
nose.config: INFO: Ignoring files matching ['^\\.', '^_', '^setup\\.py$']

----------------------------------------------------------------------
Ran 0 tests in 0.088s

OK
make[2]: Leaving directory `/home/dwg/src/vdsm/tests'
make[1]: Leaving directory `/home/dwg/src/vdsm/tests'


Expected results:

voom:~/src/vdsm/tests (master)$ make check
Making check in functional
make[1]: Entering directory `/home/dwg/src/vdsm/tests/functional'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/home/dwg/src/vdsm/tests/functional'
make[1]: Entering directory `/home/dwg/src/vdsm/tests'
make  check-local
make[2]: Entering directory `/home/dwg/src/vdsm/tests'
*** Running tests.  To skip this step place NOSE_EXCLUDE=.* ***
*** into your environment.  Do not submit untested code!    ***
../tests/run_tests_local.sh crossImportsTests.py
nose.config: INFO: Ignoring files matching ['^\\.', '^_', '^setup\\.py$']
CrossImportsTestCaseShould
    test_fail_when_importing_ext_mod                            OK

----------------------------------------------------------------------
Ran 1 test in 0.062s

OK
../tests/run_tests_local.sh alignmentScanTests.py apiTests.py betterPopenTests.py capsTests.py configNetworkTests.py fileUtilTests.py fuserTests.py getAllVolumesTests.py gluster_cli_tests.py glusterTestData.py guestIFTests.py hooksTests.py ipwrapperTests.py netconfTests.py netmodelsTests.py jsonRpcTests.py jsonRpcUtils.py vmTests.py vmTestsData.py lsblkTests.py lvmTests.py main.py md_utils_tests.py miscTests.py mkimageTests.py mountTests.py netinfoTests.py outOfProcessTests.py parted_utils_tests.py permutationTests.py persistentDictTests.py remoteFileHandlerTests.py resourceManagerTests.py schemaTests.py sslTests.py storageMailboxTests.py tcTests.py utilsTests.py vdsClientTests.py volumeTests.py zombieReaperTests.py 
nose.config: INFO: Ignoring files matching ['^\\.', '^_', '^setup\\.py$']
AlignmentScanTests
    test_aligned_image                                          SKIP : cannot execute /usr/bin/virt-alignment-scan
    test_bad_path                                               SKIP : cannot execute /usr/bin/virt-alignment-scan
    test_help_response                                          SKIP : cannot execute /usr/bin/virt-alignment-scan
    test_nonaligned_image                                       SKIP : cannot execute /usr/bin/virt-alignment-scan
JsonRawTest
    testBadMethod                                               OK
    testClientNotJson                                           OK
    testInternalError                                           OK
    testMissingSize                                             OK
    testNoMethod                                                OK
    testPing                                                    OK
    testPingError                                               OK
    testSynchronization                                         OK
TestBetterPopen
    testBadCwd                                                  OK
    testCat                                                     OK
    testCloseFDs                                                OK
    testCwd                                                     OK
    testEcho                                                    OK
    testEnv                                                     OK

[etc...]

Comment 1 Fedora End Of Life 2013-12-21 14:17:52 UTC
This message is a reminder that Fedora 18 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 18. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as WONTFIX if it remains open with a Fedora 
'version' of '18'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version prior to Fedora 18's end of life.

Thank you for reporting this issue and we are sorry that we may not be 
able to fix it before Fedora 18 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior to Fedora 18's end of life.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 2 David Gibson 2013-12-22 22:21:18 UTC
This bug is still present in Fedora 20, updating version.

Comment 3 Fedora End Of Life 2015-05-29 09:10:08 UTC
This message is a reminder that Fedora 20 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 20. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as EOL if it remains open with a Fedora  'version'
of '20'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 20 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 4 David Gibson 2015-06-01 00:47:09 UTC
I've retested this on Fedora 22.  python-rhev no longer completely breaks nosetests for other packages, but it does introduce a warning for other packages:

Using vdsm as the example above:

#### With python-rhev ####

*** Running tests.  To skip this step place NOSE_EXCLUDE=.* ***
*** into your environment.  Do not submit untested code!    ***
../tests/run_tests_local.sh crossImportsTests.py
/usr/lib/python2.7/site-packages/nose/plugins/manager.py:395: RuntimeWarning: Unable to load plugin deploader = rhev.test.loader:DepLoader: 1.2.3
  RuntimeWarning)
nose.config: INFO: Ignoring files matching ['^\\.', '^_', '^setup\\.py$']
CrossImportsTestCaseShould
    test_fail_when_importing_ext_mod                            ERROR

======================================================================
ERROR: test_fail_when_importing_ext_mod (crossImportsTests.CrossImportsTestCaseShould)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/dwg/src/vdsm/tests/monkeypatch.py", line 133, in wrapper
    return f(*args, **kw)
  File "/home/dwg/src/vdsm/tests/crossImportsTests.py", line 55, in test_fail_when_importing_ext_mod
    __import__(pkg_name, fromlist=mods)
  File "/home/dwg/src/vdsm/lib/vdsm/sslutils.py", line 25, in <module>
    from M2Crypto import SSL, X509, threading
ImportError: No module named M2Crypto

----------------------------------------------------------------------
Ran 1 test in 0.072s

#### Without python-rhev ####

*** Running tests.  To skip this step place NOSE_EXCLUDE=.* ***
*** into your environment.  Do not submit untested code!    ***
../tests/run_tests_local.sh crossImportsTests.py
nose.config: INFO: Ignoring files matching ['^\\.', '^_', '^setup\\.py$']
CrossImportsTestCaseShould
    test_fail_when_importing_ext_mod                            ERROR

======================================================================
ERROR: test_fail_when_importing_ext_mod (crossImportsTests.CrossImportsTestCaseShould)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/dwg/src/vdsm/tests/monkeypatch.py", line 133, in wrapper
    return f(*args, **kw)
  File "/home/dwg/src/vdsm/tests/crossImportsTests.py", line 55, in test_fail_when_importing_ext_mod
    __import__(pkg_name, fromlist=mods)
  File "/home/dwg/src/vdsm/lib/vdsm/sslutils.py", line 25, in <module>
    from M2Crypto import SSL, X509, threading
ImportError: No module named M2Crypto

----------------------------------------------------------------------
Ran 1 test in 0.050s

Comment 5 Fedora End Of Life 2016-07-19 20:27:30 UTC
Fedora 22 changed to end-of-life (EOL) status on 2016-07-19. Fedora 22 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.

Comment 6 David Gibson 2016-07-20 01:35:59 UTC
Appears to be fixed in Fedora 24.


Note You need to log in before you can comment on or make changes to this bug.