3147: PySDK tests use mock>=1.0 and easier mock side_effect.
authorBrett Smith <brett@curoverse.com>
Wed, 10 Sep 2014 20:44:25 +0000 (16:44 -0400)
committerBrett Smith <brett@curoverse.com>
Thu, 18 Sep 2014 19:51:47 +0000 (15:51 -0400)
sdk/python/setup.py
sdk/python/tests/test_keep_client.py

index 30cc7796495a2cdb2f7138a122acf114d2b13788..e0afe89a81d60abddb77a1c336e521117ff555de 100644 (file)
@@ -32,5 +32,5 @@ setup(name='arvados-python-client',
         'ws4py'
         ],
       test_suite='tests',
-      tests_require=['mock', 'PyYAML'],
+      tests_require=['mock>=1.0', 'PyYAML'],
       zip_safe=False)
index 04bcab89d6f5b9d84b82182333de732714d2d86c..900143ebf7a2fa1962ed98926ddf246a818c758b 100644 (file)
@@ -312,15 +312,10 @@ class KeepClientRetryGetTestCase(unittest.TestCase, KeepClientRetryTestMixin):
             self.check_success(locator=self.HINTED_LOCATOR)
 
     def test_try_next_server_after_timeout(self):
-        responses = iter([None, (fake_httplib2_response(200),
-                                 self.DEFAULT_EXPECT)])
-        def side_effect(*args, **kwargs):
-            response = next(responses)
-            if response is None:
-                raise socket.timeout("timed out")
-            else:
-                return response
-        with mock.patch('httplib2.Http.request', side_effect=side_effect):
+        side_effects = [socket.timeout("timed out"),
+                        (fake_httplib2_response(200), self.DEFAULT_EXPECT)]
+        with mock.patch('httplib2.Http.request',
+                        side_effect=iter(side_effects)):
             self.check_success(locator=self.HINTED_LOCATOR)