diff --git a/optional_plugins/runner_remote/tests/test_remote.py b/optional_plugins/runner_remote/tests/test_remote.py index aeaf66b01618a4eab1acb9d0548f7e5069b152b8..80ccac34d47cb81bcd283c0a359273157160e19f 100644 --- a/optional_plugins/runner_remote/tests/test_remote.py +++ b/optional_plugins/runner_remote/tests/test_remote.py @@ -8,8 +8,11 @@ import unittest.mock from avocado.core.job import Job from avocado.core import exit_codes, version from avocado.utils import process + import avocado_runner_remote +from selftests import temp_dir_prefix + JSON_RESULTS = ('Something other than json\n' '{"tests": [{"id": "1-sleeptest;0",' @@ -28,6 +31,10 @@ class RemoteTestRunnerTest(unittest.TestCase): """ Tests RemoteTestRunner """ + def setUp(self): + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) + def test_run_suite(self): """ Test RemoteTestRunner.run_suite() @@ -62,12 +69,11 @@ class RemoteTestRunnerTest(unittest.TestCase): env_keep=None, reference=['/tests/sleeptest.py', '/tests/other/test', - 'passtest.py']) + 'passtest.py'], + keep_tmp='on', + base_logdir=self.tmpdir) - job = None - try: - job = Job(job_args) - job.setup() + with Job(job_args) as job: runner = avocado_runner_remote.RemoteTestRunner(job, job.result) return_value = (True, (version.MAJOR, version.MINOR)) runner.check_remote_avocado = unittest.mock.Mock(return_value=return_value) @@ -91,40 +97,36 @@ class RemoteTestRunnerTest(unittest.TestCase): with unittest.mock.patch('avocado_runner_remote.os.remove'): runner.run_suite(None, None, 61) - # The job was created with dry_run so it should have a zeroed id - self.assertEqual(job.result.job_unique_id, '0' * 40) - self.assertEqual(job.result.tests_run, 1) - self.assertEqual(job.result.passed, 1) - cmd_line = ('avocado run --force-job-id ' - '0000000000000000000000000000000000000000 --json - ' - '--archive /tests/sleeptest.py /tests/other/test ' - 'passtest.py --mux-yaml ~/avocado/tests/foo.yaml ' - '~/avocado/tests/bar/baz.yaml --dry-run --filter-' - 'by-tags -foo --filter-by-tags -bar') - runner.remote.run.assert_called_with(cmd_line, - ignore_status=True, - timeout=61) - finally: - if job: - shutil.rmtree(job.args.base_logdir) + # The job was created with dry_run so it should have a zeroed id + self.assertEqual(job.result.job_unique_id, '0' * 40) + self.assertEqual(job.result.tests_run, 1) + self.assertEqual(job.result.passed, 1) + cmd_line = ('avocado run --force-job-id ' + '0000000000000000000000000000000000000000 --json - ' + '--archive /tests/sleeptest.py /tests/other/test ' + 'passtest.py --mux-yaml ~/avocado/tests/foo.yaml ' + '~/avocado/tests/bar/baz.yaml --dry-run --filter-' + 'by-tags -foo --filter-by-tags -bar') + runner.remote.run.assert_called_with(cmd_line, + ignore_status=True, + timeout=61) def test_run_replay_remotefail(self): """ Runs a replay job using remote plugin (not supported). """ - tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) cmd_line = ('avocado run passtest.py ' '-m examples/tests/sleeptest.py.data/sleeptest.yaml ' - '--job-results-dir %s --sysinfo=off --json -' % tmpdir) + '--job-results-dir %s --sysinfo=off --json -' % self.tmpdir) result = process.run(cmd_line, ignore_status=True) - jobdir = ''.join(glob.glob(os.path.join(tmpdir, 'job-*'))) + jobdir = ''.join(glob.glob(os.path.join(self.tmpdir, 'job-*'))) idfile = ''.join(os.path.join(jobdir, 'id')) with open(idfile, 'r') as f: jobid = f.read().strip('\n') cmd_line = ('avocado run --replay %s --remote-hostname ' - 'localhost --job-results-dir %s --sysinfo=off' % (jobid, tmpdir)) + 'localhost --job-results-dir %s --sysinfo=off' % (jobid, self.tmpdir)) expected_rc = exit_codes.AVOCADO_FAIL result = process.run(cmd_line, ignore_status=True) @@ -135,7 +137,12 @@ class RemoteTestRunnerTest(unittest.TestCase): msg = b"Currently we don't replay jobs in remote hosts." self.assertIn(msg, result.stderr) - shutil.rmtree(tmpdir) + def tearDown(self): + try: + shutil.rmtree(self.tmpdir) + # may have been clean up already on job.cleanup() + except FileNotFoundError: + pass if __name__ == '__main__': diff --git a/optional_plugins/runner_vm/tests/test_vm.py b/optional_plugins/runner_vm/tests/test_vm.py index da8f5c11fa91c11e03439a1d01be526690197712..9e7acb48146cfc15214fbda04e0cfe4652ea88db 100644 --- a/optional_plugins/runner_vm/tests/test_vm.py +++ b/optional_plugins/runner_vm/tests/test_vm.py @@ -1,10 +1,14 @@ import argparse import shutil +import tempfile import unittest.mock from avocado.core.job import Job + import avocado_runner_vm +from selftests import temp_dir_prefix + class _FakeVM(avocado_runner_vm.VM): @@ -24,6 +28,10 @@ class VMTestRunnerSetup(unittest.TestCase): """ Tests the VMTestRunner setup() method """ + def setUp(self): + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) + def test_setup(self): mock_vm = _FakeVM() mock_vm.start = unittest.mock.Mock(return_value=True) @@ -45,11 +53,10 @@ class VMTestRunnerSetup(unittest.TestCase): '/tests/other/test', 'passtest.py'], dry_run=True, - env_keep=None) - job = None - try: - job = Job(job_args) - job.setup() + env_keep=None, + keep_tmp='on', + base_logdir=self.tmpdir) + with Job(job_args) as job: with unittest.mock.patch('avocado_runner_vm.vm_connect', return_value=mock_vm): # VMTestRunner() @@ -60,9 +67,13 @@ class VMTestRunnerSetup(unittest.TestCase): mock_vm.create_snapshot.assert_called_once_with() mock_vm.stop.assert_called_once_with() mock_vm.restore_snapshot.assert_called_once_with() - finally: - if job: - shutil.rmtree(job.args.base_logdir) + + def tearDown(self): + try: + shutil.rmtree(self.tmpdir) + # may have been clean up already on job.cleanup() + except FileNotFoundError: + pass if __name__ == '__main__': diff --git a/selftests/__init__.py b/selftests/__init__.py index 7a43ab61ceb208ce6c49f4586d0c9cf3426d75fa..82494d0ecf885f0f738c4a8825b4bec4b4eea605 100644 --- a/selftests/__init__.py +++ b/selftests/__init__.py @@ -44,6 +44,14 @@ def setup_avocado_loggers(): logger.handlers.append(logging.NullHandler()) +def temp_dir_prefix(module_name, klass, method): + """ + Returns a standard name for the temp dir prefix used by the tests + """ + fmt = 'avocado__%s__%s__%s__' + return fmt % (module_name, klass.__class__.__name__, method) + + #: The plugin module names and directories under optional_plugins PLUGINS = {'varianter_yaml_to_mux': 'avocado-framework-plugin-varianter-yaml-to-mux', 'runner_remote': 'avocado-framework-plugin-runner-remote', diff --git a/selftests/functional/test_basic.py b/selftests/functional/test_basic.py index eb7f246e41c01cccbf5a92d3d3c7219f6b19c030..d756d8982761537f6137c66b864df6e84727a329 100644 --- a/selftests/functional/test_basic.py +++ b/selftests/functional/test_basic.py @@ -27,18 +27,9 @@ from avocado.utils import process from avocado.utils import script from avocado.utils import path as utils_path -from .. import AVOCADO, BASEDIR, python_module_available +from .. import AVOCADO, BASEDIR, python_module_available, temp_dir_prefix -LOCAL_IMPORT_TEST_CONTENTS = ''' -from avocado import Test -from mylib import hello - -class LocalImportTest(Test): - def test(self): - self.log.info(hello()) -''' - UNSUPPORTED_STATUS_TEST_CONTENTS = ''' from avocado import Test @@ -150,7 +141,8 @@ SLEEP_BINARY = probe_binary('sleep') class RunnerOperationTest(unittest.TestCase): def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) os.chdir(BASEDIR) def test_show_version(self): @@ -237,18 +229,22 @@ class RunnerOperationTest(unittest.TestCase): "Avocado did not return rc %d:\n%s" % (expected_rc, result)) def test_runner_test_with_local_imports(self): - mylib = script.TemporaryScript( - 'mylib.py', - "def hello():\n return 'Hello world'", - 'avocado_simpletest_functional') - mylib.save() - mytest = script.Script( - os.path.join(os.path.dirname(mylib.path), 'test_local_imports.py'), - LOCAL_IMPORT_TEST_CONTENTS) - mytest.save() - cmd_line = ("%s run --sysinfo=off --job-results-dir %s " - "%s" % (AVOCADO, self.tmpdir, mytest)) - process.run(cmd_line) + prefix = temp_dir_prefix(__name__, self, + 'test_runner_test_with_local_imports') + libdir = tempfile.mkdtemp(prefix=prefix) + with script.Script(os.path.join(libdir, 'mylib.py'), + "def hello():\n return 'Hello world'"): + with script.Script( + os.path.join(libdir, 'test_local_imports.py'), + ('from avocado import Test\n' + 'from mylib import hello\n' + 'class LocalImportTest(Test):\n' + ' def test(self):\n' + ' self.log.info(hello())\n')) as mytest: + cmd_line = ("%s run --sysinfo=off --job-results-dir %s " + "%s" % (AVOCADO, self.tmpdir, mytest)) + process.run(cmd_line) + shutil.rmtree(libdir) def test_unsupported_status(self): with script.TemporaryScript("fake_status.py", @@ -593,7 +589,8 @@ class RunnerOperationTest(unittest.TestCase): class RunnerHumanOutputTest(unittest.TestCase): def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) os.chdir(BASEDIR) def test_output_pass(self): @@ -681,7 +678,8 @@ class RunnerHumanOutputTest(unittest.TestCase): class RunnerSimpleTest(unittest.TestCase): def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) self.pass_script = script.TemporaryScript( u'\u00e1 \u00e9 \u00ed \u00f3 \u00fa', "#!/bin/sh\ntrue", @@ -890,7 +888,8 @@ class RunnerSimpleTest(unittest.TestCase): class RunnerSimpleTestStatus(unittest.TestCase): def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) self.config_file = script.TemporaryScript('avocado.conf', "[simpletests.status]\n" @@ -950,7 +949,8 @@ class RunnerSimpleTestStatus(unittest.TestCase): class ExternalRunnerTest(unittest.TestCase): def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) self.pass_script = script.TemporaryScript( 'pass', "exit 0", @@ -1030,7 +1030,8 @@ class ExternalRunnerTest(unittest.TestCase): class AbsPluginsTest: def setUp(self): - self.base_outputdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.base_outputdir = tempfile.mkdtemp(prefix=prefix) os.chdir(BASEDIR) def tearDown(self): @@ -1236,7 +1237,8 @@ class PluginsXunitTest(AbsPluginsTest, unittest.TestCase): @unittest.skipUnless(SCHEMA_CAPABLE, 'Unable to validate schema due to missing lxml.etree library') def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) junit_xsd = os.path.join(os.path.dirname(__file__), os.path.pardir, ".data", 'jenkins-junit.xsd') self.junit = os.path.abspath(junit_xsd) @@ -1322,7 +1324,8 @@ class ParseJSONError(Exception): class PluginsJSONTest(AbsPluginsTest, unittest.TestCase): def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) super(PluginsJSONTest, self).setUp() def run_and_check(self, testname, e_rc, e_ntests, e_nerrors, diff --git a/selftests/functional/test_export_variables.py b/selftests/functional/test_export_variables.py index c25af03c2f3987acafa38464461ed987722133d7..4c1dfebbcfe6a22fdaa2400e03558b4f481e7e6c 100644 --- a/selftests/functional/test_export_variables.py +++ b/selftests/functional/test_export_variables.py @@ -8,7 +8,7 @@ from avocado.core import exit_codes from avocado.utils import process from avocado.utils import script -from .. import AVOCADO, BASEDIR +from .. import AVOCADO, BASEDIR, temp_dir_prefix SCRIPT_CONTENT = """#!/bin/sh echo "Avocado Version: $AVOCADO_VERSION" @@ -32,7 +32,8 @@ test "$AVOCADO_VERSION" = "{version}" -a \ class EnvironmentVariablesTest(unittest.TestCase): def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) self.script = script.TemporaryScript( 'version.sh', SCRIPT_CONTENT, diff --git a/selftests/functional/test_gdb.py b/selftests/functional/test_gdb.py index a47381875b076928cead02a905a670366629f28e..e62fb4ae1f75cb2d2eb9b562d5eca382911af26e 100644 --- a/selftests/functional/test_gdb.py +++ b/selftests/functional/test_gdb.py @@ -5,13 +5,14 @@ import unittest from avocado.utils import process -from .. import AVOCADO, BASEDIR +from .. import AVOCADO, BASEDIR, temp_dir_prefix class GDBPluginTest(unittest.TestCase): def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) def test_gdb_prerun_commands(self): os.chdir(BASEDIR) diff --git a/selftests/functional/test_getdata.py b/selftests/functional/test_getdata.py index 3afd0a79a4ec743ec44b2d5d5f6a33de76843624..c16f695619a8ebc333e8f56e5a953ee68e58f90e 100644 --- a/selftests/functional/test_getdata.py +++ b/selftests/functional/test_getdata.py @@ -6,14 +6,15 @@ import unittest from avocado.core import exit_codes from avocado.utils import process -from .. import AVOCADO, BASEDIR +from .. import AVOCADO, BASEDIR, temp_dir_prefix class GetData(unittest.TestCase): def setUp(self): os.chdir(BASEDIR) - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) def test(self): test_path = os.path.join(BASEDIR, "selftests", ".data", "get_data.py") diff --git a/selftests/functional/test_interrupt.py b/selftests/functional/test_interrupt.py index 23a3b0596645cdb4caa8d68bb4de28dedcaab114..a461bf498674121e48fc875781898673fe3fbfb8 100644 --- a/selftests/functional/test_interrupt.py +++ b/selftests/functional/test_interrupt.py @@ -14,7 +14,7 @@ from avocado.utils import wait from avocado.utils import script from avocado.utils import data_factory -from .. import AVOCADO, BASEDIR +from .. import AVOCADO, BASEDIR, temp_dir_prefix # What is commonly known as "0755" or "u=rwx,g=rx,o=rx" DEFAULT_MODE = (stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | @@ -97,7 +97,8 @@ class InterruptTest(unittest.TestCase): return len(test_processes) == 0 def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) self.test_module = None @unittest.skipIf(int(os.environ.get("AVOCADO_CHECK_LEVEL", 0)) < 2, diff --git a/selftests/functional/test_job_timeout.py b/selftests/functional/test_job_timeout.py index 18e2729227d60105a15a88cb31ed4e522eb0520c..a9746df906c02956e3e7d611a43d52e79fe3a1da 100644 --- a/selftests/functional/test_job_timeout.py +++ b/selftests/functional/test_job_timeout.py @@ -10,7 +10,7 @@ from avocado.utils import genio from avocado.utils import process from avocado.utils import script -from .. import AVOCADO, BASEDIR +from .. import AVOCADO, BASEDIR, temp_dir_prefix SCRIPT_CONTENT = """#!/bin/bash @@ -48,7 +48,8 @@ class JobTimeOutTest(unittest.TestCase): PYTHON_CONTENT, 'avocado_timeout_functional') self.py.save() - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) os.chdir(BASEDIR) def run_and_check(self, cmd_line, e_rc, e_ntests, e_nerrors, e_nfailures, diff --git a/selftests/functional/test_journal.py b/selftests/functional/test_journal.py index ea1263b5aea5ce43a5e9bde90670c2d3d28b2802..dc81ca45d2dd074406593ac5172ce3fc17d99ee0 100644 --- a/selftests/functional/test_journal.py +++ b/selftests/functional/test_journal.py @@ -8,14 +8,15 @@ import unittest from avocado.core import exit_codes from avocado.utils import process -from .. import AVOCADO, BASEDIR +from .. import AVOCADO, BASEDIR, temp_dir_prefix class JournalPluginTests(unittest.TestCase): def setUp(self): os.chdir(BASEDIR) - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) self.cmd_line = ('%s run --job-results-dir %s --sysinfo=off --json - ' '--journal examples/tests/passtest.py' % (AVOCADO, self.tmpdir)) diff --git a/selftests/functional/test_json_variants.py b/selftests/functional/test_json_variants.py index 0ff4580cbc159a43ee02d97f78d73e46b45c14a2..12b04fd30278d251ddae407e2b499961c7428b42 100644 --- a/selftests/functional/test_json_variants.py +++ b/selftests/functional/test_json_variants.py @@ -6,13 +6,14 @@ import unittest from avocado.utils import process -from .. import AVOCADO, BASEDIR +from .. import AVOCADO, BASEDIR, temp_dir_prefix class VariantsDumpLoadTests(unittest.TestCase): def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) self.variants_file = os.path.join(self.tmpdir, 'variants.json') os.chdir(BASEDIR) diff --git a/selftests/functional/test_loader.py b/selftests/functional/test_loader.py index 4a6337a8893b1e79279a8c91bf0440bf62006a7e..79bb1d8f25dd2524f0f0be2a240d6e8a439c6ee0 100644 --- a/selftests/functional/test_loader.py +++ b/selftests/functional/test_loader.py @@ -12,7 +12,7 @@ from avocado.core import exit_codes from avocado.utils import script from avocado.utils import process -from .. import AVOCADO, BASEDIR +from .. import AVOCADO, BASEDIR, temp_dir_prefix AVOCADO_TEST_OK = """#!/usr/bin/env python @@ -151,7 +151,8 @@ class LoaderTestFunctional(unittest.TestCase): def setUp(self): os.chdir(BASEDIR) - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) def _test(self, name, content, exp_str, mode=MODE_0664, count=1): test_script = script.TemporaryScript(name, content, diff --git a/selftests/functional/test_lv_utils.py b/selftests/functional/test_lv_utils.py index 03fec8de940dba97a70f4b32ef0ae58c9a35e343..a012e08bc5a4ddf7f43f913f4e2d5fe2b6da66c6 100644 --- a/selftests/functional/test_lv_utils.py +++ b/selftests/functional/test_lv_utils.py @@ -16,6 +16,8 @@ from avocado.utils import process from avocado.utils import lv_utils from avocado.utils import linux_modules +from .. import temp_dir_prefix + class LVUtilsTest(unittest.TestCase): @@ -30,7 +32,8 @@ class LVUtilsTest(unittest.TestCase): @unittest.skipIf(not process.can_sudo(), "This test requires root or " "passwordless sudo configured.") def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) self.vgs = [] def tearDown(self): diff --git a/selftests/functional/test_output.py b/selftests/functional/test_output.py index 7a8b1754439a9dbe32e156d8776e99ad4f3d00a6..6c3e33b5da70dcd8d754eb959a66d9749a9e641e 100644 --- a/selftests/functional/test_output.py +++ b/selftests/functional/test_output.py @@ -13,7 +13,7 @@ from avocado.utils import process from avocado.utils import script from avocado.utils import path as utils_path -from .. import AVOCADO, BASEDIR +from .. import AVOCADO, BASEDIR, temp_dir_prefix # AVOCADO may contain more than a single command, as it can be @@ -133,7 +133,8 @@ def missing_binary(binary): class OutputTest(unittest.TestCase): def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) os.chdir(BASEDIR) @unittest.skipIf(missing_binary('cc'), @@ -270,7 +271,8 @@ class OutputTest(unittest.TestCase): class OutputPluginTest(unittest.TestCase): def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) os.chdir(BASEDIR) def check_output_files(self, debug_log): @@ -510,11 +512,11 @@ class OutputPluginTest(unittest.TestCase): @unittest.skipIf(perl_tap_parser_uncapable(), "Uncapable of using Perl TAP::Parser library") def test_tap_parser(self): - perl_script = script.TemporaryScript("tap_parser.pl", - PERL_TAP_PARSER_SNIPPET - % self.tmpdir) - perl_script.save() - process.run("perl %s" % perl_script) + with script.TemporaryScript( + "tap_parser.pl", + PERL_TAP_PARSER_SNIPPET % self.tmpdir, + self.tmpdir) as perl_script: + process.run("perl %s" % perl_script) def test_tap_totaltests(self): cmd_line = ("%s run passtest.py " diff --git a/selftests/functional/test_output_check.py b/selftests/functional/test_output_check.py index 7901c350301863cbc9128a8131f891424be4b9e5..1fc44d37b2472bb7ed0cd4f9c4761268cadc4710 100644 --- a/selftests/functional/test_output_check.py +++ b/selftests/functional/test_output_check.py @@ -8,7 +8,7 @@ from avocado.core import exit_codes from avocado.utils import process from avocado.utils import script -from .. import AVOCADO, BASEDIR +from .. import AVOCADO, BASEDIR, temp_dir_prefix STDOUT = b"Hello, \xc4\x9b\xc5\xa1\xc4\x8d\xc5\x99\xc5\xbe\xc3\xbd\xc3\xa1\xc3\xad\xc3\xa9!" @@ -18,7 +18,8 @@ STDERR = b"Hello, stderr!" class RunnerSimpleTest(unittest.TestCase): def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) content = b"#!/bin/sh\n" content += b"echo \"" + STDOUT + b"\"\n" content += b"echo \"" + STDERR + b"\" >&2\n" diff --git a/selftests/functional/test_plugin_diff.py b/selftests/functional/test_plugin_diff.py index f982f29826fb138d389d1eb01d676331cb1baf50..cbf304666fa9ef925bdd041eb81518819039f9e7 100644 --- a/selftests/functional/test_plugin_diff.py +++ b/selftests/functional/test_plugin_diff.py @@ -9,13 +9,14 @@ from avocado.core import exit_codes from avocado.utils import process from avocado.utils import script -from .. import AVOCADO, BASEDIR +from .. import AVOCADO, BASEDIR, temp_dir_prefix class DiffTests(unittest.TestCase): def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) test = script.make_script(os.path.join(self.tmpdir, 'test'), 'exit 0') cmd_line = ('%s run %s ' '--external-runner /bin/bash ' @@ -25,7 +26,7 @@ class DiffTests(unittest.TestCase): self.run_and_check(cmd_line, expected_rc) self.jobdir = ''.join(glob.glob(os.path.join(self.tmpdir, 'job-*'))) - self.tmpdir2 = tempfile.mkdtemp(prefix='avocado_' + __name__) + self.tmpdir2 = tempfile.mkdtemp(prefix=prefix) cmd_line = ('%s run %s ' '--external-runner /bin/bash ' '--job-results-dir %s --sysinfo=off --json -' % diff --git a/selftests/functional/test_plugin_jobscripts.py b/selftests/functional/test_plugin_jobscripts.py index b31a3de846c5639ce7781ae39a7cb8b6714c103e..6f6bebc84955804ba75922f13c8f5946e800e575 100644 --- a/selftests/functional/test_plugin_jobscripts.py +++ b/selftests/functional/test_plugin_jobscripts.py @@ -7,7 +7,7 @@ from avocado.core import exit_codes from avocado.utils import process from avocado.utils import script -from .. import AVOCADO, BASEDIR +from .. import AVOCADO, BASEDIR, temp_dir_prefix SCRIPT_PRE_TOUCH = """#!/bin/sh -e @@ -42,7 +42,8 @@ warn_non_zero_status = True""" class JobScriptsTest(unittest.TestCase): def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix) self.pre_dir = os.path.join(self.tmpdir, 'pre.d') os.mkdir(self.pre_dir) self.post_dir = os.path.join(self.tmpdir, 'post.d') diff --git a/selftests/functional/test_replay_basic.py b/selftests/functional/test_replay_basic.py index edca5c4d2cee63390bfd7ee583b7300ebde60a57..11e536e59d7bf56233c355d4a1af832dc1f0a50f 100644 --- a/selftests/functional/test_replay_basic.py +++ b/selftests/functional/test_replay_basic.py @@ -7,13 +7,14 @@ import unittest from avocado.core import exit_codes from avocado.utils import process -from .. import AVOCADO, BASEDIR +from .. import AVOCADO, BASEDIR, temp_dir_prefix class ReplayTests(unittest.TestCase): def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix) cmd_line = ('%s run passtest.py ' '-m examples/tests/sleeptest.py.data/sleeptest.yaml ' '--job-results-dir %s --sysinfo=off --json -' diff --git a/selftests/functional/test_replay_external_runner.py b/selftests/functional/test_replay_external_runner.py index f5ae6cf5ddcfa057374423f3b600426ff9692e0b..12680640407b903946c67bb0c4b127d41f5d46f1 100644 --- a/selftests/functional/test_replay_external_runner.py +++ b/selftests/functional/test_replay_external_runner.py @@ -8,13 +8,14 @@ from avocado.core import exit_codes from avocado.utils import process from avocado.utils import script -from .. import AVOCADO, BASEDIR +from .. import AVOCADO, BASEDIR, temp_dir_prefix class ReplayExtRunnerTests(unittest.TestCase): def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix) test = script.make_script(os.path.join(self.tmpdir, 'test'), 'exit 0') cmd_line = ('%s run %s ' '-m examples/tests/sleeptest.py.data/sleeptest.yaml ' diff --git a/selftests/functional/test_replay_failfast.py b/selftests/functional/test_replay_failfast.py index 4de7b3a70797581563a8b56f9cd46b0c602c02c9..5e7676dc531584bbd12f6ee0a181f3c0c87e5477 100644 --- a/selftests/functional/test_replay_failfast.py +++ b/selftests/functional/test_replay_failfast.py @@ -7,13 +7,14 @@ import unittest from avocado.core import exit_codes from avocado.utils import process -from .. import AVOCADO, BASEDIR +from .. import AVOCADO, BASEDIR, temp_dir_prefix class ReplayFailfastTests(unittest.TestCase): def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) cmd_line = ('%s run passtest.py failtest.py passtest.py ' '--failfast on --job-results-dir %s --sysinfo=off --json -' % (AVOCADO, self.tmpdir)) diff --git a/selftests/functional/test_skiptests.py b/selftests/functional/test_skiptests.py index e68c7ab388f589bc3f7dc72444d4cea6dd53a9bb..660ab3cc61693bb84e7f035fe23fea47436fdf96 100644 --- a/selftests/functional/test_skiptests.py +++ b/selftests/functional/test_skiptests.py @@ -9,7 +9,7 @@ from avocado.utils import genio from avocado.utils import process from avocado.utils import script -from .. import AVOCADO, BASEDIR +from .. import AVOCADO, BASEDIR, temp_dir_prefix AVOCADO_TEST_SKIP_DECORATORS = """ import avocado @@ -79,7 +79,8 @@ class TestSkipDecorators(unittest.TestCase): def setUp(self): os.chdir(BASEDIR) - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) test_path = os.path.join(self.tmpdir, 'test_skip_decorators.py') self.test_module = script.Script(test_path, diff --git a/selftests/functional/test_statuses.py b/selftests/functional/test_statuses.py index f5d9626c7b81b31252f06255d4fb13dc1ac8a70e..a04d4b4d46946a3d5bd6b256e9ab49bc1b1c89b8 100644 --- a/selftests/functional/test_statuses.py +++ b/selftests/functional/test_statuses.py @@ -7,7 +7,7 @@ import unittest from avocado.utils import genio from avocado.utils import process -from .. import AVOCADO, BASEDIR +from .. import AVOCADO, BASEDIR, temp_dir_prefix ALL_MESSAGES = ['setup pre', @@ -130,7 +130,8 @@ EXPECTED_RESULTS = {'SkipSetup.test': ('SKIP', class TestStatuses(unittest.TestCase): def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) test_file = os.path.abspath(os.path.join(os.path.dirname(__file__), os.path.pardir, ".data", diff --git a/selftests/functional/test_streams.py b/selftests/functional/test_streams.py index 4eb53fe9297b7b47f792090ad0a60c3e78192efa..7e019d0a21d01bb98bd426b19cf940acab60244d 100644 --- a/selftests/functional/test_streams.py +++ b/selftests/functional/test_streams.py @@ -7,13 +7,14 @@ import unittest from avocado.core import exit_codes from avocado.utils import process -from .. import AVOCADO, BASEDIR +from .. import AVOCADO, BASEDIR, temp_dir_prefix class StreamsTest(unittest.TestCase): def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) os.chdir(BASEDIR) def test_app_info_stdout(self): diff --git a/selftests/functional/test_sysinfo.py b/selftests/functional/test_sysinfo.py index c0bd7e5474bb01170c5cb3d1f6bb27c55fe8775b..f73993fc81a37b8f1ee740cfcd5daa55dd7e14d1 100644 --- a/selftests/functional/test_sysinfo.py +++ b/selftests/functional/test_sysinfo.py @@ -7,7 +7,7 @@ from avocado.core import exit_codes from avocado.utils import process from avocado.utils import script -from .. import AVOCADO, BASEDIR +from .. import AVOCADO, BASEDIR, temp_dir_prefix COMMANDS_TIMEOUT_CONF = """ @@ -22,7 +22,8 @@ commands = %s class SysInfoTest(unittest.TestCase): def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) def test_sysinfo_enabled(self): os.chdir(BASEDIR) diff --git a/selftests/functional/test_teststmpdir.py b/selftests/functional/test_teststmpdir.py index 8932954a9b03083705dd8774d02ee2168d528a12..adc356bf4b6a6158fe8c39ff633d940554348258 100644 --- a/selftests/functional/test_teststmpdir.py +++ b/selftests/functional/test_teststmpdir.py @@ -8,7 +8,7 @@ from avocado.core import test from avocado.utils import process from avocado.utils import script -from .. import AVOCADO, BASEDIR +from .. import AVOCADO, BASEDIR, temp_dir_prefix INSTRUMENTED_SCRIPT = """import os @@ -36,7 +36,8 @@ fi class TestsTmpDirTests(unittest.TestCase): def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) self.simple_test = script.TemporaryScript( 'test_simple.sh', SIMPLE_SCRIPT) diff --git a/selftests/functional/test_unittest_compat.py b/selftests/functional/test_unittest_compat.py index 1b3f508c1364ca863f76eeb6bcaf1040cfaf442a..9b619a7ef9d16b01fdecc05cd17249414838a868 100644 --- a/selftests/functional/test_unittest_compat.py +++ b/selftests/functional/test_unittest_compat.py @@ -7,7 +7,7 @@ import unittest from avocado.utils import script from avocado.utils import process -from .. import BASEDIR +from .. import BASEDIR, temp_dir_prefix UNITTEST_GOOD = """from avocado import Test @@ -62,7 +62,8 @@ if __name__ == '__main__': class UnittestCompat(unittest.TestCase): def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix="avocado_" + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) self.original_pypath = os.environ.get('PYTHONPATH') if self.original_pypath is not None: os.environ['PYTHONPATH'] = '%s:%s' % ( diff --git a/selftests/functional/test_utils.py b/selftests/functional/test_utils.py index bcd9dad19ad0cbe609dfd1133e16894dc2e5a75d..6c8f27cada778f5c1098fe022bcaca449112b323 100644 --- a/selftests/functional/test_utils.py +++ b/selftests/functional/test_utils.py @@ -12,6 +12,8 @@ from avocado.utils.filelock import FileLock from avocado.utils.stacktrace import prepare_exc_info from avocado.utils import process +from .. import temp_dir_prefix + # What is commonly known as "0775" or "u=rwx,g=rwx,o=rx" DEFAULT_MODE = (stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | @@ -125,7 +127,8 @@ if __name__ == '__main__': class ProcessTest(unittest.TestCase): def setUp(self): - self.base_logdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.base_logdir = tempfile.mkdtemp(prefix=prefix) self.fake_vmstat = os.path.join(self.base_logdir, 'vmstat') with open(self.fake_vmstat, 'w') as fake_vmstat_obj: fake_vmstat_obj.write(FAKE_VMSTAT_CONTENTS) @@ -167,7 +170,8 @@ def file_lock_action(args): class FileLockTest(unittest.TestCase): def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) @unittest.skipIf(int(os.environ.get("AVOCADO_CHECK_LEVEL", 0)) < 2, "Skipping test that take a long time to run, are " diff --git a/selftests/functional/test_wrapper.py b/selftests/functional/test_wrapper.py index ceb058814f24d81d9c37ba89d16c5d9458422386..afe0890c50787e8a697024087a59eb023eb83b5f 100644 --- a/selftests/functional/test_wrapper.py +++ b/selftests/functional/test_wrapper.py @@ -8,7 +8,7 @@ from avocado.utils import process from avocado.utils import script from avocado.utils import path as utils_path -from .. import AVOCADO, BASEDIR +from .. import AVOCADO, BASEDIR, temp_dir_prefix SCRIPT_CONTENT = """#!/bin/bash @@ -32,7 +32,8 @@ def missing_binary(binary): class WrapperTest(unittest.TestCase): def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) self.tmpfile = tempfile.mktemp() self.script = script.TemporaryScript( 'success.sh', diff --git a/selftests/unit/test_archive.py b/selftests/unit/test_archive.py index 88f23964971e3267fbb93e0dfeabb35e4390ba36..d8d18298988eaff1afcd7f6254fcbe068efc184e 100644 --- a/selftests/unit/test_archive.py +++ b/selftests/unit/test_archive.py @@ -9,13 +9,14 @@ from avocado.utils import archive from avocado.utils import crypto from avocado.utils import data_factory -from .. import BASEDIR +from .. import BASEDIR, temp_dir_prefix class ArchiveTest(unittest.TestCase): def setUp(self): - self.basedir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.basedir = tempfile.mkdtemp(prefix=prefix) self.compressdir = tempfile.mkdtemp(dir=self.basedir) self.decompressdir = tempfile.mkdtemp(dir=self.basedir) self.sys_random = random.SystemRandom() diff --git a/selftests/unit/test_datadir.py b/selftests/unit/test_datadir.py index d478556114fe5ce30be8cb51fc5e1f95613db2f0..80aa8739b5f26d5c6352675fdf979f99db2b8b39 100644 --- a/selftests/unit/test_datadir.py +++ b/selftests/unit/test_datadir.py @@ -5,18 +5,20 @@ import unittest.mock from avocado.core import settings +from .. import temp_dir_prefix + class DataDirTest(unittest.TestCase): - @staticmethod - def _get_temporary_dirs_mapping_and_config(): + def _get_temporary_dirs_mapping_and_config(self): """ Creates a temporary bogus base data dir And returns a dictionary containing the temporary data dir paths and a the path to a configuration file contain those same settings """ - base_dir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + base_dir = tempfile.mkdtemp(prefix=prefix) test_dir = os.path.join(base_dir, 'tests') os.mkdir(test_dir) mapping = {'base_dir': base_dir, diff --git a/selftests/unit/test_job.py b/selftests/unit/test_job.py index 6af9b09e690ad2967e2e308652d4781721a75967..8b6f3520040f42492c022efd938276678f09a0ed 100644 --- a/selftests/unit/test_job.py +++ b/selftests/unit/test_job.py @@ -11,7 +11,7 @@ from avocado.core import job from avocado.core import test from avocado.utils import path as utils_path -from .. import setup_avocado_loggers +from .. import setup_avocado_loggers, temp_dir_prefix setup_avocado_loggers() @@ -22,7 +22,8 @@ class JobTest(unittest.TestCase): def setUp(self): self.job = None data_dir._tmp_tracker.unittest_refresh_dir_tracker() - self.tmpdir = tempfile.mkdtemp(prefix="avocado_" + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) @staticmethod def _find_simple_test_candidates(candidates=None): diff --git a/selftests/unit/test_jsonresult.py b/selftests/unit/test_jsonresult.py index b0ec7af7b49a05a77d888562558a997d0a43f206..ba3cebb42dca0e5fb998fdbefd56423106a4a4c0 100644 --- a/selftests/unit/test_jsonresult.py +++ b/selftests/unit/test_jsonresult.py @@ -10,7 +10,7 @@ from avocado.core import job from avocado.core.result import Result from avocado.plugins import jsonresult -from .. import setup_avocado_loggers +from .. import setup_avocado_loggers, temp_dir_prefix setup_avocado_loggers() @@ -33,7 +33,8 @@ class JSONResultTest(unittest.TestCase): pass self.tmpfile = tempfile.mkstemp() - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) args = argparse.Namespace(json_output=self.tmpfile[1], base_logdir=self.tmpdir) self.job = job.Job(args) diff --git a/selftests/unit/test_loader.py b/selftests/unit/test_loader.py index 48bdfc0fbf4c5c662aa7b113e9ba566f9f96fc3a..9e5db74239d94ba12ab154df833ff9a3930b1bf5 100644 --- a/selftests/unit/test_loader.py +++ b/selftests/unit/test_loader.py @@ -8,7 +8,7 @@ from avocado.core import test from avocado.core import loader from avocado.utils import script -from .. import setup_avocado_loggers +from .. import setup_avocado_loggers, temp_dir_prefix setup_avocado_loggers() @@ -231,7 +231,8 @@ class LoaderTest(unittest.TestCase): def setUp(self): self.loader = loader.FileLoader(None, {}) - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) def test_load_simple(self): simple_test = script.TemporaryScript('simpletest.sh', SIMPLE_TEST, @@ -295,29 +296,27 @@ class LoaderTest(unittest.TestCase): avocado_not_a_test.remove() def test_py_simple_test(self): - avocado_simple_test = script.TemporaryScript('simpletest.py', - PY_SIMPLE_TEST, - 'avocado_loader_unittest') - avocado_simple_test.save() - test_class, test_parameters = ( - self.loader.discover(avocado_simple_test.path, loader.DiscoverMode.ALL)[0]) - self.assertTrue(test_class == test.SimpleTest) - test_parameters['name'] = test.TestID(0, test_parameters['name']) - test_parameters['base_logdir'] = self.tmpdir - tc = test_class(**test_parameters) - tc.run_avocado() - avocado_simple_test.remove() + with script.TemporaryScript( + 'simpletest.py', + PY_SIMPLE_TEST, + 'avocado_loader_unittest') as avocado_simple_test: + test_class, test_parameters = ( + self.loader.discover(avocado_simple_test.path, loader.DiscoverMode.ALL)[0]) + self.assertTrue(test_class == test.SimpleTest) + test_parameters['name'] = test.TestID(0, test_parameters['name']) + test_parameters['base_logdir'] = self.tmpdir + tc = test_class(**test_parameters) + tc.run_avocado() def test_py_simple_test_notexec(self): - avocado_simple_test = script.TemporaryScript('simpletest.py', - PY_SIMPLE_TEST, - 'avocado_loader_unittest', - mode=DEFAULT_NON_EXEC_MODE) - avocado_simple_test.save() - test_class, _ = self.loader.discover(avocado_simple_test.path, - loader.DiscoverMode.ALL)[0] + with script.TemporaryScript( + 'simpletest.py', + PY_SIMPLE_TEST, + 'avocado_loader_unittest', + mode=DEFAULT_NON_EXEC_MODE) as avocado_simple_test: + test_class, _ = self.loader.discover(avocado_simple_test.path, + loader.DiscoverMode.ALL)[0] self.assertTrue(test_class == loader.NotATest) - avocado_simple_test.remove() def test_multiple_methods(self): avocado_multiple_tests = script.TemporaryScript('multipletests.py', @@ -469,12 +468,11 @@ class LoaderTest(unittest.TestCase): self._check_discovery(exps, tests) def test_list_raising_exception(self): - simple_test = script.TemporaryScript('simpletest.py', PY_SIMPLE_TEST) - simple_test.save() - with unittest.mock.patch('avocado.core.loader.safeloader.find_avocado_tests') as _mock: - _mock.side_effect = BaseException() - tests = self.loader.discover(simple_test.path) - self.assertEqual(tests[0][1]["name"], simple_test.path) + with script.TemporaryScript('simpletest.py', PY_SIMPLE_TEST) as simple_test: + with unittest.mock.patch('avocado.core.loader.safeloader.find_avocado_tests') as _mock: + _mock.side_effect = BaseException() + tests = self.loader.discover(simple_test.path) + self.assertEqual(tests[0][1]["name"], simple_test.path) def tearDown(self): shutil.rmtree(self.tmpdir) diff --git a/selftests/unit/test_replay.py b/selftests/unit/test_replay.py index 4d09869fb869a023f3b9f8bb62dea3bb6332de7b..00a1e6bad50a8e61ba32b5ec2e5c6ffa27a35a26 100644 --- a/selftests/unit/test_replay.py +++ b/selftests/unit/test_replay.py @@ -6,7 +6,7 @@ import unittest from avocado.core import test from avocado.plugins import replay -from .. import setup_avocado_loggers +from .. import setup_avocado_loggers, temp_dir_prefix setup_avocado_loggers() @@ -19,7 +19,8 @@ class Replay(unittest.TestCase): """ def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) def tearDown(self): shutil.rmtree(self.tmpdir) diff --git a/selftests/unit/test_runner_queue.py b/selftests/unit/test_runner_queue.py index cb139230abc464002e4b89399e02ac9b7ee290fd..eb8c90180bd5eea361e2b34d5c3b5856f392532e 100644 --- a/selftests/unit/test_runner_queue.py +++ b/selftests/unit/test_runner_queue.py @@ -11,7 +11,7 @@ from avocado.core.result import Result from avocado.core.runner import TestRunner from avocado.core.tree import TreeNode -from .. import setup_avocado_loggers +from .. import setup_avocado_loggers, temp_dir_prefix setup_avocado_loggers() @@ -23,7 +23,8 @@ class TestRunnerQueue(unittest.TestCase): """ def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix="avocado_" + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) args = argparse.Namespace(base_logdir=self.tmpdir) self.job = Job(args) self.result = Result(self.job) diff --git a/selftests/unit/test_sysinfo.py b/selftests/unit/test_sysinfo.py index 6650d46eee23f62b0cfc2ce30a1adc190c360e92..76170c5b81ea2ce85d6ae9833074d09b474eb433 100644 --- a/selftests/unit/test_sysinfo.py +++ b/selftests/unit/test_sysinfo.py @@ -5,11 +5,14 @@ import unittest from avocado.core import sysinfo +from .. import temp_dir_prefix + class SysinfoTest(unittest.TestCase): def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix="sysinfo_unittest") + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) def test_loggables_equal(self): cmd1 = sysinfo.Command("ls -l") diff --git a/selftests/unit/test_test.py b/selftests/unit/test_test.py index 90d970971458cdfab7831cc3e3f1cea3f5c1f3c0..e9cc78f519ef7cb06fc995ff11d8adb7e9e830cc 100644 --- a/selftests/unit/test_test.py +++ b/selftests/unit/test_test.py @@ -6,7 +6,7 @@ import unittest.mock from avocado.core import test, exceptions from avocado.utils import astring, script -from .. import setup_avocado_loggers +from .. import setup_avocado_loggers, temp_dir_prefix setup_avocado_loggers() @@ -28,7 +28,8 @@ class TestClassTestUnit(unittest.TestCase): pass def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix="avocado_" + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) def _get_fake_filename_test(self, name): @@ -175,7 +176,8 @@ class TestClassTest(unittest.TestCase): self.assertTrue(variable) self.whiteboard = 'foo' - self.base_logdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.base_logdir = tempfile.mkdtemp(prefix=prefix) self.tst_instance_pass = AvocadoPass(base_logdir=self.base_logdir) self.tst_instance_pass.run_avocado() @@ -212,7 +214,8 @@ class TestClassTest(unittest.TestCase): class SimpleTestClassTest(unittest.TestCase): def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) self.script = None def test_simple_test_pass_status(self): @@ -248,7 +251,8 @@ class SimpleTestClassTest(unittest.TestCase): class MockingTest(unittest.TestCase): def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) def test_init_minimal_params(self): test.MockingTest(base_logdir=self.tmpdir) diff --git a/selftests/unit/test_utils_asset.py b/selftests/unit/test_utils_asset.py index 07ef41bfb0037b0574c77371d5ec328b79475509..378a4e59d53cf97601d44615111a1a26f2a8864d 100644 --- a/selftests/unit/test_utils_asset.py +++ b/selftests/unit/test_utils_asset.py @@ -6,7 +6,7 @@ import unittest from avocado.utils import asset from avocado.utils.filelock import FileLock -from .. import setup_avocado_loggers +from .. import setup_avocado_loggers, temp_dir_prefix setup_avocado_loggers() @@ -15,7 +15,8 @@ setup_avocado_loggers() class TestAsset(unittest.TestCase): def setUp(self): - self.basedir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.basedir = tempfile.mkdtemp(prefix=prefix) self.assetdir = tempfile.mkdtemp(dir=self.basedir) self.assetname = 'foo.tgz' self.assethash = '3a033a8938c1af56eeb793669db83bcbd0c17ea5' diff --git a/selftests/unit/test_utils_cloudinit.py b/selftests/unit/test_utils_cloudinit.py index da84b2280d4f5356de957d3189a244cafb429f60..655116554ed7088b171415991673d4c4aa340f05 100644 --- a/selftests/unit/test_utils_cloudinit.py +++ b/selftests/unit/test_utils_cloudinit.py @@ -10,7 +10,7 @@ from avocado.utils import iso9660 from avocado.utils import network from avocado.utils import data_factory -from .. import setup_avocado_loggers +from .. import setup_avocado_loggers, temp_dir_prefix setup_avocado_loggers() @@ -30,7 +30,8 @@ class CloudInit(unittest.TestCase): class CloudInitISO(unittest.TestCase): def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix="avocado_" + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) @unittest.skipUnless(has_iso_create_write(), "system lacks support for creating ISO images") diff --git a/selftests/unit/test_utils_filelock.py b/selftests/unit/test_utils_filelock.py index 054ebe7f4f98b603f9c18c3d85bbde6a9ed5c654..02cf5e01bc9b739ae257001da5bc18b8a66f850f 100644 --- a/selftests/unit/test_utils_filelock.py +++ b/selftests/unit/test_utils_filelock.py @@ -6,11 +6,14 @@ import unittest from avocado.utils.filelock import AlreadyLocked from avocado.utils.filelock import FileLock +from .. import temp_dir_prefix + class TestFileLock(unittest.TestCase): def setUp(self): - self.basedir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.basedir = tempfile.mkdtemp(prefix=prefix) self.filename = os.path.join(self.basedir, 'file.img') self.content = 'Foo bar' with open(self.filename, 'w') as f: diff --git a/selftests/unit/test_utils_genio.py b/selftests/unit/test_utils_genio.py index 8dc81bcd7e27905c2e3099cbc4aab7638f68d236..dc546273921e60c52f6bb0015b003b4e8a5da8f7 100644 --- a/selftests/unit/test_utils_genio.py +++ b/selftests/unit/test_utils_genio.py @@ -4,7 +4,7 @@ import unittest from avocado.utils import genio -from .. import setup_avocado_loggers +from .. import setup_avocado_loggers, temp_dir_prefix setup_avocado_loggers() @@ -12,7 +12,8 @@ setup_avocado_loggers() class TestGenio(unittest.TestCase): def test_check_pattern_in_directory(self): - tempdirname = tempfile.mkdtemp() + prefix = temp_dir_prefix(__name__, self, 'setUp') + tempdirname = tempfile.mkdtemp(prefix=prefix) with self.assertRaises(genio.GenIOError): genio.is_pattern_in_file(tempdirname, 'something') os.rmdir(tempdirname) diff --git a/selftests/unit/test_utils_iso9660.py b/selftests/unit/test_utils_iso9660.py index 438ddeb6e4f57d8677a60c88412ef53074b8a18a..b96b6b2c34b04ed3b9b29dc7eabd31eaab1a5e98 100644 --- a/selftests/unit/test_utils_iso9660.py +++ b/selftests/unit/test_utils_iso9660.py @@ -8,7 +8,7 @@ import unittest.mock from avocado.utils import iso9660, process -from .. import setup_avocado_loggers +from .. import setup_avocado_loggers, temp_dir_prefix setup_avocado_loggers() @@ -55,7 +55,8 @@ class BaseIso9660: os.path.pardir, ".data", "sample.iso")) self.iso = None - self.tmpdir = tempfile.mkdtemp(prefix="avocado_" + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) def test_basic_workflow(self): """ diff --git a/selftests/unit/test_utils_partition.py b/selftests/unit/test_utils_partition.py index 8a73532a4c7c25a7cbb9a00d09033d6841356eea..40c1de18b7647ae312c73c6a94e513700013cc7e 100644 --- a/selftests/unit/test_utils_partition.py +++ b/selftests/unit/test_utils_partition.py @@ -14,6 +14,8 @@ from avocado.utils import partition, process from avocado.utils import path as utils_path from avocado.utils import wait +from .. import temp_dir_prefix + def missing_binary(binary): try: @@ -37,7 +39,8 @@ class Base(unittest.TestCase): 'current user must be allowed to run "mkfs.ext2" under ' 'sudo') def setUp(self): - self.tmpdir = tempfile.mkdtemp(prefix="avocado_" + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) self.mountpoint = os.path.join(self.tmpdir, "disk") os.mkdir(self.mountpoint) self.disk = partition.Partition(os.path.join(self.tmpdir, "block"), 1, diff --git a/selftests/unit/test_xunit.py b/selftests/unit/test_xunit.py index c62cc4f4ff7724bb21790b19f19d7fde30fff837..19c4dc753854e8b17065f1fd95a1c5f9ee1c3f3d 100644 --- a/selftests/unit/test_xunit.py +++ b/selftests/unit/test_xunit.py @@ -17,7 +17,7 @@ from avocado.core import job from avocado.core.result import Result from avocado.plugins import xunit -from .. import setup_avocado_loggers +from .. import setup_avocado_loggers, temp_dir_prefix setup_avocado_loggers() @@ -44,7 +44,8 @@ class xUnitSucceedTest(unittest.TestCase): pass self.tmpfile = tempfile.mkstemp() - self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__) + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) args = argparse.Namespace(base_logdir=self.tmpdir) args.xunit_output = self.tmpfile[1] self.job = job.Job(args)