diff options
Diffstat (limited to 'list/instance_test.py')
-rw-r--r-- | list/instance_test.py | 88 |
1 files changed, 71 insertions, 17 deletions
diff --git a/list/instance_test.py b/list/instance_test.py index 5aef584d..8475653d 100644 --- a/list/instance_test.py +++ b/list/instance_test.py @@ -22,7 +22,6 @@ import subprocess import unittest from unittest import mock -from six import b # pylint: disable=import-error import dateutil.parser @@ -38,12 +37,12 @@ from acloud.list import instance class InstanceTest(driver_test_lib.BaseDriverTest): """Test instance.""" - PS_SSH_TUNNEL = b("/fake_ps_1 --fake arg \n" - "/fake_ps_2 --fake arg \n" - "/usr/bin/ssh -i ~/.ssh/acloud_rsa " - "-o UserKnownHostsFile=/dev/null " - "-o StrictHostKeyChecking=no -L 54321:127.0.0.1:6520 " - "-L 12345:127.0.0.1:6444 -N -f -l user 1.1.1.1") + PS_SSH_TUNNEL = ("/fake_ps_1 --fake arg \n" + "/fake_ps_2 --fake arg \n" + "/usr/bin/ssh -i ~/.ssh/acloud_rsa " + "-o UserKnownHostsFile=/dev/null " + "-o StrictHostKeyChecking=no -L 54321:127.0.0.1:6520 " + "-L 12345:127.0.0.1:6444 -N -f -l user 1.1.1.1").encode() GCE_INSTANCE = { constants.INS_KEY_NAME: "fake_ins_name", constants.INS_KEY_CREATETIME: "fake_create_time", @@ -85,6 +84,8 @@ class InstanceTest(driver_test_lib.BaseDriverTest): mock_adb_tools.return_value = mock_adb_tools_object self.Patch(cvd_runtime_config, "CvdRuntimeConfig", return_value=self._MockCvdRuntimeConfig()) + self.Patch(instance.LocalInstance, "GetDevidInfoFromCvdFleet", + return_value=None) local_instance = instance.LocalInstance("fake_config_path") self.assertEqual("local-instance-2", local_instance.name) @@ -99,9 +100,50 @@ class InstanceTest(driver_test_lib.BaseDriverTest): self.assertEqual(6445, local_instance.vnc_port) self.assertEqual(8444, local_instance.webrtc_port) + # pylint: disable=protected-access + def testGetCvdEnv(self): + """Test GetCvdEnv.""" + self.Patch(cvd_runtime_config, "CvdRuntimeConfig", + return_value=self._MockCvdRuntimeConfig()) + self.Patch(instance, "_IsProcessRunning", return_value=False) + local_instance = instance.LocalInstance("fake_config_path") + cvd_env = local_instance._GetCvdEnv() + self.assertEqual(cvd_env[constants.ENV_CUTTLEFISH_INSTANCE], "2") + self.assertEqual(cvd_env[constants.ENV_CUTTLEFISH_CONFIG_FILE], + "fake_config_path") + + # pylint: disable=protected-access + def testParsingCvdFleetOutput(self): + """Test ParsingCvdFleetOutput.""" + cvd_fleet_output = """WARNING: cvd_server client version does not match +{ +"adb_serial" : "0.0.0.0:6520", +"instance_name" : "cvd-1", +}""" + + expected_result = """{ +"adb_serial" : "0.0.0.0:6520", +"instance_name" : "cvd-1", +}""" + + self.assertEqual( + instance.LocalInstance._ParsingCvdFleetOutput(cvd_fleet_output), + expected_result) + + # pylint: disable=protected-access + def testIsProcessRunning(self): + """Test IsProcessRunning.""" + process = "cvd_server" + self.Patch(utils, "CheckOutput", + return_value="/bin/cvd_server -server_fd=4") + self.assertEqual(instance._IsProcessRunning(process), True) + + self.Patch(utils, "CheckOutput", return_value="/bin/cvd start") + self.assertEqual(instance._IsProcessRunning(process), False) + @mock.patch("acloud.list.instance.AdbTools") def testDeleteLocalInstance(self, mock_adb_tools): - """Test executing stop_cvd command.""" + """Test executing 'cvd stop' command.""" self.Patch(cvd_runtime_config, "CvdRuntimeConfig", return_value=self._MockCvdRuntimeConfig()) mock_adb_tools_object = mock.Mock(device_information={}) @@ -109,20 +151,30 @@ class InstanceTest(driver_test_lib.BaseDriverTest): mock_adb_tools.return_value = mock_adb_tools_object self.Patch(utils, "AddUserGroupsToCmd", side_effect=lambda cmd, groups: cmd) + self.Patch(instance.LocalInstance, "GetDevidInfoFromCvdFleet", + return_value=None) mock_check_call = self.Patch(subprocess, "check_call") + mock_check_output = self.Patch( + subprocess, "check_output", + return_value="cvd_internal_stop E stop cvd failed") local_instance = instance.LocalInstance("fake_config_path") with mock.patch.dict("acloud.list.instance.os.environ", clear=True): local_instance.Delete() expected_env = { - 'CUTTLEFISH_INSTANCE': '2', - 'HOME': '/tmp/acloud_cvd_temp/local-instance-2', - 'CUTTLEFISH_CONFIG_FILE': 'fake_config_path', + "CUTTLEFISH_INSTANCE": "2", + "HOME": "/tmp/acloud_cvd_temp/local-instance-2", + "CUTTLEFISH_CONFIG_FILE": "fake_config_path", + "ANDROID_SOONG_HOST_OUT": "", } + mock_check_output.assert_called_with( + "/tmp/acloud_cvd_temp/local-instance-2/host_bins/bin/cvd stop", + stderr=subprocess.STDOUT, shell=True, env=expected_env, text=True, + timeout=instance._CVD_TIMEOUT) mock_check_call.assert_called_with( - 'fake_cvd_tools_path/stop_cvd', stderr=subprocess.STDOUT, - shell=True, env=expected_env) + "/tmp/acloud_cvd_temp/local-instance-2/host_bins/bin/stop_cvd", + stderr=subprocess.STDOUT, shell=True, env=expected_env) mock_adb_tools_object.DisconnectAdb.assert_called() @mock.patch("acloud.list.instance.tempfile") @@ -226,6 +278,8 @@ class InstanceTest(driver_test_lib.BaseDriverTest): instance.RemoteInstance, "GetAdbVncPortFromSSHTunnel", return_value=forwarded_ports(vnc_port=fake_vnc, adb_port=fake_adb)) + self.Patch(utils, "GetWebrtcPortFromSSHTunnel", + return_value="fake_webrtc_port") self.Patch(instance, "_GetElapsedTime", return_value="fake_time") self.Patch(AdbTools, "IsAdbConnected", return_value=True) @@ -329,15 +383,15 @@ class InstanceTest(driver_test_lib.BaseDriverTest): def testGetLocalInstanceConfig(self): """Test GetLocalInstanceConfig.""" - self.Patch(instance, "GetLocalInstanceRuntimeDir", - return_value="ins_runtime_dir") + self.Patch(instance, "GetLocalInstanceHomeDir", + return_value="ins_home") self.Patch(os.path, "isfile", return_value=False) instance_id = 1 self.assertEqual(instance.GetLocalInstanceConfig(instance_id), None) # Test config in new folder path. - self.Patch(os.path, "isfile", side_effect=[False, True]) - expected_result = "ins_runtime_dir/instances/cvd-1/cuttlefish_config.json" + self.Patch(os.path, "isfile", return_value=True) + expected_result = "ins_home/cuttlefish_assembly/cuttlefish_config.json" self.assertEqual( instance.GetLocalInstanceConfig(instance_id), expected_result) |