Pass library and Python version in x-goog-api-client (#734)


diff --git a/tests/test_http.py b/tests/test_http.py
index 5aaada6..b92e63f 100644
--- a/tests/test_http.py
+++ b/tests/test_http.py
@@ -485,26 +485,22 @@
     download = MediaIoBaseDownload(
         fd=self.fd, request=self.request, chunksize=3)
 
-    self.assertEqual(download._headers, {'Cache-Control':'no-store'})
+    self.assertEqual(download._headers.get('Cache-Control'), 'no-store')
 
     status, done = download.next_chunk()
 
-    result = self.fd.getvalue().decode('utf-8')
+    result = json.loads(self.fd.getvalue().decode('utf-8'))
 
-    # we abuse the internals of the object we're testing, pay no attention
-    # to the actual bytes= values here; we are just asserting that the
-    # header we added to the original request is sent up to the server
-    # on each call to next_chunk
+    # assert that that the header we added to the original request is
+    # sent up to the server on each call to next_chunk
 
-    self.assertEqual(json.loads(result),
-                     {"Cache-Control": "no-store", "range": "bytes=0-3"})
+    self.assertEqual(result.get("Cache-Control"), "no-store")
 
     download._fd = self.fd = BytesIO()
     status, done = download.next_chunk()
 
-    result = self.fd.getvalue().decode('utf-8')
-    self.assertEqual(json.loads(result),
-                     {"Cache-Control": "no-store", "range": "bytes=51-54"})
+    result = json.loads(self.fd.getvalue().decode('utf-8'))
+    self.assertEqual(result.get("Cache-Control"), "no-store")
 
   def test_media_io_base_download_handle_redirects(self):
     self.request.http = HttpMockSequence([
diff --git a/tests/test_json_model.py b/tests/test_json_model.py
index 0d1f283..006eb47 100644
--- a/tests/test_json_model.py
+++ b/tests/test_json_model.py
@@ -26,6 +26,7 @@
 import copy
 import json
 import os
+import platform
 import unittest2 as unittest
 import httplib2
 import googleapiclient.model
@@ -143,8 +144,22 @@
         headers, path_params, query_params, body)
 
     self.assertEqual(headers['user-agent'],
-        'my-test-app/1.23.4 google-api-python-client/' + __version__ +
-        ' (gzip)')
+        'my-test-app/1.23.4 (gzip)')
+
+  def test_x_goog_api_client(self):
+    model = JsonModel(data_wrapper=False)
+
+    # test header composition for cloud clients that wrap discovery
+    headers = {'x-goog-api-client': 'gccl/1.23.4'}
+    path_params = {}
+    query_params = {}
+    body = {}
+
+    headers, unused_params, unused_query, body = model.request(
+        headers, path_params, query_params, body)
+
+    self.assertEqual(headers['x-goog-api-client'],
+        'gccl/1.23.4' + ' gdcl/' + __version__ + ' gl-python/' + platform.python_version())
 
   def test_bad_response(self):
     model = JsonModel(data_wrapper=False)