예제 #1
0
 def test_scout_url_error(self, mock_urlopen):
     mock_urlopen.side_effect = urllib2.URLError("")
     url, content, status = self.scout_instance.scout(
         ("127.0.0.1", "8080"))
     self.assertTrue(isinstance(content, urllib2.URLError))
     self.assertEqual(url, self.url)
     self.assertEqual(status, -1)
예제 #2
0
 def test_get_with_retries_all_failed(self, request, urlopen):
     # Simulate a failing request, ensure retries done
     request.return_value.get_type.return_value = "http"
     request.side_effect = urllib2.URLError('')
     urlopen.return_value.read.return_value = ''
     sc = internal_client.SimpleClient(url='http://127.0.0.1', retries=1)
     self.assertRaises(urllib2.URLError, sc.retry_request, 'GET')
     self.assertEqual(request.call_count, 2)
예제 #3
0
 def test_get_with_retries_all_failed(self, request, urlopen):
     # Simulate a failing request, ensure retries done
     request.return_value.get_type.return_value = "http"
     urlopen.side_effect = urllib2.URLError('')
     sc = internal_client.SimpleClient(url='http://127.0.0.1', retries=1)
     with mock.patch('swift.common.internal_client.sleep') as mock_sleep:
         self.assertRaises(urllib2.URLError, sc.retry_request, 'GET')
     self.assertEqual(mock_sleep.call_count, 1)
     self.assertEqual(request.call_count, 2)
     self.assertEqual(urlopen.call_count, 2)
예제 #4
0
    def test_get_with_retries(self, request, urlopen):
        # First request fails, retry successful
        request.return_value.get_type.return_value = "http"
        urlopen.return_value.read.return_value = ''
        req = urllib2.Request('http://127.0.0.1', method='GET')
        request.side_effect = [urllib2.URLError(''), req]
        sc = internal_client.SimpleClient(url='http://127.0.0.1', retries=1)

        retval = sc.retry_request('GET')
        self.assertEqual(request.call_count, 3)
        request.assert_called_with('http://127.0.0.1?format=json',
                                   data=None,
                                   headers={'X-Auth-Token': 'token'})
        self.assertEqual([None, None], retval)
예제 #5
0
    def test_get_with_retries(self, request, urlopen):
        # First request fails, retry successful
        request.return_value.get_type.return_value = "http"
        mock_resp = mock.MagicMock()
        mock_resp.read.return_value = ''
        urlopen.side_effect = [urllib2.URLError(''), mock_resp]
        sc = internal_client.SimpleClient(url='http://127.0.0.1', retries=1,
                                          token='token')

        with mock.patch('swift.common.internal_client.sleep') as mock_sleep:
            retval = sc.retry_request('GET')
        self.assertEqual(mock_sleep.call_count, 1)
        self.assertEqual(request.call_count, 2)
        self.assertEqual(urlopen.call_count, 2)
        request.assert_called_with('http://127.0.0.1?format=json', data=None,
                                   headers={'X-Auth-Token': 'token'})
        self.assertEqual([None, None], retval)
예제 #6
0
 def handle(self, fn_name, action, *args, **kwds):
     self.parent.calls.append((self, fn_name, args, kwds))
     if action is None:
         return None
     elif action == "return self":
         return self
     elif action == "return response":
         res = MockResponse(200, "OK", {}, "")
         return res
     elif action == "return request":
         return Request("http://blah/")
     elif action.startswith("error"):
         code = action[action.rfind(" ") + 1:]
         try:
             code = int(code)
         except ValueError:
             pass
         res = MockResponse(200, "OK", {}, "")
         return self.parent.error("http", args[0], res, code, "", {})
     elif action == "raise":
         raise urllib2.URLError("blah")
     assert False