| Index: third_party/gsutil/third_party/httplib2/python2/httplib2test_appengine.py
|
| diff --git a/third_party/gsutil/third_party/httplib2/python2/httplib2test_appengine.py b/third_party/gsutil/third_party/httplib2/python2/httplib2test_appengine.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..ea36f39cb77a7b5ca583d804b7bf1d83f6d08058
|
| --- /dev/null
|
| +++ b/third_party/gsutil/third_party/httplib2/python2/httplib2test_appengine.py
|
| @@ -0,0 +1,82 @@
|
| +"""
|
| +httplib2test_appengine
|
| +
|
| +A set of unit tests for httplib2.py on Google App Engine
|
| +
|
| +"""
|
| +
|
| +__author__ = "Joe Gregorio (joe@bitworking.org)"
|
| +__copyright__ = "Copyright 2011, Joe Gregorio"
|
| +
|
| +import os
|
| +import sys
|
| +import unittest
|
| +
|
| +# The test resources base uri
|
| +base = 'http://bitworking.org/projects/httplib2/test/'
|
| +#base = 'http://localhost/projects/httplib2/test/'
|
| +cacheDirName = ".cache"
|
| +APP_ENGINE_PATH='../../google_appengine'
|
| +
|
| +sys.path.insert(0, APP_ENGINE_PATH)
|
| +
|
| +import dev_appserver
|
| +dev_appserver.fix_sys_path()
|
| +
|
| +from google.appengine.ext import testbed
|
| +testbed = testbed.Testbed()
|
| +testbed.activate()
|
| +testbed.init_urlfetch_stub()
|
| +
|
| +from google.appengine.runtime import DeadlineExceededError
|
| +
|
| +import httplib2
|
| +
|
| +class AppEngineHttpTest(unittest.TestCase):
|
| + def setUp(self):
|
| + if os.path.exists(cacheDirName):
|
| + [os.remove(os.path.join(cacheDirName, file)) for file in os.listdir(cacheDirName)]
|
| +
|
| + if sys.version_info < (2, 6):
|
| + disable_cert_validation = True
|
| + else:
|
| + disable_cert_validation = False
|
| +
|
| + def test(self):
|
| + h = httplib2.Http()
|
| + response, content = h.request("http://bitworking.org")
|
| + self.assertEqual(httplib2.SCHEME_TO_CONNECTION['https'],
|
| + httplib2.AppEngineHttpsConnection)
|
| + self.assertEquals(1, len(h.connections))
|
| + self.assertEquals(response.status, 200)
|
| + self.assertEquals(response['status'], '200')
|
| +
|
| + # It would be great to run the test below, but it really tests the
|
| + # aberrant behavior of httplib on App Engine, but that special aberrant
|
| + # httplib only appears when actually running on App Engine and not when
|
| + # running via the SDK. When running via the SDK the httplib in std lib is
|
| + # loaded, which throws a different error when a timeout occurs.
|
| + #
|
| + #def test_timeout(self):
|
| + # # The script waits 3 seconds, so a timeout of more than that should succeed.
|
| + # h = httplib2.Http(timeout=7)
|
| + # r, c = h.request('http://bitworking.org/projects/httplib2/test/timeout/timeout.cgi')
|
| + #
|
| + # import httplib
|
| + # print httplib.__file__
|
| + # h = httplib2.Http(timeout=1)
|
| + # try:
|
| + # r, c = h.request('http://bitworking.org/projects/httplib2/test/timeout/timeout.cgi')
|
| + # self.fail('Timeout should have raised an exception.')
|
| + # except DeadlineExceededError:
|
| + # pass
|
| +
|
| +
|
| +
|
| + def test_proxy_info_ignored(self):
|
| + h = httplib2.Http(proxy_info='foo.txt')
|
| + response, content = h.request("http://bitworking.org")
|
| + self.assertEquals(response.status, 200)
|
| +
|
| +if __name__ == '__main__':
|
| + unittest.main()
|
|
|