aboutsummaryrefslogtreecommitdiff
path: root/tests/mobly/controllers/android_device_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/mobly/controllers/android_device_test.py')
-rwxr-xr-xtests/mobly/controllers/android_device_test.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/mobly/controllers/android_device_test.py b/tests/mobly/controllers/android_device_test.py
index fc939db..81c2965 100755
--- a/tests/mobly/controllers/android_device_test.py
+++ b/tests/mobly/controllers/android_device_test.py
@@ -495,6 +495,30 @@ class AndroidDeviceTest(unittest.TestCase):
@mock.patch(
'mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'),
+ )
+ @mock.patch(
+ 'mobly.controllers.android_device.list_fastboot_devices',
+ return_value=mock.MagicMock(),
+ )
+ def test_AndroidDevice_model_property_is_cached(
+ self, mock_list_fastboot_devices, _
+ ):
+ """Accessing `model` a second time shouldn't invoke all the fastboot/adb
+ calls again.
+ """
+ mock_serial = 1
+ # mock returns '2' so the device is not considered in bootloader mode.
+ mock_list_fastboot_devices.return_value = ['2']
+ ad = android_device.AndroidDevice(serial=mock_serial)
+ ad.model
+ mock_count_first = mock_list_fastboot_devices.call_count
+ ad.model # access `model` again.
+ mock_count_second = mock_list_fastboot_devices.call_count
+ self.assertEqual(mock_count_first, mock_count_second)
+
+ @mock.patch(
+ 'mobly.controllers.android_device_lib.adb.AdbProxy',
return_value=mock_android_device.MockAdbProxy(
'1',
mock_properties={