#!/usr/bin/env python3 # # Copyright (C) 2012 Richard Purdie # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. import os import sys, logging sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)), 'lib')) import unittest try: import bb except RuntimeError as exc: sys.exit(str(exc)) tests = ["bb.tests.codeparser", "bb.tests.cow", "bb.tests.data", "bb.tests.fetch", "bb.tests.parse", "bb.tests.utils"] for t in tests: t = '.'.join(t.split('.')[:3]) __import__(t) # Set-up logging class StdoutStreamHandler(logging.StreamHandler): """Special handler so that unittest is able to capture stdout""" def __init__(self): # Override __init__() because we don't want to set self.stream here logging.Handler.__init__(self) @property def stream(self): # We want to dynamically write wherever sys.stdout is pointing to return sys.stdout handler = StdoutStreamHandler() bb.logger.addHandler(handler) bb.logger.setLevel(logging.DEBUG) ENV_HELP = """\ Environment variables: BB_SKIP_NETTESTS set to 'yes' in order to skip tests using network connection BB_TMPDIR_NOCLEAN set to 'yes' to preserve test tmp directories """ class main(unittest.main): def _print_help(self, *args, **kwargs): super(main, self)._print_help(*args, **kwargs) print(ENV_HELP) if __name__ == '__main__': main(defaultTest=tests, buffer=True)