Making http parameter in discovery.build_from_document optional.
discovery.build()'s http parameter is optional, but if you call build_from_document directly it doesn't handle the case where http is None. Fixed that so now you can call ``discovery.build_from_document(doc, credentials=credentials)``.
diff --git a/googleapiclient/discovery.py b/googleapiclient/discovery.py
index 4109865..002a7dd 100644
--- a/googleapiclient/discovery.py
+++ b/googleapiclient/discovery.py
@@ -254,6 +254,9 @@
A Resource object with methods for interacting with the service.
"""
+ if http is None:
+ http = httplib2.Http()
+
# future is no longer used.
future = {}
diff --git a/tests/test_discovery.py b/tests/test_discovery.py
index 2b9b2e6..6d95ca1 100644
--- a/tests/test_discovery.py
+++ b/tests/test_discovery.py
@@ -366,6 +366,17 @@
plus = build_from_document(discovery, base=base)
self.assertEquals("https://www.googleapis.com/plus/v1/", plus._baseUrl)
+ def test_building_with_optional_http(self):
+ discovery = open(datafile('plus.json')).read()
+ plus = build_from_document(discovery, base="https://www.googleapis.com/")
+ self.assertTrue(isinstance(plus._http, httplib2.Http))
+
+ def test_building_with_explicit_http(self):
+ http = HttpMock()
+ discovery = open(datafile('plus.json')).read()
+ plus = build_from_document(
+ discovery, base="https://www.googleapis.com/", http=http)
+ self.assertEquals(plus._http, http)
class DiscoveryFromHttp(unittest.TestCase):
def setUp(self):