run 1.4 KB
Newer Older
1 2 3 4 5
#!/usr/bin/env python
# -*- coding: utf-8 -*-

__author__ = 'Lucas Meneghel Rodrigues <lmr@redhat.com>'

6 7
import os
import sys
8
import logging
9
import unittest
10

11 12 13
from avocado.core import data_dir


14
logger = logging.getLogger(__name__)
15 16
CHECK_TMP_DIRS = os.path.abspath(os.path.join(os.path.dirname(__file__),
                                              "check_tmp_dirs"))
17 18


19 20 21 22 23 24 25 26 27
def test_suite():
    suite = unittest.TestSuite()
    loader = unittest.TestLoader()
    selftests_dir = os.path.dirname(os.path.abspath(__file__))
    basedir = os.path.dirname(selftests_dir)
    for section in ('unit', 'functional', 'doc'):
        suite.addTests(loader.discover(start_dir=os.path.join(selftests_dir, section),
                                       top_level_dir=basedir))
    return suite
28

L
Lukáš Doktor 已提交
29

30 31 32 33 34 35 36 37
class MyResult(unittest.TextTestResult):
    def startTest(self, test):
        # Destroy the data_dir.get_tmpdir
        data_dir._tmp_tracker.unittest_refresh_dir_tracker()
        assert os.system(CHECK_TMP_DIRS) == 0, "Previous test left some dirs behind"
        return super(MyResult, self).startTest(test)


38
if __name__ == '__main__':
39 40
    runner = unittest.TextTestRunner(failfast=not os.environ.get("SELF_CHECK_CONTINUOUS"),
                                     verbosity=2, resultclass=MyResult)
41 42 43
    result = runner.run(test_suite())
    if result.failures or result.errors:
        sys.exit(1)