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

Side by Side Diff: chrome/test/pyautolib/chromeos_network.py

Issue 10264012: Move WaitUntilWifiNetworkAvailable and GetServicePath to pyauto so it can be reached from autotest (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 7 months 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/test/pyautolib/pyauto.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 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 import copy 5 import copy
6 import dbus 6 import dbus
7 import logging 7 import logging
8 import os 8 import os
9 import time 9 import time
10 10
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 config = pyauto.PyUITest.EvalDataFrom(self._ROUTER_CONFIG_FILE) 244 config = pyauto.PyUITest.EvalDataFrom(self._ROUTER_CONFIG_FILE)
245 strip_ip, routers = config['strip_ip'], config['routers'] 245 strip_ip, routers = config['strip_ip'], config['routers']
246 246
247 self._SetupRouteForPowerStrip(strip_ip) 247 self._SetupRouteForPowerStrip(strip_ip)
248 self._wifi_power_strip = WifiPowerStrip(strip_ip, routers) 248 self._wifi_power_strip = WifiPowerStrip(strip_ip, routers)
249 249
250 self.RouterPower = self._wifi_power_strip.RouterPower 250 self.RouterPower = self._wifi_power_strip.RouterPower
251 self.TurnOffAllRouters = self._wifi_power_strip.TurnOffAllRouters 251 self.TurnOffAllRouters = self._wifi_power_strip.TurnOffAllRouters
252 self.GetRouterConfig = self._wifi_power_strip.GetRouterConfig 252 self.GetRouterConfig = self._wifi_power_strip.GetRouterConfig
253 253
254 def WaitUntilWifiNetworkAvailable(self, ssid, timeout=60, is_hidden=False):
255 """Waits until the given network is available.
256
257 Routers that are just turned on may take up to 1 minute upon turning them
258 on to broadcast their SSID.
259
260 Args:
261 ssid: SSID of the service we want to connect to.
262 timeout: timeout (in seconds)
263
264 Raises:
265 Exception if timeout duration has been hit before wifi router is seen.
266
267 Returns:
268 True, when the wifi network is seen within the timout period.
269 False, otherwise.
270 """
271 def _GotWifiNetwork():
272 # Returns non-empty array if desired SSID is available.
273 try:
274 return [wifi for wifi in
275 self.NetworkScan().get('wifi_networks', {}).values()
276 if wifi.get('name') == ssid]
277 except pyauto_errors.JSONInterfaceError:
278 # Temporary fix until crosbug.com/14174 is fixed.
279 # NetworkScan is only used in updating the list of networks so errors
280 # thrown by it are not critical to the results of wifi tests that use
281 # this method.
282 return False
283
284 # The hidden AP's will always be on, thus we will assume it is ready to
285 # connect to.
286 if is_hidden:
287 return bool(_GotWifiNetwork())
288
289 return self.WaitUntil(_GotWifiNetwork, timeout=timeout, retry_sleep=1)
290
291 def GetConnectedWifi(self): 254 def GetConnectedWifi(self):
stanleyw 2012/04/30 19:46:51 You might as well copy this routine over as well.
292 """Returns the SSID of the currently connected wifi network. 255 """Returns the SSID of the currently connected wifi network.
293 256
294 Returns: 257 Returns:
295 The SSID of the connected network or None if we're not connected. 258 The SSID of the connected network or None if we're not connected.
296 """ 259 """
297 service_list = self.GetNetworkInfo() 260 service_list = self.GetNetworkInfo()
298 connected_service_path = service_list.get('connected_wifi') 261 connected_service_path = service_list.get('connected_wifi')
299 if 'wifi_networks' in service_list and \ 262 if 'wifi_networks' in service_list and \
300 connected_service_path in service_list['wifi_networks']: 263 connected_service_path in service_list['wifi_networks']:
301 return service_list['wifi_networks'][connected_service_path]['name'] 264 return service_list['wifi_networks'][connected_service_path]['name']
302 265
303 def GetServicePath(self, ssid):
304 """Returns the service path associated with an SSID.
305
306 Args:
307 ssid: String defining the SSID we are searching for.
308
309 Returns:
310 The service path or None if SSID does not exist.
311 """
312 service_list = self.GetNetworkInfo()
313 service_list = service_list.get('wifi_networks', [])
314 for service_path, service_obj in service_list.iteritems():
315 if service_obj['name'] == ssid:
316 return service_path
317 return None
318
319 def ConnectToWifiRouter(self, router_name, shared=True): 266 def ConnectToWifiRouter(self, router_name, shared=True):
320 """Connects to a router by name. 267 """Connects to a router by name.
321 268
322 Args: 269 Args:
323 router_name: The name of the router that is specified in the 270 router_name: The name of the router that is specified in the
324 configuration file. 271 configuration file.
325 """ 272 """
326 router = self._wifi_power_strip.GetRouterConfig(router_name) 273 router = self._wifi_power_strip.GetRouterConfig(router_name)
327 assert router, 'Router with name %s is not defined ' \ 274 assert router, 'Router with name %s is not defined ' \
328 'in the router configuration.' % router_name 275 'in the router configuration.' % router_name
329 security = router.get('security', 'SECURITY_NONE') 276 security = router.get('security', 'SECURITY_NONE')
330 passphrase = router.get('passphrase', '') 277 passphrase = router.get('passphrase', '')
331 278
332 # Branch off the connect calls depending on if the wifi network is hidden 279 # Branch off the connect calls depending on if the wifi network is hidden
333 # or not. 280 # or not.
334 error_string = None 281 error_string = None
335 if router.get('hidden'): 282 if router.get('hidden'):
336 error_string = self.ConnectToHiddenWifiNetwork(router['ssid'], security, 283 error_string = self.ConnectToHiddenWifiNetwork(router['ssid'], security,
337 passphrase) 284 passphrase)
338 else: 285 else:
339 service_path = self.GetServicePath(router['ssid']) 286 service_path = self.GetServicePath(router['ssid'])
340 assert service_path, 'Service with SSID %s is not present.' % \ 287 assert service_path, 'Service with SSID %s is not present.' % \
341 router['ssid'] 288 router['ssid']
342 289
343 logging.debug('Connecting to router %s.' % router_name) 290 logging.debug('Connecting to router %s.' % router_name)
344 error_string = self.ConnectToWifiNetwork(service_path, 291 error_string = self.ConnectToWifiNetwork(service_path,
345 password=passphrase, 292 password=passphrase,
346 shared=shared) 293 shared=shared)
347 return error_string 294 return error_string
OLDNEW
« no previous file with comments | « no previous file | chrome/test/pyautolib/pyauto.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698