- Improved the GitHub python binding workflow: (#2072)
- Added fullMode input in workflow_dispatch
- Take decision whether to build either in debug or release mode and if to build for all python versions according to the commit message patterns
- Set proper artifact names
- Removed not needed steps
- Compacted some steps in order to leverage more the matrix feature
- Bumped cibuildwheel action to 2.22.0
- Run actual regress tests in place of sample scripts
- Specify optional test install in pyproject.toml with proper requirements
- Derive package version from git tags
- Add GENERATORS env var support in setup.py to specify cmake generator and minor refactoring
- Minor cleanup/refactoring for the regress test suite
- Marked some regress tests with skipIf to skip them in case of old python versions
- Marked some failing regress tests to be checked with skipIf
This commit is contained in:
@@ -1,27 +1,25 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import glob
|
||||
import logging
|
||||
import os
|
||||
import unittest
|
||||
|
||||
|
||||
class RegressTest(unittest.TestCase):
|
||||
"""Regress test case dummy class.
|
||||
"""
|
||||
""" Regress test case dummy class. """
|
||||
|
||||
|
||||
def main():
|
||||
unittest.main()
|
||||
|
||||
|
||||
def __setup_logger(name):
|
||||
"""Set up a unified logger for all tests.
|
||||
"""
|
||||
""" Set up a unified logger for all tests. """
|
||||
|
||||
instance = logging.getLogger(name)
|
||||
instance.propagate = False
|
||||
|
||||
handler = logging.StreamHandler()
|
||||
formatter = logging.Formatter('[%(levelname)s] %(message)s')
|
||||
|
||||
if not instance.hasHandlers():
|
||||
if not instance.handlers:
|
||||
handler = logging.StreamHandler()
|
||||
formatter = logging.Formatter('[%(levelname)s] %(message)s')
|
||||
handler.setFormatter(formatter)
|
||||
instance.addHandler(handler)
|
||||
|
||||
@@ -29,36 +27,4 @@ def __setup_logger(name):
|
||||
|
||||
|
||||
logger = __setup_logger('UnicornRegress')
|
||||
logger.setLevel(os.environ.get("UNICORN_DEBUG", "INFO").upper())
|
||||
|
||||
|
||||
def main():
|
||||
unittest.main()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
suite = unittest.TestSuite()
|
||||
|
||||
logger.info('starting discovery')
|
||||
|
||||
# Find all unittest type in this directory and run it.
|
||||
directory = os.path.dirname(__file__) or '.'
|
||||
pyfiles = glob.glob(directory + '/*.py')
|
||||
modules = [os.path.splitext(os.path.basename(f))[0] for f in pyfiles if os.path.isfile(f) and f != __file__]
|
||||
|
||||
logger.info('%d test modules found', len(modules))
|
||||
|
||||
for mname in modules:
|
||||
try:
|
||||
module = __import__(mname)
|
||||
except ImportError as ex:
|
||||
logger.error('could not load %s: %s is missing', mname, ex.name)
|
||||
else:
|
||||
tests = unittest.defaultTestLoader.loadTestsFromModule(module)
|
||||
suite.addTests(tests)
|
||||
|
||||
logger.debug('found %d test cases in %s', tests.countTestCases(), mname)
|
||||
|
||||
logger.info('%d test cases were added', suite.countTestCases())
|
||||
|
||||
unittest.TextTestRunner().run(suite)
|
||||
logger.setLevel((os.getenv('REGRESS_LOG_LEVEL') or 'INFO').upper())
|
||||
|
||||
Reference in New Issue
Block a user