mirror of
https://github.com/virt-manager/virt-manager.git
synced 2025-01-13 13:17:57 +03:00
6954c6774a
If we try to run the testsuite on anything older than libvirt 3.1, it immediately throws an exception before processing any tests, due to choking on parsing drm bits from testdriver.xml. This global failure is only due to sloppy coding though. Turn all test cases that use testdriver.xml into skips in this case, so we can at least get some test coverage otherwise.
50 lines
1.8 KiB
Python
50 lines
1.8 KiB
Python
|
|
import logging
|
|
import traceback
|
|
import unittest
|
|
|
|
import virtinst
|
|
|
|
|
|
class CheckPropsTest(unittest.TestCase):
|
|
maxDiff = None
|
|
|
|
def testCheckProps(self):
|
|
# pylint: disable=protected-access
|
|
# Access to protected member, needed to unittest stuff
|
|
|
|
skip = False
|
|
try:
|
|
# Accessing an internal detail of unittest, but it's only
|
|
# to prevent incorrect output in the case that other tests
|
|
# failed or were skipped, which can give a false postive here
|
|
result = self._outcome.result
|
|
skip = bool(result.errors or result.failures or result.skipped)
|
|
except Exception:
|
|
logging.debug("unittest skip hack failed", exc_info=True)
|
|
if skip:
|
|
self.skipTest("skipping as other tests failed/skipped")
|
|
|
|
# If a certain environment variable is set, XMLBuilder tracks
|
|
# every property registered and every one of those that is
|
|
# actually altered. The test suite sets that env variable.
|
|
#
|
|
# testClearProps resets the 'set' list, and this test
|
|
# ensures that every property we know about has been touched
|
|
# by one of the above tests.
|
|
fail = [p for p in virtinst.xmlbuilder._allprops
|
|
if p not in virtinst.xmlbuilder._seenprops]
|
|
msg = None
|
|
try:
|
|
self.assertEqual([], fail)
|
|
except AssertionError:
|
|
msg = "".join(traceback.format_exc()) + "\n\n"
|
|
msg += ("This means that there are XML properties that are\n"
|
|
"untested in the test suite. This could be caused\n"
|
|
"by a previous test suite failure, or if you added\n"
|
|
"a new property and didn't extend the test suite.\n"
|
|
"Look into extending clitest.py and/or xmlparse.py.")
|
|
|
|
if msg:
|
|
self.fail(msg)
|