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

Unified Diff: chrome/test/pyautolib/pyauto.py

Issue 6685099: Removing command_execution_timeout_ms in favor of action_max_timeout_ms. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: chrome/test/pyautolib/pyauto.py
===================================================================
--- chrome/test/pyautolib/pyauto.py (revision 79305)
+++ chrome/test/pyautolib/pyauto.py (working copy)
@@ -422,32 +422,36 @@
time.sleep(retry_sleep)
return False
- class CmdExecutionTimeoutChanger(object):
- """Facilitate temporary changes to command_execution_timeout_ms.
- Automatically resets to original timeout when object is destroyed.
- """
- _saved_timeout = -1 # Saved value for command_execution_timeout_ms
+ def _GetResultFromJSONRequest(self, cmd_dict, windex=0):
+ """Issue call over the JSON automation channel and fetch output.
- def __init__(self, ui_test, new_timeout):
- """Initialize.
+ This method packages the given dictionary into a json string, sends it
+ over the JSON automation channel, loads the json output string returned,
+ and returns it back as a dictionary.
- Args:
- ui_test: a PyUITest object
- new_timeout: new timeout to use (in milli secs)
- """
- self._saved_timeout = ui_test.command_execution_timeout_ms()
- if new_timeout != self._saved_timeout:
- ui_test.set_command_execution_timeout_ms(new_timeout)
- self._ui_test = ui_test
+ Args:
+ cmd_dict: the command dictionary. It must have a 'command' key
+ Sample:
+ {
+ 'command': 'SetOmniboxText',
+ 'text': text,
+ }
+ windex: 0-based window index on which to work. Default: 0 (first window)
+ Use -ve windex if the automation command does not apply to a
+ browser window. example: chromeos login
- def __del__(self):
- """Reset command_execution_timeout_ms to original value."""
- if self._ui_test.command_execution_timeout_ms() != self._saved_timeout:
- self._ui_test.set_command_execution_timeout_ms(self._saved_timeout)
+ Returns:
+ a dictionary for the output returned by the automation channel.
+ Raises:
+ pyauto_errors.JSONInterfaceError if the automation call returns an error.
+ """
+ return self._GetResultFromJSONRequest(
+ cmd_dict, windex, timeout=self.action_max_timeout_ms())
- def _GetResultFromJSONRequest(self, cmd_dict, windex=0):
+
+ def _GetResultFromJSONRequest(self, cmd_dict, windex=0, timeout=-1):
"""Issue call over the JSON automation channel and fetch output.
This method packages the given dictionary into a json string, sends it
@@ -465,13 +469,18 @@
Use -ve windex if the automation command does not apply to a
browser window. example: chromeos login
+ timeout: request timeout
+
Returns:
a dictionary for the output returned by the automation channel.
Raises:
pyauto_errors.JSONInterfaceError if the automation call returns an error.
"""
- ret_dict = json.loads(self._SendJSONRequest(windex, json.dumps(cmd_dict)))
+ if timeout == -1: # Default
+ timeout = self.action_max_timeout_ms()
Paweł Hajdan Jr. 2011/03/26 10:55:12 Similarly to action_max_timeout, you can add acces
+ ret_dict = json.loads(self._SendJSONRequest(
+ windex, json.dumps(cmd_dict), timeout))
if ret_dict.has_key('error'):
raise JSONInterfaceError(ret_dict['error'])
return ret_dict
@@ -755,13 +764,19 @@
self._GetResultFromJSONRequest(cmd_dict)
def WaitForAllDownloadsToComplete(self, windex=0):
+ self.WaitForAllDownloads(
+ self, windex=0, timeout=self.action_max_timeout_ms())
+
+ def WaitForAllDownloadsToComplete(self, windex=0, timeout=-1):
"""Wait for all downloads to complete.
Note: This method does not work for dangerous downloads. Use
WaitForGivenDownloadsToComplete (below) instead.
"""
+ if timeout == -1: # Default
+ timeout = self.action_max_timeout_ms()
cmd_dict = {'command': 'WaitForAllDownloadsToComplete'}
- self._GetResultFromJSONRequest(cmd_dict, windex=windex)
+ self._GetResultFromJSONRequest(cmd_dict, windex=windex, timeout=timeout)
def WaitForDownloadToComplete(self, download_path, timeout=-1):
"""Wait for the given downloads to complete.

Powered by Google App Engine
This is Rietveld 408576698