Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1851)

Unified Diff: appengine/findit/common/test/retry_http_client_test.py

Issue 2488113005: [Findit] Re-org code. (Closed)
Patch Set: Rebase. Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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)
« no previous file with comments | « appengine/findit/common/test/chrome_dependency_fetcher_test.py ('k') | appengine/findit/common/test/rietveld_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698