summaryrefslogtreecommitdiffstats
path: root/python-packages
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2015-10-23 21:55:31 -0700
committerElliott Hughes <enh@google.com>2015-10-23 21:55:31 -0700
commita7aa6e2b1d39340ad60cb66e22ec1db3f0951953 (patch)
tree48b65472981a584a5e0d24ad290813f500801f96 /python-packages
parent66bb9fa2cd8f13e0965f99c2b28ab8f0eb4e8e9e (diff)
downloadandroid_development-a7aa6e2b1d39340ad60cb66e22ec1db3f0951953.tar.gz
android_development-a7aa6e2b1d39340ad60cb66e22ec1db3f0951953.tar.bz2
android_development-a7aa6e2b1d39340ad60cb66e22ec1db3f0951953.zip
Add a test for "adb pull" error reporting.
Bug: http://b/6205106 Change-Id: I2093c3d451361d48056b85c8017acb032a3ff478
Diffstat (limited to 'python-packages')
-rw-r--r--python-packages/adb/test_device.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/python-packages/adb/test_device.py b/python-packages/adb/test_device.py
index 5d11ddc20..ed3467c7c 100644
--- a/python-packages/adb/test_device.py
+++ b/python-packages/adb/test_device.py
@@ -54,6 +54,23 @@ def requires_root(func):
return wrapper
+def requires_non_root(func):
+ def wrapper(self, *args):
+ was_root = self.device.shell(['id', '-un'])[0].strip() == 'root'
+ if was_root:
+ self.device.unroot()
+ self.device.wait()
+
+ try:
+ func(self, *args)
+ finally:
+ if was_root:
+ self.device.root()
+ self.device.wait()
+
+ return wrapper
+
+
class GetDeviceTest(unittest.TestCase):
def setUp(self):
self.android_serial = os.getenv('ANDROID_SERIAL')
@@ -496,6 +513,20 @@ class FileOperationsTest(DeviceTest):
self.assertEqual(checksum, host_md5)
os.remove(tmp_write.name)
+ @requires_non_root
+ def test_pull_error_reporting(self):
+ self.device.shell(['touch', self.DEVICE_TEMP_FILE])
+ self.device.shell(['chmod', 'a-rwx', self.DEVICE_TEMP_FILE])
+
+ try:
+ output = self.device.pull(remote=self.DEVICE_TEMP_FILE, local='x')
+ except subprocess.CalledProcessError as e:
+ output = e.output
+
+ self.assertIn('Permission denied', output)
+
+ self.device.shell(['rm', '-f', self.DEVICE_TEMP_FILE])
+
def test_pull(self):
"""Pull a randomly generated file from specified device."""
kbytes = 512