| Index: build/android/devil/android/decorators.py
|
| diff --git a/build/android/devil/android/decorators.py b/build/android/devil/android/decorators.py
|
| index 19b1ec20ecef4c2a17c82c0eb245fab0dbdb100e..b5d2ec6444513a7a4963d1e70351279cd6409d7a 100644
|
| --- a/build/android/devil/android/decorators.py
|
| +++ b/build/android/devil/android/decorators.py
|
| @@ -116,7 +116,8 @@ def WithTimeoutAndRetriesDefaults(default_timeout, default_retries):
|
|
|
| def WithTimeoutAndRetriesFromInstance(
|
| default_timeout_name=DEFAULT_TIMEOUT_ATTR,
|
| - default_retries_name=DEFAULT_RETRIES_ATTR):
|
| + default_retries_name=DEFAULT_RETRIES_ATTR,
|
| + min_default_timeout=None):
|
| """Returns a decorator that handles timeouts and retries.
|
|
|
| The provided |default_timeout_name| and |default_retries_name| are used to
|
| @@ -130,12 +131,16 @@ def WithTimeoutAndRetriesFromInstance(
|
| instance.
|
| default_retries_name: The name of the default retries attribute of the
|
| instance.
|
| + min_timeout: Miniumum timeout to be used when using instance timeout.
|
| Returns:
|
| The actual decorator.
|
| """
|
| def decorator(f):
|
| def get_timeout(inst, *_args, **kwargs):
|
| - return kwargs.get('timeout', getattr(inst, default_timeout_name))
|
| + ret = getattr(inst, default_timeout_name)
|
| + if min_default_timeout is not None:
|
| + ret = max(min_default_timeout, ret)
|
| + return kwargs.get('timeout', ret)
|
| def get_retries(inst, *_args, **kwargs):
|
| return kwargs.get('retries', getattr(inst, default_retries_name))
|
| return _TimeoutRetryWrapper(f, get_timeout, get_retries, pass_values=True)
|
|
|