diff options
| author | Josh Gao <jmgao@google.com> | 2017-11-08 14:35:26 -0800 |
|---|---|---|
| committer | Josh Gao <jmgao@google.com> | 2017-11-08 14:39:34 -0800 |
| commit | 908c4dbd10520a232c1f02df9a28bfce5c5ddebc (patch) | |
| tree | e0669db6f58ab48e3e4a30e28aa40a0c4c953383 /python-packages | |
| parent | d4c5319198081e74bba85dd3405fccb1dcd6f1dc (diff) | |
| download | android_development-908c4dbd10520a232c1f02df9a28bfce5c5ddebc.tar.gz android_development-908c4dbd10520a232c1f02df9a28bfce5c5ddebc.tar.bz2 android_development-908c4dbd10520a232c1f02df9a28bfce5c5ddebc.zip | |
Move GetDeviceTest from adb's test_device.py to adb package.
This test actually belongs with the adb python wrapper, since it's not
affected by changes to adb itself.
Bug: http://b/64260633
Test: python test.py
Change-Id: Ia70a5529e30d91ea6232c65c9d50b2dabd07b925
Diffstat (limited to 'python-packages')
| -rw-r--r-- | python-packages/adb/test.py | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/python-packages/adb/test.py b/python-packages/adb/test.py new file mode 100644 index 000000000..c44688377 --- /dev/null +++ b/python-packages/adb/test.py @@ -0,0 +1,80 @@ +# +# Copyright (C) 2017 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +import os +import unittest +import mock + +import adb + +class GetDeviceTest(unittest.TestCase): + def setUp(self): + self.android_serial = os.getenv('ANDROID_SERIAL') + if 'ANDROID_SERIAL' in os.environ: + del os.environ['ANDROID_SERIAL'] + + def tearDown(self): + if self.android_serial is not None: + os.environ['ANDROID_SERIAL'] = self.android_serial + else: + if 'ANDROID_SERIAL' in os.environ: + del os.environ['ANDROID_SERIAL'] + + @mock.patch('adb.device.get_devices') + def test_explicit(self, mock_get_devices): + mock_get_devices.return_value = ['foo', 'bar'] + device = adb.get_device('foo') + self.assertEqual(device.serial, 'foo') + + @mock.patch('adb.device.get_devices') + def test_from_env(self, mock_get_devices): + mock_get_devices.return_value = ['foo', 'bar'] + os.environ['ANDROID_SERIAL'] = 'foo' + device = adb.get_device() + self.assertEqual(device.serial, 'foo') + + @mock.patch('adb.device.get_devices') + def test_arg_beats_env(self, mock_get_devices): + mock_get_devices.return_value = ['foo', 'bar'] + os.environ['ANDROID_SERIAL'] = 'bar' + device = adb.get_device('foo') + self.assertEqual(device.serial, 'foo') + + @mock.patch('adb.device.get_devices') + def test_no_such_device(self, mock_get_devices): + mock_get_devices.return_value = ['foo', 'bar'] + self.assertRaises(adb.DeviceNotFoundError, adb.get_device, ['baz']) + + os.environ['ANDROID_SERIAL'] = 'baz' + self.assertRaises(adb.DeviceNotFoundError, adb.get_device) + + @mock.patch('adb.device.get_devices') + def test_unique_device(self, mock_get_devices): + mock_get_devices.return_value = ['foo'] + device = adb.get_device() + self.assertEqual(device.serial, 'foo') + + @mock.patch('adb.device.get_devices') + def test_no_unique_device(self, mock_get_devices): + mock_get_devices.return_value = ['foo', 'bar'] + self.assertRaises(adb.NoUniqueDeviceError, adb.get_device) + + +def main(): + suite = unittest.TestLoader().loadTestsFromName(__name__) + unittest.TextTestRunner(verbosity=3).run(suite) + +if __name__ == '__main__': + main() |
