#!/usr/bin/env python # -*- coding: utf-8 -*- __author__ = 'Lucas Meneghel Rodrigues ' import os import sys import logging import unittest from avocado.core import data_dir logger = logging.getLogger(__name__) CHECK_TMP_DIRS = os.path.abspath(os.path.join(os.path.dirname(__file__), "check_tmp_dirs")) 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 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) if __name__ == '__main__': runner = unittest.TextTestRunner(failfast=not os.environ.get("SELF_CHECK_CONTINUOUS"), verbosity=2, resultclass=MyResult) result = runner.run(test_suite()) if result.failures or result.errors: sys.exit(1)