blob: cfa7ac5391ba6c9ece9bd53fc45677798cbee8c5 [file] [log] [blame]
rjw1f884582022-01-06 17:20:42 +08001#!/usr/bin/env python3
2#
3# Copyright (C) 2012 Richard Purdie
4#
5# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License version 2 as
7# published by the Free Software Foundation.
8#
9# This program is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12# GNU General Public License for more details.
13#
14# You should have received a copy of the GNU General Public License along
15# with this program; if not, write to the Free Software Foundation, Inc.,
16# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17
18import os
19import sys, logging
20sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)), 'lib'))
21
22import unittest
23try:
24 import bb
25 import layerindexlib
26except RuntimeError as exc:
27 sys.exit(str(exc))
28
29tests = ["bb.tests.codeparser",
30 "bb.tests.cooker",
31 "bb.tests.cow",
32 "bb.tests.data",
33 "bb.tests.event",
34 "bb.tests.fetch",
35 "bb.tests.parse",
36 "bb.tests.utils",
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)