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."""