Skip to content

Commit ba2b7d9

Browse files
author
Nestor Acuna-Blanco
committed
feat: enable credentials visualization when in debug or trace logging.
1 parent 023d3ed commit ba2b7d9

File tree

2 files changed

+27
-2
lines changed

2 files changed

+27
-2
lines changed

src/RequestsLibrary/log.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def log_request(response):
2626
original_request = request
2727
redirected = ""
2828
safe_headers = dict(original_request.headers)
29-
if AUTHORIZATION in safe_headers:
29+
if logger.LOGLEVEL not in ['TRACE', 'DEBUG'] and AUTHORIZATION in safe_headers:
3030
safe_headers[AUTHORIZATION] = '*****'
3131
logger.info(
3232
"%s Request : " % original_request.method.upper()

utests/test_log.py

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import json
22
import os
3+
import pytest
34

45
from requests import Request
56

@@ -79,8 +80,10 @@ def test_log_request_with_headers(mocked_logger):
7980
"body=%s \n " % request.body)
8081

8182

83+
@pytest.mark.parametrize('log_level', ['INFO', 'CONSOLE', 'HTML', 'WARN', 'ERROR'])
8284
@mock.patch('RequestsLibrary.log.logger')
83-
def test_log_request_with_headers_auth(mocked_logger):
85+
def test_log_request_with_headers_auth_with_no_debug_trace_logger(mocked_logger, log_level):
86+
mocked_logger.LOGLEVEL = log_level
8487
headers = {'User-Agent': 'python-requests/2.31.0',
8588
'Accept-Encoding': 'gzip, deflate',
8689
'Accept': '*/*',
@@ -101,6 +104,28 @@ def test_log_request_with_headers_auth(mocked_logger):
101104
"body=%s \n " % request.body)
102105

103106

107+
@pytest.mark.parametrize('log_level', ['DEBUG', 'TRACE'])
108+
@mock.patch('RequestsLibrary.log.logger')
109+
def test_log_request_with_headers_auth_with_debug_trace_logger(mocked_logger, log_level):
110+
headers = {'User-Agent': 'python-requests/2.31.0',
111+
'Accept-Encoding': 'gzip, deflate',
112+
'Accept': '*/*',
113+
'Connection': 'keep-alive',
114+
'Authorization': 'some_token'}
115+
mocked_logger.LOGLEVEL = log_level
116+
request = Request(method='get', url='http://mock.rulezz', headers=headers)
117+
request = request.prepare()
118+
response = mock.MagicMock()
119+
response.history = []
120+
response.request = request
121+
log_request(response)
122+
assert mocked_logger.info.call_args[0][0] == ("%s Request : " % request.method +
123+
"url=%s \n " % request.url +
124+
"path_url=%s \n " % request.path_url +
125+
"headers=%s \n " % request.headers +
126+
"body=%s \n " % request.body)
127+
128+
104129
@mock.patch('RequestsLibrary.log.logger')
105130
def test_log_request_with_redirect(mocked_logger):
106131
request = Request(method='get', url='http://mock.rulezz/redirected')

0 commit comments

Comments
 (0)