| Index: appengine/findit/common/test/retry_http_client_test.py
|
| diff --git a/appengine/findit/common/test/retry_http_client_test.py b/appengine/findit/common/test/retry_http_client_test.py
|
| deleted file mode 100644
|
| index 4809ec49f630fa4786646d4fef310bedfa0e3be6..0000000000000000000000000000000000000000
|
| --- a/appengine/findit/common/test/retry_http_client_test.py
|
| +++ /dev/null
|
| @@ -1,189 +0,0 @@
|
| -# Copyright 2014 The Chromium Authors. All rights reserved.
|
| -# Use of this source code is governed by a BSD-style license that can be
|
| -# found in the LICENSE file.
|
| -
|
| -import urllib
|
| -
|
| -from testing_utils import testing
|
| -
|
| -from common import retry_http_client
|
| -
|
| -
|
| -class DummyHttpClient(retry_http_client.RetryHttpClient):
|
| - def __init__(self, simulated_failures, failure_status):
|
| - super(DummyHttpClient, self).__init__()
|
| - self.requests = []
|
| - self.request_count = 0
|
| - self.simulated_failures = simulated_failures
|
| - self.failure_status = failure_status
|
| -
|
| - def GetBackoff(self, *_):
|
| - return 0
|
| -
|
| - def _Get(self, url, timeout_seconds, headers=None):
|
| - self.requests.append({
|
| - 'url': url,
|
| - 'timeout_seconds': timeout_seconds,
|
| - })
|
| - self.request_count += 1
|
| - if self.request_count > self.simulated_failures:
|
| - return 200, 'success - GET'
|
| - else:
|
| - return self.failure_status, 'failure - GET'
|
| -
|
| - def _Post(self, url, data, timeout_seconds, headers=None):
|
| - self.requests.append({
|
| - 'url': url,
|
| - 'timeout_seconds': timeout_seconds,
|
| - })
|
| - self.request_count += 1
|
| - if self.request_count > self.simulated_failures:
|
| - return 200, 'success - POST'
|
| - else:
|
| - return self.failure_status, 'failure - POST'
|
| -
|
| - def _Put(self, url, data, timeout_seconds, headers=None):
|
| - self.requests.append({
|
| - 'url': url,
|
| - 'timeout_seconds': timeout_seconds,
|
| - })
|
| - self.request_count += 1
|
| - if self.request_count > self.simulated_failures:
|
| - return 200, 'success - PUT'
|
| - else:
|
| - return self.failure_status, 'failure - PUT'
|
| -
|
| -class HttpClientTest(testing.AppengineTestCase):
|
| - def testRequestWithTimeout(self):
|
| - url = 'http://test'
|
| - timeout_seconds = 70
|
| - dummy_http_client = DummyHttpClient(0, 404)
|
| - status_code, content = dummy_http_client.Get(
|
| - url, timeout_seconds=timeout_seconds)
|
| - self.assertEquals(200, status_code)
|
| - self.assertEquals('success - GET', content)
|
| - self.assertEquals(1, dummy_http_client.request_count)
|
| - self.assertEquals(url, dummy_http_client.requests[0]['url'])
|
| - self.assertEquals(timeout_seconds,
|
| - dummy_http_client.requests[0]['timeout_seconds'])
|
| -
|
| - def testRequestWithParameters(self):
|
| - url = 'http://test'
|
| - params = {'a': 1, 'b': 'b&b'}
|
| - dummy_http_client = DummyHttpClient(0, 404)
|
| - status_code, content = dummy_http_client.Get(
|
| - url, params=params)
|
| - self.assertEquals(200, status_code)
|
| - self.assertEquals('success - GET', content)
|
| - self.assertEquals(1, dummy_http_client.request_count)
|
| - target_url, query_str = urllib.splitquery(
|
| - dummy_http_client.requests[0]['url'])
|
| - self.assertEquals(url, target_url)
|
| - for query in query_str.split('&'):
|
| - name, value = urllib.splitvalue(query)
|
| - self.assertIn(name, params)
|
| - self.assertEqual(urllib.quote(str(params[name])), value)
|
| -
|
| - def testGetBackoff(self):
|
| - cases = [
|
| - # (retry_backoff, tries, expected_backoff)
|
| - (1, 1, 1),
|
| - (1, 2, 1),
|
| - (2, 1, 2),
|
| - (2, 2, 4)
|
| - ]
|
| - for retry_backoff, tries, expected_backoff in cases:
|
| - http_client = retry_http_client.RetryHttpClient()
|
| - self.assertLessEqual(expected_backoff,
|
| - http_client.GetBackoff(retry_backoff, tries))
|
| -
|
| - def testRequestWithRetry(self):
|
| - simulated_failures = 2
|
| -
|
| - self.mock_sleep()
|
| -
|
| - dummy_http_client = DummyHttpClient(simulated_failures, 503)
|
| -
|
| - status_code, content = dummy_http_client.Get(
|
| - 'http://test', max_retries=simulated_failures + 2,
|
| - retry_backoff=1)
|
| - self.assertEquals(200, status_code)
|
| - self.assertEquals('success - GET', content)
|
| - self.assertEquals(simulated_failures + 1,
|
| - dummy_http_client.request_count)
|
| -
|
| - def testFailedRequest(self):
|
| - dummy_http_client = DummyHttpClient(5, 503)
|
| - status_code, content = dummy_http_client.Get(
|
| - 'http://test', max_retries=2, retry_backoff=0.01)
|
| - self.assertEquals(2, dummy_http_client.request_count)
|
| - self.assertEquals(503, status_code)
|
| - self.assertEquals('failure - GET', content)
|
| -
|
| - def testNoRetryForSpecificHttpStatusCode(self):
|
| - for expected_status_code in (302, 401, 403, 404, 501):
|
| - dummy_http_client = DummyHttpClient(20000000, expected_status_code)
|
| -
|
| - status_code, content = dummy_http_client.Get(
|
| - 'http://test', max_retries=2000, retry_backoff=0.1)
|
| - self.assertEquals(1, dummy_http_client.request_count)
|
| - self.assertEquals(expected_status_code, status_code)
|
| - self.assertEquals('failure - GET', content)
|
| -
|
| - def testPostFailure(self):
|
| - dummy_http_client = DummyHttpClient(1, 404)
|
| - status_code, content = dummy_http_client.Post('http://test', {'data': 0})
|
| - self.assertEquals(404, status_code)
|
| - self.assertEquals('failure - POST', content)
|
| -
|
| - def testPostSuccess(self):
|
| - dummy_http_client = DummyHttpClient(0, 404)
|
| - status_code, content = dummy_http_client.Post('http://test', {'data': 0})
|
| - self.assertEquals(200, status_code)
|
| - self.assertEquals('success - POST', content)
|
| -
|
| - def testNoRetryForSpecificHttpStatusCodePost(self):
|
| - for expected_status_code in (302, 401, 403, 404, 501):
|
| - dummy_http_client = DummyHttpClient(20000000, expected_status_code)
|
| -
|
| - status_code, content = dummy_http_client.Post('http://test', {'data': 0})
|
| - self.assertEquals(1, dummy_http_client.request_count)
|
| - self.assertEquals(expected_status_code, status_code)
|
| - self.assertEquals('failure - POST', content)
|
| -
|
| - def testRetryForPost(self):
|
| - dummy_http_client = DummyHttpClient(5, 503)
|
| - status_code, content = dummy_http_client.Post('http://test', {'data': 0},
|
| - max_retries=3)
|
| - self.assertEquals(3, dummy_http_client.request_count)
|
| - self.assertEquals(503, status_code)
|
| - self.assertEquals('failure - POST', content)
|
| -
|
| - def testPutFailure(self):
|
| - dummy_http_client = DummyHttpClient(1, 404)
|
| - status_code, content = dummy_http_client.Put('http://test', {'data': 0})
|
| - self.assertEquals(404, status_code)
|
| - self.assertEquals('failure - PUT', content)
|
| -
|
| - def testPutSuccess(self):
|
| - dummy_http_client = DummyHttpClient(0, 404)
|
| - status_code, content = dummy_http_client.Put('http://test', {'data': 0})
|
| - self.assertEquals(200, status_code)
|
| - self.assertEquals('success - PUT', content)
|
| -
|
| - def testNoRetryForSpecificHttpStatusCodePut(self):
|
| - for expected_status_code in (302, 401, 403, 404, 501):
|
| - dummy_http_client = DummyHttpClient(20000000, expected_status_code)
|
| -
|
| - status_code, content = dummy_http_client.Put('http://test', {'data': 0})
|
| - self.assertEquals(1, dummy_http_client.request_count)
|
| - self.assertEquals(expected_status_code, status_code)
|
| - self.assertEquals('failure - PUT', content)
|
| -
|
| - def testRetryForPut(self):
|
| - dummy_http_client = DummyHttpClient(5, 503)
|
| - status_code, content = dummy_http_client.Put('http://test', {'data': 0},
|
| - max_retries=3)
|
| - self.assertEquals(3, dummy_http_client.request_count)
|
| - self.assertEquals(503, status_code)
|
| - self.assertEquals('failure - PUT', content)
|
|
|