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

Unified Diff: third_party/google-endpoints/apitools/base/py/http_wrapper_test.py

Issue 2666783008: Add google-endpoints to third_party/. (Closed)
Patch Set: Created 3 years, 11 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
Index: third_party/google-endpoints/apitools/base/py/http_wrapper_test.py
diff --git a/third_party/google-endpoints/apitools/base/py/http_wrapper_test.py b/third_party/google-endpoints/apitools/base/py/http_wrapper_test.py
new file mode 100644
index 0000000000000000000000000000000000000000..ff07668d2276e02fd9d7ec415f0a1ed2408c2588
--- /dev/null
+++ b/third_party/google-endpoints/apitools/base/py/http_wrapper_test.py
@@ -0,0 +1,86 @@
+#
+# Copyright 2015 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Tests for http_wrapper."""
+import socket
+
+import httplib2
+import oauth2client
+from six.moves import http_client
+import unittest2
+
+from mock import patch
+
+from apitools.base.py import exceptions
+from apitools.base.py import http_wrapper
+
+
+class _MockHttpRequest(object):
+
+ url = None
+
+
+class _MockHttpResponse(object):
+
+ def __init__(self, status_code):
+ self.response = {'status': status_code}
+
+
+class RaisesExceptionOnLen(object):
+
+ """Supports length property but raises if __len__ is used."""
+
+ def __len__(self):
+ raise Exception('len() called unnecessarily')
+
+ def length(self):
+ return 1
+
+
+class HttpWrapperTest(unittest2.TestCase):
+
+ def testRequestBodyUsesLengthProperty(self):
+ http_wrapper.Request(body=RaisesExceptionOnLen())
+
+ def testRequestBodyWithLen(self):
+ http_wrapper.Request(body='burrito')
+
+ def testDefaultExceptionHandler(self):
+ """Ensures exception handles swallows (retries)"""
+ mock_http_content = 'content'.encode('utf8')
+ for exception_arg in (
+ http_client.BadStatusLine('line'),
+ http_client.IncompleteRead('partial'),
+ http_client.ResponseNotReady(),
+ socket.error(),
+ socket.gaierror(),
+ httplib2.ServerNotFoundError(),
+ ValueError(),
+ oauth2client.client.HttpAccessTokenRefreshError(status=503),
+ exceptions.RequestError(),
+ exceptions.BadStatusCodeError(
+ {'status': 503}, mock_http_content, 'url'),
+ exceptions.RetryAfterError(
+ {'status': 429}, mock_http_content, 'url', 0)):
+
+ retry_args = http_wrapper.ExceptionRetryArgs(
+ http={'connections': {}}, http_request=_MockHttpRequest(),
+ exc=exception_arg, num_retries=0, max_retry_wait=0)
+
+ # Disable time.sleep for this handler as it is called with
+ # a minimum value of 1 second.
+ with patch('time.sleep', return_value=None):
+ http_wrapper.HandleExceptionsAndRebuildHttpConnections(
+ retry_args)

Powered by Google App Engine
This is Rietveld 408576698