Refactor AdbTools into its own module.
Also fix up device connection status issue.
Bug: 122826931
Test: atest acloud_test &&
acloud create
adb kill-server
acloud list should display "not connected" status
Change-Id: I27b22f5f2368790c22136140432a1ae5b2947e07
diff --git a/list/instance_test.py b/list/instance_test.py
index 3178adc..e0f4ffd 100644
--- a/list/instance_test.py
+++ b/list/instance_test.py
@@ -14,6 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
"""Tests for instance class."""
+
import collections
import datetime
import subprocess
@@ -27,6 +28,7 @@
from acloud.internal import constants
from acloud.internal.lib import driver_test_lib
+from acloud.internal.lib.adb_tools import AdbTools
from acloud.list import instance
@@ -120,6 +122,7 @@
"GetAdbVncPortFromSSHTunnel",
return_value=forwarded_ports(vnc_port=fake_vnc, adb_port=fake_adb))
self.Patch(instance, "_GetElapsedTime", return_value="fake_time")
+ self.Patch(AdbTools, "IsAdbConnected", return_value=True)
# test ssh_tunnel_is_connected will be true if ssh tunnel connection is found
instance_info = instance.RemoteInstance(gce_instance)
@@ -130,6 +133,14 @@
fake_adb, gce_instance[constants.INS_KEY_NAME], "fake_time")
self.assertEqual(expected_full_name, instance_info.fullname)
+ # test ssh tunnel is connected but adb is disconnected
+ self.Patch(AdbTools, "IsAdbConnected", return_value=False)
+ instance_info = instance.RemoteInstance(gce_instance)
+ self.assertTrue(instance_info.ssh_tunnel_is_connected)
+ expected_full_name = "device serial: not connected (%s) elapsed time: %s" % (
+ instance_info.name, "fake_time")
+ self.assertEqual(expected_full_name, instance_info.fullname)
+
# test ssh_tunnel_is_connected will be false if ssh tunnel connection is not found
self.Patch(
instance.RemoteInstance,