aboutsummaryrefslogtreecommitdiff
path: root/tests/test_transport.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_transport.py')
-rw-r--r--tests/test_transport.py67
1 files changed, 59 insertions, 8 deletions
diff --git a/tests/test_transport.py b/tests/test_transport.py
index e9782a8..2884200 100644
--- a/tests/test_transport.py
+++ b/tests/test_transport.py
@@ -12,15 +12,17 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+import unittest
+
import httplib2
import mock
-import unittest2
from oauth2client import client
from oauth2client import transport
+from tests import http_mock
-class TestMemoryCache(unittest2.TestCase):
+class TestMemoryCache(unittest.TestCase):
def test_get_set_delete(self):
cache = transport.MemoryCache()
@@ -32,7 +34,7 @@ class TestMemoryCache(unittest2.TestCase):
self.assertIsNone(cache.get('foo'))
-class Test_get_cached_http(unittest2.TestCase):
+class Test_get_cached_http(unittest.TestCase):
def test_global(self):
cached_http = transport.get_cached_http()
@@ -46,15 +48,22 @@ class Test_get_cached_http(unittest2.TestCase):
self.assertIs(result, cache)
-class Test_get_http_object(unittest2.TestCase):
+class Test_get_http_object(unittest.TestCase):
@mock.patch.object(httplib2, 'Http', return_value=object())
def test_it(self, http_klass):
result = transport.get_http_object()
self.assertEqual(result, http_klass.return_value)
+ http_klass.assert_called_once_with()
+
+ @mock.patch.object(httplib2, 'Http', return_value=object())
+ def test_with_args(self, http_klass):
+ result = transport.get_http_object(1, 2, foo='bar')
+ self.assertEqual(result, http_klass.return_value)
+ http_klass.assert_called_once_with(1, 2, foo='bar')
-class Test__initialize_headers(unittest2.TestCase):
+class Test__initialize_headers(unittest.TestCase):
def test_null(self):
result = transport._initialize_headers(None)
@@ -67,7 +76,7 @@ class Test__initialize_headers(unittest2.TestCase):
self.assertIsNot(result, headers)
-class Test__apply_user_agent(unittest2.TestCase):
+class Test__apply_user_agent(unittest.TestCase):
def test_null(self):
headers = object()
@@ -91,7 +100,7 @@ class Test__apply_user_agent(unittest2.TestCase):
self.assertEqual(result, {'user-agent': final_agent})
-class Test_clean_headers(unittest2.TestCase):
+class Test_clean_headers(unittest.TestCase):
def test_no_modify(self):
headers = {b'key': b'val'}
@@ -119,7 +128,7 @@ class Test_clean_headers(unittest2.TestCase):
self.assertEqual(result, header_str)
-class Test_wrap_http_for_auth(unittest2.TestCase):
+class Test_wrap_http_for_auth(unittest.TestCase):
def test_wrap(self):
credentials = object()
@@ -129,3 +138,45 @@ class Test_wrap_http_for_auth(unittest2.TestCase):
self.assertIsNone(result)
self.assertNotEqual(http.request, orig_req_method)
self.assertIs(http.request.credentials, credentials)
+
+
+class Test_request(unittest.TestCase):
+
+ uri = 'http://localhost'
+ method = 'POST'
+ body = 'abc'
+ redirections = 3
+
+ def test_with_request_attr(self):
+ mock_result = object()
+ headers = {'foo': 'bar'}
+ http = http_mock.HttpMock(headers=headers, data=mock_result)
+
+ response, content = transport.request(
+ http, self.uri, method=self.method, body=self.body,
+ redirections=self.redirections)
+ self.assertEqual(response, headers)
+ self.assertIs(content, mock_result)
+ # Verify mocks.
+ self.assertEqual(http.requests, 1)
+ self.assertEqual(http.uri, self.uri)
+ self.assertEqual(http.method, self.method)
+ self.assertEqual(http.body, self.body)
+ self.assertIsNone(http.headers)
+
+ def test_with_callable_http(self):
+ headers = {}
+ mock_result = object()
+ http = http_mock.HttpMock(headers=headers, data=mock_result)
+
+ result = transport.request(http, self.uri, method=self.method,
+ body=self.body,
+ redirections=self.redirections)
+ self.assertEqual(result, (headers, mock_result))
+ # Verify mock.
+ self.assertEqual(http.requests, 1)
+ self.assertEqual(http.uri, self.uri)
+ self.assertEqual(http.method, self.method)
+ self.assertEqual(http.body, self.body)
+ self.assertIsNone(http.headers)
+ self.assertEqual(http.redirections, self.redirections)