acloud: Fix up config unittests.
Bug: 111377885
Test: ./run_tests.sh config, m acloud_test && acloud_test
Change-Id: I59729bedddb0d0deae99d9ed85ae1722f7ada57d
diff --git a/public/config_test.py b/public/config_test.py
index ea21a8c..b3061d6 100644
--- a/public/config_test.py
+++ b/public/config_test.py
@@ -17,6 +17,7 @@
"""Tests for acloud.public.config."""
import unittest
import os
+import tempfile
import mock
# pylint: disable=no-name-in-module,import-error
@@ -144,24 +145,32 @@
# Test default config
config_unspecify = config.AcloudConfigManager(None)
cfg = config_unspecify.Load()
- self.assertEqual(config_unspecify._user_config_path, config.GetDefaultConfigFile())
+ self.assertEqual(config_unspecify._user_config_path,
+ config.GetDefaultConfigFile())
self.assertEqual(cfg.project, "")
self.assertEqual(cfg.zone, "")
- # Test user config exist
+
+ # Test default user config exist
mock_file_exist.return_value = True
- backup_file = config.GetDefaultConfigFile() + ".backup"
- if os.path.exists(config.GetDefaultConfigFile()):
- os.rename(config.GetDefaultConfigFile(), backup_file)
- with open(config.GetDefaultConfigFile(), "w") as cfg_file:
+ # Write the config data into a tmp file and have GetDefaultConfigFile
+ # return that.
+ _, temp_cfg_file_path = tempfile.mkstemp()
+ with open(temp_cfg_file_path, "w") as cfg_file:
cfg_file.writelines(self.USER_CONFIG)
- config_exist = config.AcloudConfigManager(None)
- cfg = config_exist.Load()
- self.assertEqual(cfg.project, "fake-project")
- self.assertEqual(cfg.zone, "us-central1-f")
- self.assertEqual(cfg.client_id, "fake_client_id")
- self.assertEqual(cfg.client_secret, "fake_client_secret")
- if os.path.exists(backup_file):
- os.rename(backup_file, config.GetDefaultConfigFile())
+ default_patcher = mock.patch.object(config, "GetDefaultConfigFile",
+ return_value=temp_cfg_file_path)
+ default_patcher.start()
+ try:
+ config_exist = config.AcloudConfigManager(None)
+ cfg = config_exist.Load()
+ self.assertEqual(cfg.project, "fake-project")
+ self.assertEqual(cfg.zone, "us-central1-f")
+ self.assertEqual(cfg.client_id, "fake_client_id")
+ self.assertEqual(cfg.client_secret, "fake_client_secret")
+ finally:
+ # Delete tmp file
+ os.remove(temp_cfg_file_path)
+ default_patcher.stop()
def testLoadInternalConfig(self):
"""Test loading internal config."""