Index: third_party/gsutil/third_party/oauth2client/tests/test_tools.py |
diff --git a/third_party/gsutil/third_party/oauth2client/tests/test_tools.py b/third_party/gsutil/third_party/oauth2client/tests/test_tools.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..23aca90256b284493e907ca087784c8b47c586f8 |
--- /dev/null |
+++ b/third_party/gsutil/third_party/oauth2client/tests/test_tools.py |
@@ -0,0 +1,30 @@ |
+"""Unit tests for oauth2client.tools.""" |
+ |
+import unittest |
+from oauth2client import tools |
+from six.moves.urllib import request |
+import threading |
+ |
+class TestClientRedirectServer(unittest.TestCase): |
+ """Test the ClientRedirectServer and ClientRedirectHandler classes.""" |
+ |
+ def test_ClientRedirectServer(self): |
+ # create a ClientRedirectServer and run it in a thread to listen |
+ # for a mock GET request with the access token |
+ # the server should return a 200 message and store the token |
+ httpd = tools.ClientRedirectServer(('localhost', 0), tools.ClientRedirectHandler) |
+ code = 'foo' |
+ url = 'http://localhost:%i?code=%s' % (httpd.server_address[1], code) |
+ t = threading.Thread(target = httpd.handle_request) |
+ t.setDaemon(True) |
+ t.start() |
+ f = request.urlopen( url ) |
+ self.assertTrue(f.read()) |
+ t.join() |
+ httpd.server_close() |
+ self.assertEqual(httpd.query_params.get('code'),code) |
+ |
+ |
+if __name__ == '__main__': |
+ unittest.main() |
+ |