Skip to content

Commit dd91dd3

Browse files
committed
Honor ANDROID_SERIAL environment variable to select device
1 parent a185d00 commit dd91dd3

2 files changed

Lines changed: 15 additions & 4 deletions

File tree

AndroidViewClient/src/com/dtmilano/android/viewclient.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -915,7 +915,9 @@ def connectToDeviceOrExit(timeout=60, verbose=False, ignoresecuredevice=False):
915915
# eat all the extra options the invoking script may have added
916916
while len(sys.argv) > 1 and sys.argv[1][0] == '-':
917917
sys.argv.pop(1)
918-
serialno = sys.argv[1] if len(sys.argv) > 1 else '.*'
918+
serialno = sys.argv[1] if len(sys.argv) > 1 else \
919+
os.environ['ANDROID_SERIAL'] if os.environ.has_key('ANDROID_SERIAL') \
920+
else '.*'
919921
if verbose:
920922
print 'Connecting to a device with serialno=%s with a timeout of %d secs...' % (serialno, timeout)
921923
# Sometimes MonkeyRunner doesn't even timeout (i.e. two connections from same process), so let's
@@ -934,14 +936,14 @@ def connectToDeviceOrExit(timeout=60, verbose=False, ignoresecuredevice=False):
934936
device.wake()
935937
except java.lang.NullPointerException, e:
936938
print >> sys.stderr, "%s: ERROR: Couldn't connect to %s: %s" % (progname, serialno, e)
937-
sys.exit(1)
939+
sys.exit(3)
938940
if verbose:
939941
print 'Connected to device with serialno=%s' % serialno
940942
secure = device.getSystemProperty('ro.secure')
941943
debuggable = device.getSystemProperty('ro.debuggable')
942944
if secure == '1' and debuggable == '0' and not ignoresecuredevice:
943945
print >> sys.stderr, "%s: ERROR: Device is secure, AndroidViewClient won't work." % progname
944-
sys.exit(1)
946+
sys.exit(2)
945947
if re.search("[.*()+]", serialno):
946948
# if a regex was used we have to determine the serialno used
947949
serialno = ViewClient.__obtainDeviceSerialNumber(device)

AndroidViewClient/tests/com/dtmilano/android/viewclient.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import os
1111
import StringIO
1212
import unittest
13+
import exceptions
1314

1415
# PyDev sets PYTHONPATH, use it
1516
try:
@@ -177,7 +178,15 @@ def testExceptionDeviceNotConnected(self):
177178
vc = ViewClient(None, None)
178179
except Exception, e:
179180
self.assertEqual('Device is not connected', e.message)
180-
181+
182+
def testConnectToDeviceOrExit_environ(self):
183+
sys.argv = ['']
184+
os.environ['ANDROID_SERIAL'] = 'ABC123'
185+
try:
186+
ViewClient.connectToDeviceOrExit(verbose=True)
187+
except exceptions.SystemExit, e:
188+
self.assertEquals(3, e.code)
189+
181190
def testConstructor(self):
182191
device = MockDevice()
183192
vc = ViewClient(device, device.serialno, adb=TRUE, autodump=False)

0 commit comments

Comments
 (0)