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

Side by Side Diff: client/bin/site_utils.py

Issue 1534001: switch to autox.py and robustify login/logout code (Closed)
Patch Set: merge with head Created 10 years, 8 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
« no previous file with comments | « client/bin/site_ui_test.py ('k') | client/common_lib/site_ui.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) 2010 The Chromium OS Authors. All rights reserved. 1 # Copyright (c) 2010 The Chromium OS 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 time 5 import time
6 from autotest_lib.client.common_lib import error 6 from autotest_lib.client.common_lib import error
7 7
8 8
9 class TimeoutError(error.TestError):
10 """Error raised when we time out when waiting on a condition."""
11
12
9 def poll_for_condition( 13 def poll_for_condition(
10 condition, exception=None, timeout=10, sleep_interval=0.1): 14 condition, exception=None, timeout=10, sleep_interval=0.1, desc=None):
11 """Poll until a condition becomes true. 15 """Poll until a condition becomes true.
12 16
13 condition: function taking no args and returning bool 17 condition: function taking no args and returning bool
14 exception: exception to throw if condition doesn't become true 18 exception: exception to throw if condition doesn't become true
15 timeout: maximum number of seconds to wait 19 timeout: maximum number of seconds to wait
16 sleep_interval: time to sleep between polls 20 sleep_interval: time to sleep between polls
21 desc: description of default TimeoutError used if 'exception' is None
17 22
18 Raises: 23 Raises:
19 'exception' arg if supplied; error.TestError otherwise 24 'exception' arg if supplied; site_utils.TimeoutError otherwise
20 """ 25 """
21 start_time = time.time() 26 start_time = time.time()
22 while True: 27 while True:
23 if condition(): 28 if condition():
24 return 29 return
25 if time.time() + sleep_interval - start_time > timeout: 30 if time.time() + sleep_interval - start_time > timeout:
26 raise exception if exception else error.TestError( 31 if exception:
27 'Timed out waiting for condition') 32 raise exception
33
34 if desc:
35 desc = 'Timed out waiting for condition: %s' % desc
36 else:
37 desc = 'Timed out waiting for unnamed condition'
38 raise error.TestError(desc)
39
28 time.sleep(sleep_interval) 40 time.sleep(sleep_interval)
OLDNEW
« no previous file with comments | « client/bin/site_ui_test.py ('k') | client/common_lib/site_ui.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698