Create tmd dir with specific prefix in check-uuid unit tests
test_fix_argument_yes for check-uuid tool try to
import the created tmp directory and work on that
which is failing with the below error:
ModuleNotFoundError: No module named 'tmpf61iim1k'
- https://88e1de9a81e55d590d5b-26f184bb59af339cfe698349cbda4177.ssl.cf5.rackcdn.com/770520/8/check/openstack-tox-cover/e3518e8/testr_results.html
It is happening more frequently nowadays: 40 occurrences in 7 days
http://logstash.openstack.org/#/dashboard/file/logstash.json
There is some race happening to delete the created tmp dir
which is then used to import the test file in check-uuid run
and raise error.
This commit try to create the tmp dir with specific prefix so that
any other tests cleanup deleting the *tmp* dir on root path then
it can avoid this failure.
Related-Bug: #1918316
Change-Id: Ibab610d3e59ec22bb8c37d66f262ed1d2648bbf8
diff --git a/tempest/tests/lib/cmd/test_check_uuid.py b/tempest/tests/lib/cmd/test_check_uuid.py
index 428e047..a621a75 100644
--- a/tempest/tests/lib/cmd/test_check_uuid.py
+++ b/tempest/tests/lib/cmd/test_check_uuid.py
@@ -13,12 +13,11 @@
import ast
import importlib
import os
+import shutil
import sys
import tempfile
from unittest import mock
-import fixtures
-
from tempest.lib.cmd import check_uuid
from tempest.tests import base
@@ -40,23 +39,23 @@
return tests_file
def test_fix_argument_no(self):
- temp_dir = self.useFixture(fixtures.TempDir(rootdir="."))
- tests_file = self.create_tests_file(temp_dir.path)
-
+ temp_dir = tempfile.mkdtemp(prefix='check-uuid-no', dir=".")
+ self.addCleanup(shutil.rmtree, temp_dir, ignore_errors=True)
+ tests_file = self.create_tests_file(temp_dir)
sys.argv = [sys.argv[0]] + ["--package",
- os.path.relpath(temp_dir.path)]
+ os.path.relpath(temp_dir)]
self.assertRaises(SystemExit, check_uuid.run)
with open(tests_file, "r") as f:
self.assertTrue(TestCLInterface.CODE == f.read())
def test_fix_argument_yes(self):
- temp_dir = self.useFixture(fixtures.TempDir(rootdir="."))
- tests_file = self.create_tests_file(temp_dir.path)
+ temp_dir = tempfile.mkdtemp(prefix='check-uuid-yes', dir=".")
+ self.addCleanup(shutil.rmtree, temp_dir, ignore_errors=True)
+ tests_file = self.create_tests_file(temp_dir)
sys.argv = [sys.argv[0]] + ["--fix", "--package",
- os.path.relpath(temp_dir.path)]
-
+ os.path.relpath(temp_dir)]
check_uuid.run()
with open(tests_file, "r") as f:
self.assertTrue(TestCLInterface.CODE != f.read())