Skip to content

Commit

Permalink
Merge ead976e into c512183
Browse files Browse the repository at this point in the history
  • Loading branch information
abn committed Nov 17, 2015
2 parents c512183 + ead976e commit d68b84e
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 15 deletions.
12 changes: 6 additions & 6 deletions tests/system/conftest.py
Expand Up @@ -5,18 +5,18 @@


@pytest.fixture
def requests(monkeypatch):
requests = Mock()
monkeypatch.setattr(ubersmith.api, 'requests', requests)
return requests
def session(monkeypatch):
session = Mock()
monkeypatch.setattr(ubersmith.api.RequestHandler, 'session', session)
return session


@pytest.fixture
def response(requests):
def response(session):
response = Mock()
response.headers = {
'content-type': 'application/json',
}
response.text = u""
requests.post.return_value = response
session.post.return_value = response
return response
12 changes: 6 additions & 6 deletions tests/test_handlers.py
Expand Up @@ -158,17 +158,17 @@ def it_does_not_proxy_calls_to_methods_that_are_not_callable(self):

def it_validates_ssl(self, response):
h = RequestHandler('')
with patch('ubersmith.api.requests') as requests:
requests.post.return_value = response
with patch('ubersmith.api.RequestHandler.session') as session:
session.post.return_value = response
h.process_request('uber.method_list')
assert requests.post.call_args[1]['verify'] is True
assert session.post.call_args[1]['verify'] is True

def it_can_disable_ssl_validation(self, response):
h = RequestHandler('', verify=False)
with patch('ubersmith.api.requests') as requests:
requests.post.return_value = response
with patch('ubersmith.api.RequestHandler.session') as session:
session.post.return_value = response
h.process_request('uber.method_list')
assert requests.post.call_args[1]['verify'] is False
assert session.post.call_args[1]['verify'] is False

def it_validates_bad_methods(self):
h = RequestHandler('')
Expand Down
11 changes: 8 additions & 3 deletions ubersmith/api.py
Expand Up @@ -239,6 +239,11 @@ def __init__(self, base_url, username=None, password=None, verify=True):
self.username = username
self.password = password
self.verify = verify
self._session = requests.session()

@property
def session(self):
return self._session

def process_request(self, method, data=None):
"""Process request over HTTP to ubersmith instance.
Expand Down Expand Up @@ -289,9 +294,9 @@ def _is_token_response(response):
def _send_request(self, method, data):
url = append_qs(self.base_url, {'method': method})
data, files, headers = self._encode_data(data)
return requests.post(url, data=data, files=files, headers=headers,
auth=(self.username, self.password),
verify=self.verify)
return self.session.post(url, data=data, files=files, headers=headers,
auth=(self.username, self.password),
verify=self.verify)

@staticmethod
def _validate_request_method(method):
Expand Down

0 comments on commit d68b84e

Please sign in to comment.