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

Unified Diff: infra_libs/test/httplib2_utils_test.py

Issue 2128413002: Make RetriableHttp to be composable (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Fix Created 4 years, 5 months 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
« no previous file with comments | « infra_libs/httplib2_utils.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: infra_libs/test/httplib2_utils_test.py
diff --git a/infra_libs/test/httplib2_utils_test.py b/infra_libs/test/httplib2_utils_test.py
index 0c6bdc8fe856ba81f00549d294bf87c5b2e1fea7..5529fc0226821433f15218f2176c7a689a6c0c45 100644
--- a/infra_libs/test/httplib2_utils_test.py
+++ b/infra_libs/test/httplib2_utils_test.py
@@ -132,39 +132,57 @@ class GetAuthenticatedHttp(unittest.TestCase):
class RetriableHttplib2Test(unittest.TestCase):
def setUp(self):
super(RetriableHttplib2Test, self).setUp()
- self.http = infra_libs.RetriableHttp()
- self.http._request = mock.create_autospec(self.http._request, spec_set=True)
-
- _MOCK_REQUEST = mock.call(*([mock.ANY] * 9))
+ self.http = infra_libs.RetriableHttp(httplib2.Http())
+ self.http._http.request = mock.create_autospec(self.http._http.request,
+ spec_set=True)
+
+ _MOCK_REQUEST = mock.call('http://foo/', 'GET', None)
+
+ def test_delegate_get_attr(self):
+ """RetriableHttp should delegate getting attribute except request() to
+ Http"""
+ self.http._http.clear_credentials = mock.create_autospec(
+ self.http._http.clear_credentials, spec_set=True)
+ self.http.clear_credentials()
+ self.http._http.clear_credentials.assert_called_once_with()
+
+ def test_delegate_set_attr(self):
+ """RetriableHttp should delegate setting attributes to Http"""
+ self.http.ignore_etag = False
+ self.assertFalse(self.http.ignore_etag)
+ self.assertFalse(self.http._http.ignore_etag)
+ self.http.ignore_etag = True
+ self.assertTrue(self.http.ignore_etag)
+ self.assertTrue(self.http._http.ignore_etag)
def test_succeed(self):
- self.http._request.return_value = (
+ self.http._http.request.return_value = (
httplib2.Response({'status': 400}), 'content')
response, _ = self.http.request('http://foo/')
self.assertEqual(400, response.status)
- self.http._request.assert_has_calls([ self._MOCK_REQUEST ])
+ self.http._http.request.assert_has_calls([ self._MOCK_REQUEST ])
def test_retry_succeed(self):
- self.http._request.side_effect = iter([
+ self.http._http.request.side_effect = iter([
(httplib2.Response({'status': 500}), 'content'),
httplib2.HttpLib2Error,
(httplib2.Response({'status': 200}), 'content')
])
response, _ = self.http.request('http://foo/')
self.assertEqual(200, response.status)
- self.http._request.assert_has_calls([ self._MOCK_REQUEST ] * 3)
+ self.http._http.request.assert_has_calls([ self._MOCK_REQUEST ] * 3)
def test_fail_exception(self):
- self.http._request.side_effect = httplib2.HttpLib2Error()
+ self.http._http.request.side_effect = httplib2.HttpLib2Error()
self.assertRaises(httplib2.HttpLib2Error, self.http.request, 'http://foo/')
- self.http._request.assert_has_calls([ self._MOCK_REQUEST ] * 5)
+ self.http._http.request.assert_has_calls([ self._MOCK_REQUEST ] * 5)
def test_fail_status_code(self):
- self.http._request.return_value = (
+ self.http._http.request.return_value = (
httplib2.Response({'status': 500}), 'content')
response, _ = self.http.request('http://foo/')
self.assertEqual(500, response.status)
- self.http._request.assert_has_calls([ self._MOCK_REQUEST ] * 5)
+ self.http._http.request.assert_has_calls([ self._MOCK_REQUEST ] * 5)
class InstrumentedHttplib2Test(unittest.TestCase):
« no previous file with comments | « infra_libs/httplib2_utils.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698