8000 bugfix - verify_ssl parameter · Sivateja0689/python-sasctl@d4ee732 · GitHub
[go: up one dir, main page]

Skip to content

Commit d4ee732

Browse files
committed
bugfix - verify_ssl parameter
1 parent 9d95618 commit d4ee732

File tree

4 files changed

+40
-2
lines changed

4 files changed

+40
-2
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@ Unreleased
22
----------
33
-
44

5+
v1.4.6 (2020-1-24)
6+
------------------
7+
**Bugfixes**
8+
- Fixed an issue where the `REQUESTS_CA_BUNDLE` environment variable was taking precedence over the `verify_ssl` parameter.
9+
510
v1.4.5 (2019-12-5)
611
------------------
712
**Changes**

src/sasctl/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# Copyright © 2019, SAS Institute Inc., Cary, NC, USA. All Rights Reserved.
55
# SPDX-License-Identifier: Apache-2.0
66

7-
__version__ = '1.4.5'
7+
__version__ = '1.4.6'
88
__author__ = 'SAS'
99
__credits__ = ['Yi Jian Ching, Lucas De Paula, James Kochuba, Peter Tobac, '
1010
'Chris Toth, Jon Walker']

src/sasctl/core.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,6 @@ def username(self):
387387
def hostname(self):
388388
return self._settings.get('domain')
389389

390-
391390
def send(self, request, **kwargs):
392391
if self.message_log.isEnabledFor(logging.DEBUG):
393392
r = copy.deepcopy(request)
@@ -431,6 +430,7 @@ def request(self, method, url,
431430
hooks=None, stream=None, verify=None, cert=None, json=None):
432431

433432
url = self._build_url(url)
433+
verify = verify or self.verify
434434

435435
try:
436436
return super(Session, self).request(method, url, params, data,

tests/unit/test_session.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,10 @@ def test_ssl_context():
280280

281281

282282
def test_verify_ssl(missing_packages):
283+
# Clear environment variables
284+
os.environ.pop('SSLREQCERT', None)
285+
os.environ.pop('REQUESTS_CA_BUNDLE', None)
286+
283287
with mock.patch('sasctl.core.Session.get_token', return_value='token'):
284288
# Should verify SSL by default
285289
s = Session('hostname', 'username', 'password')
@@ -315,6 +319,35 @@ def test_verify_ssl(missing_packages):
315319
s = Session('127.0.0.1', 'username', 'password', verify_ssl=True)
316320
assert s.verify == True
317321

322+
# Clear environment variables
323+
os.environ.pop('SSLREQCERT', None)
324+
os.environ.pop('REQUESTS_CA_BUNDLE', None)
325+
326+
# Ensure correct verify_ssl values are passed to requests module
327+
with mock.patch('requests.Session.request') as req:
328+
req.return_value.status_code = 200
329+
s = Session('127.0.0.1', 'username', 'password')
330+
331+
# Check value passed to verify= parameter
332+
assert req.call_args[0][13] == True
333+
assert s.verify == True
334+
335+
with mock.patch('requests.Session.request') as req:
336+
req.return_value.status_code = 200
337+
s = Session('127.0.0.1', 'username', 'password', verify_ssl=False)
338+
339+
# Check value passed to verify= parameter
340+
assert req.call_args[0][13] == False
341+
assert s.verify == False
342+
343+
with mock.patch('requests.Session.request') as req:
344+
# Explicit verify_ssl= flag should take precedence over env vars
345+
os.environ['REQUESTS_CA_BUNDLE'] = 'dummy.crt'
346+
s = Session('127.0.0.1', 'username', 'password', verify_ssl=False)
347+
348+
# Check value passed to verify= parameter
349+
assert req.call_args[0][13] == False
350+
assert s.verify == False
318351

319352

320353
def test_kerberos():

0 commit comments

Comments
 (0)
0