1#!/usr/bin/env python3 2# 3# Copyright (C) 2012 Richard Purdie 4# 5# SPDX-License-Identifier: GPL-2.0-only 6# 7 8import os 9import sys, logging 10import warnings 11warnings.simplefilter("default") 12sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)), 'lib')) 13 14import unittest 15try: 16 import bb 17 import hashserv 18 import prserv 19 import layerindexlib 20except RuntimeError as exc: 21 sys.exit(str(exc)) 22 23tests = ["bb.tests.codeparser", 24 "bb.tests.color", 25 "bb.tests.cooker", 26 "bb.tests.cow", 27 "bb.tests.data", 28 "bb.tests.event", 29 "bb.tests.fetch", 30 "bb.tests.parse", 31 "bb.tests.runqueue", 32 "bb.tests.siggen", 33 "bb.tests.utils", 34 "bb.tests.compression", 35 "hashserv.tests", 36 "prserv.tests", 37 "layerindexlib.tests.layerindexobj", 38 "layerindexlib.tests.restapi", 39 "layerindexlib.tests.cooker"] 40 41for t in tests: 42 t = '.'.join(t.split('.')[:3]) 43 __import__(t) 44 45 46# Set-up logging 47class StdoutStreamHandler(logging.StreamHandler): 48 """Special handler so that unittest is able to capture stdout""" 49 def __init__(self): 50 # Override __init__() because we don't want to set self.stream here 51 logging.Handler.__init__(self) 52 53 @property 54 def stream(self): 55 # We want to dynamically write wherever sys.stdout is pointing to 56 return sys.stdout 57 58 59handler = StdoutStreamHandler() 60bb.logger.addHandler(handler) 61bb.logger.setLevel(logging.DEBUG) 62 63 64ENV_HELP = """\ 65Environment variables: 66 BB_SKIP_NETTESTS set to 'yes' in order to skip tests using network 67 connection 68 BB_TMPDIR_NOCLEAN set to 'yes' to preserve test tmp directories 69""" 70 71class main(unittest.main): 72 def _print_help(self, *args, **kwargs): 73 super(main, self)._print_help(*args, **kwargs) 74 print(ENV_HELP) 75 76 77if __name__ == '__main__': 78 main(defaultTest=tests, buffer=True) 79