Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(26)

Side by Side Diff: build/android/pylib/remote/device/remote_device_environment.py

Issue 822713002: Update from https://crrev.com/309415 (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """Environment setup and teardown for remote devices.""" 5 """Environment setup and teardown for remote devices."""
6 6
7 import logging 7 import logging
8 import os 8 import os
9 import sys 9 import sys
10 10
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 self._GetAccessToken() 75 self._GetAccessToken()
76 if self._trigger: 76 if self._trigger:
77 self._device = self._SelectDevice() 77 self._device = self._SelectDevice()
78 78
79 def TearDown(self): 79 def TearDown(self):
80 """Teardown the test environment.""" 80 """Teardown the test environment."""
81 self._RevokeAccessToken() 81 self._RevokeAccessToken()
82 82
83 def __enter__(self): 83 def __enter__(self):
84 """Set up the test run when used as a context manager.""" 84 """Set up the test run when used as a context manager."""
85 self.SetUp() 85 try:
86 return self 86 self.SetUp()
87 return self
88 except:
89 self.__exit__(*sys.exc_info())
90 raise
87 91
88 def __exit__(self, exc_type, exc_val, exc_tb): 92 def __exit__(self, exc_type, exc_val, exc_tb):
89 """Tears down the test run when used as a context manager.""" 93 """Tears down the test run when used as a context manager."""
90 self.TearDown() 94 self.TearDown()
91 95
92 def _GetAccessToken(self): 96 def _GetAccessToken(self):
93 """Generates access token for remote device service.""" 97 """Generates access token for remote device service."""
94 logging.info('Generating remote service access token') 98 logging.info('Generating remote service access token')
95 access_token_results = appurify_sanitized.api.access_token_generate( 99 access_token_results = appurify_sanitized.api.access_token_generate(
96 self._api_key, self._api_secret) 100 self._api_key, self._api_secret)
(...skipping 14 matching lines...) Expand all
111 logging.info('Finding %s with %s to run tests on.' % 115 logging.info('Finding %s with %s to run tests on.' %
112 (self._remote_device, self._remote_device_os)) 116 (self._remote_device, self._remote_device_os))
113 dev_list_res = appurify_sanitized.api.devices_list(self._access_token) 117 dev_list_res = appurify_sanitized.api.devices_list(self._access_token)
114 remote_device_helper.TestHttpResponse(dev_list_res, 118 remote_device_helper.TestHttpResponse(dev_list_res,
115 'Unable to generate access token.') 119 'Unable to generate access token.')
116 device_list = dev_list_res.json()['response'] 120 device_list = dev_list_res.json()['response']
117 for device in device_list: 121 for device in device_list:
118 if (device['name'] == self._remote_device 122 if (device['name'] == self._remote_device
119 and device['os_version'] == self._remote_device_os): 123 and device['os_version'] == self._remote_device_os):
120 return device['device_type_id'] 124 return device['device_type_id']
121 raise remote_device_helper.RemoteDeviceError( 125 self._NoDeviceFound(device_list)
122 'No device found: %s %s' % (self._remote_device, 126
123 self._remote_device_os)) 127 def _PrintAvailableDevices(self, device_list):
128 def compare_devices(a,b):
129 for key in ('os_version', 'name'):
130 c = cmp(a[key], b[key])
131 if c:
132 return c
133 return 0
134
135 logging.critical('Available Android Devices:')
136 android_devices = (d for d in device_list if d['os_name'] == 'Android')
137 for d in sorted(android_devices, compare_devices):
138 logging.critical(' %s %s', d['os_version'].ljust(7), d['name'])
139
140 def _NoDeviceFound(self, device_list):
141 self._PrintAvailableDevices(device_list)
142 raise remote_device_helper.RemoteDeviceError('No device found: %s %s' %
143 (self._remote_device, self._remote_device_os))
124 144
125 @property 145 @property
126 def device(self): 146 def device(self):
127 return self._device 147 return self._device
128 148
129 @property 149 @property
130 def token(self): 150 def token(self):
131 return self._access_token 151 return self._access_token
132 152
133 @property 153 @property
134 def results_path(self): 154 def results_path(self):
135 return self._results_path 155 return self._results_path
136 156
137 @property 157 @property
138 def runner_type(self): 158 def runner_type(self):
139 return self._runner_type 159 return self._runner_type
140 160
141 @property 161 @property
142 def runner_package(self): 162 def runner_package(self):
143 return self._runner_package 163 return self._runner_package
144 164
145 @property 165 @property
146 def trigger(self): 166 def trigger(self):
147 return self._trigger 167 return self._trigger
148 168
149 @property 169 @property
150 def collect(self): 170 def collect(self):
151 return self._collect 171 return self._collect
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698