Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
DNS: replace httplib2 with Requests
  • Loading branch information
Jon Wayne Parrott committed Jul 26, 2017
commit 06cc1fd91336d2e4c54b6127c3535f6e98eeee22
4 changes: 2 additions & 2 deletions dns/google/cloud/dns/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,10 @@ class Client(ClientWithProject):
passed), falls back to the default inferred from the
environment.

:type _http: :class:`~httplib2.Http`
:type _http: :class:`~requests.Session`
:param _http: (Optional) HTTP object to make requests. Can be any object
that defines ``request()`` with the same interface as
:meth:`~httplib2.Http.request`. If not passed, an
:meth:`requests.Session.request`. If not passed, an
``_http`` object is created that is bound to the
``credentials`` for the current object.
This parameter should be considered private, and could
Expand Down
2 changes: 1 addition & 1 deletion dns/google/cloud/dns/zone.py
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ def _require_client(self, client):
def _set_properties(self, api_response):
"""Update properties from resource in body of ``api_response``

:type api_response: httplib2.Response
:type api_response: dict
:param api_response: response returned from an API call
"""
self._properties.clear()
Expand Down
19 changes: 11 additions & 8 deletions dns/tests/unit/test__http.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,31 +52,34 @@ def test_build_api_url_w_extra_query_params(self):
self.assertEqual(parms['bar'], 'baz')

def test_extra_headers(self):
import requests

from google.cloud import _http as base_http
from google.cloud.dns import _http as MUT

http = mock.Mock(spec=['request'])
response = mock.Mock(status=200, spec=['status'])
data = b'brent-spiner'
http.request.return_value = response, data
http = mock.create_autospec(requests.Session, instance=True)
response = requests.Response()
response.status_code = 200
response_data = b'brent-spiner'
response._content = response_data
http.request.return_value = response
client = mock.Mock(_http=http, spec=['_http'])

conn = self._make_one(client)
req_data = 'req-data-boring'
result = conn.api_request(
'GET', '/rainbow', data=req_data, expect_json=False)
self.assertEqual(result, data)
self.assertEqual(result, response_data)

expected_headers = {
'Content-Length': str(len(req_data)),
'Accept-Encoding': 'gzip',
base_http.CLIENT_INFO_HEADER: MUT._CLIENT_INFO,
'User-Agent': conn.USER_AGENT,
}
expected_uri = conn.build_api_url('/rainbow')
http.request.assert_called_once_with(
body=req_data,
data=req_data,
headers=expected_headers,
method='GET',
uri=expected_uri,
url=expected_uri,
)