3147: Move PySDK HTTP test infrastructure to testutil.
[arvados.git] / sdk / python / tests / arvados_testutil.py
index 77146db470c1aa93bf0e175d1434a546ad18e6ea..48fb013891564f04fdb69e19d71c6c648b01e97d 100644 (file)
@@ -3,16 +3,27 @@
 import errno
 import httplib
 import httplib2
+import mock
 import os
 import shutil
 import tempfile
 import unittest
 
+# Use this hostname when you want to make sure the traffic will be
+# instantly refused.  100::/64 is a dedicated black hole.
+TEST_HOST = '100::'
+
+skip_sleep = mock.patch('time.sleep', lambda n: None)  # clown'll eat me
+
 def fake_httplib2_response(code, **headers):
     headers.update(status=str(code),
                    reason=httplib.responses.get(code, "Unknown Response"))
     return httplib2.Response(headers)
 
+def mock_responses(body, *codes):
+    return mock.patch('httplib2.Http.request', side_effect=(
+            (fake_httplib2_response(code), body) for code in codes))
+
 class ArvadosBaseTestCase(unittest.TestCase):
     # This class provides common utility functions for our tests.