summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorBrian Haley <bhaley@redhat.com>2019-05-09 15:08:54 -0400
committerBrian Haley <haleyb.dev@gmail.com>2019-05-10 15:47:09 +0000
commit4b91cd49658bd5a9224976ebd3a6f352d1eef5b0 (patch)
treefc8cb3028c36fcf78593d7272e02c2f251df30be /openstackclient
parent1bc44fcdc6c96bbffdd70c57f6cb11b5c1278071 (diff)
downloadpython-openstackclient-4b91cd49658bd5a9224976ebd3a6f352d1eef5b0.tar.gz
Stop leaving temp files after unit test runs
test_shell.CLOUD_2 is using an absolute path for a temp file, so leaves /tmp/test_log_file around after the unit tests are run. Use a fixture instead so it's cleaned automatically, which also removes the possibility of two tests using the same file and interfering with each other. Change-Id: If722b860be4010b91635c6d46f634da980e17152
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/tests/unit/integ/cli/test_shell.py19
-rw-r--r--openstackclient/tests/unit/test_shell.py37
2 files changed, 37 insertions, 19 deletions
diff --git a/openstackclient/tests/unit/integ/cli/test_shell.py b/openstackclient/tests/unit/integ/cli/test_shell.py
index 70303be3..200f9b18 100644
--- a/openstackclient/tests/unit/integ/cli/test_shell.py
+++ b/openstackclient/tests/unit/integ/cli/test_shell.py
@@ -12,6 +12,7 @@
import copy
+import fixtures
import mock
from osc_lib.tests import utils as osc_lib_utils
@@ -399,6 +400,16 @@ class TestIntegShellCliPrecedenceOCC(test_base.TestInteg):
test_shell.PUBLIC_1['public-clouds']['megadodo']['auth']['auth_url'] \
= test_base.V3_AUTH_URL
+ def get_temp_file_path(self, filename):
+ """Returns an absolute path for a temporary file.
+
+ :param filename: filename
+ :type filename: string
+ :returns: absolute file path string
+ """
+ temp_dir = self.useFixture(fixtures.TempDir())
+ return temp_dir.join(filename)
+
@mock.patch(CONFIG_MOCK_BASE + ".OpenStackConfig._load_vendor_file")
@mock.patch(CONFIG_MOCK_BASE + ".OpenStackConfig._load_config_file")
def test_shell_args_precedence_1(self, config_mock, vendor_mock):
@@ -408,7 +419,9 @@ class TestIntegShellCliPrecedenceOCC(test_base.TestInteg):
"""
def config_mock_return():
- return ('file.yaml', copy.deepcopy(test_shell.CLOUD_2))
+ log_file = self.get_temp_file_path('test_log_file')
+ cloud2 = test_shell.get_cloud(log_file)
+ return ('file.yaml', cloud2)
config_mock.side_effect = config_mock_return
def vendor_mock_return():
@@ -478,7 +491,9 @@ class TestIntegShellCliPrecedenceOCC(test_base.TestInteg):
"""
def config_mock_return():
- return ('file.yaml', copy.deepcopy(test_shell.CLOUD_2))
+ log_file = self.get_temp_file_path('test_log_file')
+ cloud2 = test_shell.get_cloud(log_file)
+ return ('file.yaml', cloud2)
config_mock.side_effect = config_mock_return
def vendor_mock_return():
diff --git a/openstackclient/tests/unit/test_shell.py b/openstackclient/tests/unit/test_shell.py
index dff37f10..5d413e7e 100644
--- a/openstackclient/tests/unit/test_shell.py
+++ b/openstackclient/tests/unit/test_shell.py
@@ -70,23 +70,6 @@ CLOUD_1 = {
}
}
-CLOUD_2 = {
- 'clouds': {
- 'megacloud': {
- 'cloud': 'megadodo',
- 'auth': {
- 'project_name': 'heart-o-gold',
- 'username': 'zaphod',
- },
- 'region_name': 'occ-cloud,krikkit,occ-env',
- 'log_file': '/tmp/test_log_file',
- 'log_level': 'debug',
- 'cert': 'mycert',
- 'key': 'mickey',
- }
- }
-}
-
PUBLIC_1 = {
'public-clouds': {
'megadodo': {
@@ -118,6 +101,26 @@ global_options = {
}
+def get_cloud(log_file):
+ CLOUD = {
+ 'clouds': {
+ 'megacloud': {
+ 'cloud': 'megadodo',
+ 'auth': {
+ 'project_name': 'heart-o-gold',
+ 'username': 'zaphod',
+ },
+ 'region_name': 'occ-cloud,krikkit,occ-env',
+ 'log_file': log_file,
+ 'log_level': 'debug',
+ 'cert': 'mycert',
+ 'key': 'mickey',
+ }
+ }
+ }
+ return CLOUD
+
+
# Wrap the osc_lib make_shell() function to set the shell class since
# osc-lib's TestShell class doesn't allow us to specify it yet.
# TODO(dtroyer): remove this once the shell_class_patch patch is released