Skip to content
This repository has been archived by the owner on Mar 1, 2019. It is now read-only.

Commit

Permalink
close #11, check adb device status, raise EnvironmentError in atx.con…
Browse files Browse the repository at this point in the history
…nect if something went wrong
  • Loading branch information
codeskyblue committed Apr 12, 2016
1 parent 725f1d9 commit 6a04677
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 8 deletions.
9 changes: 8 additions & 1 deletion atx/adb.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,15 +73,22 @@ def raw_cmd(self, *args):
return subprocess.Popen(cmd_line, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

def device_serial(self):
devices = self.devices()
if not self.default_serial:
devices = self.devices()
if devices:
if len(devices) is 1:
self.default_serial = list(devices.keys())[0]
else:
raise EnvironmentError("Multiple devices attached but default android serial not set.")
else:
raise EnvironmentError("Device not attached.")
else:
if self.default_serial not in devices:
raise EnvironmentError("Device(%s) not attached." % self.default_serial)

if devices[self.default_serial] != 'device':
raise EnvironmentError("Device(%s) is not ready. status(%s)." %
(self.default_serial, devices[self.default_serial]))
return self.default_serial

def devices(self):
Expand Down
15 changes: 9 additions & 6 deletions atx/device/android.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,8 @@


def getenv(name, default_value=None, type=str):
try:
return type(os.getenv(name)) or default_value
except:
return default_value
value = os.getenv(name)
return type(value) if value else default_value


class AndroidDevice(DeviceMixin, UiaDevice):
Expand All @@ -67,7 +65,7 @@ def __init__(self, serialno=None, **kwargs):
Raises:
EnvironmentError
"""
serialno = serialno or getenv('ATX_ADB_SERIALNO') or None
serialno = serialno or getenv('ATX_ADB_SERIALNO', None)
self._host = kwargs.get('host', getenv('ATX_ADB_HOST', '127.0.0.1'))
self._port = kwargs.get('port', getenv('ATX_ADB_PORT', 5037, type=int))
self._adb = adb.Adb(serialno, self._host, self._port)
Expand Down Expand Up @@ -103,8 +101,13 @@ def forward(self, device_port, local_port=None):
port = self._adb.forward(device_port, local_port)
return (self._host, port)

@property
def current_package_name(self):
return self.info['currentPackageName']

def is_app_alive(self, package_name):
""" Check if app in running in foreground """
""" Deprecated: use current_package_name instaed.
Check if app in running in foreground """
return self.info['currentPackageName'] == package_name

def sleep(self, secs=None):
Expand Down
1 change: 0 additions & 1 deletion atx/device/device_mixin.py
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,6 @@ def on(self, pattern=None, text=None):
self._stored_selector = self._dev(text=text)
elif pattern is not None:
selector = self._dev.pattern_open(pattern)
print 1111111, selector
if selector is None:
raise IOError("Not found pattern: {}".format(pattern))
self._stored_selector = selector
Expand Down

0 comments on commit 6a04677

Please sign in to comment.