3147: PySDK tests use mock>=1.0 and easier mock side_effect.
[arvados.git] / sdk / python / tests / test_keep_client.py
index 4ac9df17ecf838b4b65685636af0f8ab5b59c3b1..900143ebf7a2fa1962ed98926ddf246a818c758b 100644 (file)
@@ -1,5 +1,6 @@
 import mock
 import os
+import socket
 import unittest
 
 import arvados
@@ -310,6 +311,13 @@ class KeepClientRetryGetTestCase(unittest.TestCase, KeepClientRetryTestMixin):
         with self.mock_responses(self.DEFAULT_EXPECT, 404, 200, 500):
             self.check_success(locator=self.HINTED_LOCATOR)
 
+    def test_try_next_server_after_timeout(self):
+        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)
+
 
 @no_backoff
 class KeepClientRetryPutTestCase(unittest.TestCase, KeepClientRetryTestMixin):