Index: build/android/pylib/device/decorators_test.py |
diff --git a/build/android/pylib/device/decorators_test.py b/build/android/pylib/device/decorators_test.py |
index 53bb281401958b152967ff5799028e56e3c4244a..3ec5e4e2dc635c0d4d86a05b888d97e2725afb35 100644 |
--- a/build/android/pylib/device/decorators_test.py |
+++ b/build/android/pylib/device/decorators_test.py |
@@ -109,6 +109,22 @@ class DecoratorsTest(unittest.TestCase): |
alwaysRaisesCommandFailedError(retries=5) |
self.assertEquals(6, DecoratorsTest._decorated_function_called_count) |
+ def testDefaultsFunctionDecoratorPassesValues(self): |
+ """Tests that the defaults decorator passes timeout and retries kwargs.""" |
+ @decorators.WithTimeoutAndRetriesDefaults(30, 10) |
+ def alwaysReturnsTimeouts(timeout=None, retries=None): |
+ return timeout |
+ |
+ self.assertEquals(30, alwaysReturnsTimeouts()) |
+ self.assertEquals(120, alwaysReturnsTimeouts(timeout=120)) |
+ |
+ @decorators.WithTimeoutAndRetriesDefaults(30, 10) |
+ def alwaysReturnsRetries(timeout=None, retries=None): |
+ return retries |
+ |
+ self.assertEquals(10, alwaysReturnsRetries()) |
+ self.assertEquals(1, alwaysReturnsRetries(retries=1)) |
+ |
def testExplicitFunctionDecoratorDoesTimeouts(self): |
"""Tests that the explicit decorator handles timeout logic.""" |
DecoratorsTest._decorated_function_called_count = 0 |
@@ -165,6 +181,20 @@ class DecoratorsTest(unittest.TestCase): |
raise device_errors.CommandFailedError(['testCommand'], |
'testCommand failed') |
+ # pylint: disable=R0201 |
+ |
+ @decorators.WithTimeoutAndRetriesFromInstance( |
+ 'default_timeout', 'default_retries') |
+ def alwaysReturnsTimeout(self, timeout=None, retries=None): |
+ return timeout |
+ |
+ @decorators.WithTimeoutAndRetriesFromInstance( |
+ 'default_timeout', 'default_retries') |
+ def alwaysReturnsRetries(self, timeout=None, retries=None): |
+ return retries |
+ |
+ # pylint: enable=R0201 |
+ |
def testMethodDecoratorDoesTimeout(self): |
"""Tests that the method decorator handles timeout logic.""" |
@@ -181,7 +211,7 @@ class DecoratorsTest(unittest.TestCase): |
self.assertEquals(1, test_obj.function_call_counters['alwaysTimesOut']) |
def testMethodDecoratorDoesRetries(self): |
- """ Tests that the method decorator handles retries logic.""" |
+ """Tests that the method decorator handles retries logic.""" |
test_obj = self._MethodDecoratorTestObject(self) |
with self.assertRaises(device_errors.CommandFailedError): |
try: |
@@ -192,6 +222,15 @@ class DecoratorsTest(unittest.TestCase): |
self.assertEquals( |
11, test_obj.function_call_counters['alwaysRaisesCommandFailedError']) |
+ def testMethodDecoratorPassesValues(self): |
+ """Tests that the method decorator passes timeout and retries kwargs.""" |
+ test_obj = self._MethodDecoratorTestObject( |
+ self, default_timeout=42, default_retries=31) |
+ self.assertEquals(42, test_obj.alwaysReturnsTimeout()) |
+ self.assertEquals(41, test_obj.alwaysReturnsTimeout(timeout=41)) |
+ self.assertEquals(31, test_obj.alwaysReturnsRetries()) |
+ self.assertEquals(32, test_obj.alwaysReturnsRetries(retries=32)) |
+ |
if __name__ == '__main__': |
unittest.main() |