Skip to content

Commit 656737e

Browse files
fixed the formatting issues causing ci failure
1 parent ec23ecb commit 656737e

File tree

3 files changed

+109
-33
lines changed

3 files changed

+109
-33
lines changed

sdk/core/azure-core/azure/core/pipeline/policies/_universal.py

Lines changed: 62 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,9 @@ class HeadersPolicy(SansIOHTTPPolicy[HTTPRequestType, HTTPResponseType]):
7575
:caption: Configuring a headers policy.
7676
"""
7777

78-
def __init__(self, base_headers: Optional[Dict[str, str]] = None, **kwargs: Any) -> None:
78+
def __init__(
79+
self, base_headers: Optional[Dict[str, str]] = None, **kwargs: Any
80+
) -> None:
7981
self._headers: Dict[str, str] = base_headers or {}
8082
self._headers.update(kwargs.pop("headers", {}))
8183

@@ -227,7 +229,9 @@ def user_agent(self) -> str:
227229
:rtype: str
228230
"""
229231
if self.use_env:
230-
add_user_agent_header = os.environ.get(self._ENV_ADDITIONAL_USER_AGENT, None)
232+
add_user_agent_header = os.environ.get(
233+
self._ENV_ADDITIONAL_USER_AGENT, None
234+
)
231235
if add_user_agent_header is not None:
232236
return "{} {}".format(self._user_agent, add_user_agent_header)
233237
return self._user_agent
@@ -276,7 +280,9 @@ class NetworkTraceLoggingPolicy(SansIOHTTPPolicy[HTTPRequestType, HTTPResponseTy
276280
:caption: Configuring a network trace logging policy.
277281
"""
278282

279-
def __init__(self, logging_enable: bool = False, **kwargs: Any): # pylint: disable=unused-argument
283+
def __init__(
284+
self, logging_enable: bool = False, **kwargs: Any
285+
): # pylint: disable=unused-argument
280286
self.enable_http_logger = logging_enable
281287

282288
def on_request(self, request: PipelineRequest[HTTPRequestType]) -> None:
@@ -354,7 +360,9 @@ def on_response(
354360
if header and pattern.match(header):
355361
filename = header.partition("=")[2]
356362
log_string += "\nFile attachments: {}".format(filename)
357-
elif http_response.headers.get("content-type", "").endswith("octet-stream"):
363+
elif http_response.headers.get("content-type", "").endswith(
364+
"octet-stream"
365+
):
358366
log_string += "\nBody contains binary data."
359367
elif http_response.headers.get("content-type", "").startswith("image"):
360368
log_string += "\nBody contains image data."
@@ -427,19 +435,41 @@ class HttpLoggingPolicy(
427435
REDACTED_PLACEHOLDER: str = "REDACTED"
428436
MULTI_RECORD_LOG: str = "AZURE_SDK_LOGGING_MULTIRECORD"
429437

430-
def __init__(self, logger: Optional[logging.Logger] = None, *, logging_level: int = logging.INFO, **kwargs: Any): # pylint: disable=unused-argument
431-
self.logger: logging.Logger = logger or logging.getLogger("azure.core.pipeline.policies.http_logging_policy")
438+
def __init__(
439+
self,
440+
logger: Optional[logging.Logger] = None,
441+
*,
442+
logging_level: int = logging.INFO,
443+
**kwargs: Any
444+
): # pylint: disable=unused-argument
445+
self.logger: logging.Logger = logger or logging.getLogger(
446+
"azure.core.pipeline.policies.http_logging_policy"
447+
)
432448
self.logging_level: int = logging_level
433449
self.allowed_query_params: Set[str] = set()
434-
self.allowed_header_names: Set[str] = set(self.__class__.DEFAULT_HEADERS_ALLOWLIST)
450+
self.allowed_header_names: Set[str] = set(
451+
self.__class__.DEFAULT_HEADERS_ALLOWLIST
452+
)
435453

436454
def _redact_query_param(self, key: str, value: str) -> str:
437-
lower_case_allowed_query_params = [param.lower() for param in self.allowed_query_params]
438-
return value if key.lower() in lower_case_allowed_query_params else HttpLoggingPolicy.REDACTED_PLACEHOLDER
455+
lower_case_allowed_query_params = [
456+
param.lower() for param in self.allowed_query_params
457+
]
458+
return (
459+
value
460+
if key.lower() in lower_case_allowed_query_params
461+
else HttpLoggingPolicy.REDACTED_PLACEHOLDER
462+
)
439463

440464
def _redact_header(self, key: str, value: str) -> str:
441-
lower_case_allowed_header_names = [header.lower() for header in self.allowed_header_names]
442-
return value if key.lower() in lower_case_allowed_header_names else HttpLoggingPolicy.REDACTED_PLACEHOLDER
465+
lower_case_allowed_header_names = [
466+
header.lower() for header in self.allowed_header_names
467+
]
468+
return (
469+
value
470+
if key.lower() in lower_case_allowed_header_names
471+
else HttpLoggingPolicy.REDACTED_PLACEHOLDER
472+
)
443473

444474
def on_request( # pylint: disable=too-many-return-statements
445475
self, request: PipelineRequest[HTTPRequestType]
@@ -454,23 +484,29 @@ def on_request( # pylint: disable=too-many-return-statements
454484
# Get logger in my context first (request has been retried)
455485
# then read from kwargs (pop if that's the case)
456486
# then use my instance logger
457-
logger = request.context.setdefault("logger", options.pop("logger", self.logger))
487+
logger = request.context.setdefault(
488+
"logger", options.pop("logger", self.logger)
489+
)
458490

459491
if not logger.isEnabledFor(self.logging_level):
460492
return
461493

462494
try:
463495
parsed_url = list(urllib.parse.urlparse(http_request.url))
464496
parsed_qp = urllib.parse.parse_qsl(parsed_url[4], keep_blank_values=True)
465-
filtered_qp = [(key, self._redact_query_param(key, value)) for key, value in parsed_qp]
497+
filtered_qp = [
498+
(key, self._redact_query_param(key, value)) for key, value in parsed_qp
499+
]
466500
# 4 is query
467501
parsed_url[4] = "&".join(["=".join(part) for part in filtered_qp])
468502
redacted_url = urllib.parse.urlunparse(parsed_url)
469503

470504
multi_record = os.environ.get(HttpLoggingPolicy.MULTI_RECORD_LOG, False)
471505
if multi_record:
472506
logger.log(self.logging_level, "Request URL: %r", redacted_url)
473-
logger.log(self.logging_level, "Request method: %r", http_request.method)
507+
logger.log(
508+
self.logging_level, "Request method: %r", http_request.method
509+
)
474510
logger.log(self.logging_level, "Request headers:")
475511
for header, value in http_request.headers.items():
476512
value = self._redact_header(header, value)
@@ -535,15 +571,19 @@ def on_response(
535571
# then use my instance logger
536572
# If on_request was called, should always read from context
537573
options = request.context.options
538-
logger = request.context.setdefault("logger", options.pop("logger", self.logger))
574+
logger = request.context.setdefault(
575+
"logger", options.pop("logger", self.logger)
576+
)
539577

540578
try:
541579
if not logger.isEnabledFor(self.logging_level):
542580
return
543581

544582
multi_record = os.environ.get(HttpLoggingPolicy.MULTI_RECORD_LOG, False)
545583
if multi_record:
546-
logger.log(self.logging_level, "Response status: %r", http_response.status_code)
584+
logger.log(
585+
self.logging_level, "Response status: %r", http_response.status_code
586+
)
547587
logger.log(self.logging_level, "Response headers:")
548588
for res_header, value in http_response.headers.items():
549589
value = self._redact_header(res_header, value)
@@ -573,7 +613,9 @@ class ContentDecodePolicy(SansIOHTTPPolicy[HTTPRequestType, HTTPResponseType]):
573613
CONTEXT_NAME = "deserialized_data"
574614

575615
def __init__(
576-
self, response_encoding: Optional[str] = None, **kwargs: Any # pylint: disable=unused-argument
616+
self,
617+
response_encoding: Optional[str] = None,
618+
**kwargs: Any # pylint: disable=unused-argument
577619
) -> None:
578620
self._response_encoding = response_encoding
579621

@@ -690,7 +732,9 @@ def deserialize_from_http_generics(
690732
# even if it's likely dead code
691733
if not inspect.iscoroutinefunction(response.read): # type: ignore
692734
response.read() # type: ignore
693-
return cls.deserialize_from_text(response.text(encoding), mime_type, response=response)
735+
return cls.deserialize_from_text(
736+
response.text(encoding), mime_type, response=response
737+
)
694738

695739
def on_request(self, request: PipelineRequest[HTTPRequestType]) -> None:
696740
"""Set the response encoding in the request context.

sdk/core/azure-core/tests/async_tests/test_http_logging_policy_async.py

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@
1616
from utils import HTTP_RESPONSES, request_and_responses_product, create_http_response
1717

1818

19-
@pytest.mark.parametrize("http_request,http_response", request_and_responses_product(HTTP_RESPONSES))
19+
@pytest.mark.parametrize(
20+
"http_request,http_response", request_and_responses_product(HTTP_RESPONSES)
21+
)
2022
def test_http_logger(http_request, http_response):
2123
class MockHandler(logging.Handler):
2224
def __init__(self):
@@ -114,11 +116,16 @@ def emit(self, record):
114116
assert len(mock_handler.messages) == 2
115117
messages_request = mock_handler.messages[0].message.split("\n")
116118
messages_response = mock_handler.messages[1].message.split("\n")
117-
assert messages_request[0] == "Request URL: 'http://localhost/?country=france&city=REDACTED'"
119+
assert (
120+
messages_request[0]
121+
== "Request URL: 'http://localhost/?country=france&city=REDACTED'"
122+
)
118123
assert messages_request[1] == "Request method: 'GET'"
119124
assert messages_request[2] == "Request headers:"
120125
# Dict not ordered in Python, exact logging order doesn't matter
121-
assert set([messages_request[3], messages_request[4]]) == set([" 'Accept': 'Caramel'", " 'Hate': 'REDACTED'"])
126+
assert set([messages_request[3], messages_request[4]]) == set(
127+
[" 'Accept': 'Caramel'", " 'Hate': 'REDACTED'"]
128+
)
122129
assert messages_request[5] == "No body was attached to the request"
123130
assert messages_response[0] == "Response status: 202"
124131
assert messages_response[1] == "Response headers:"
@@ -130,7 +137,9 @@ def emit(self, record):
130137
mock_handler.reset()
131138

132139

133-
@pytest.mark.parametrize("http_request,http_response", request_and_responses_product(HTTP_RESPONSES))
140+
@pytest.mark.parametrize(
141+
"http_request,http_response", request_and_responses_product(HTTP_RESPONSES)
142+
)
134143
def test_http_logger_operation_level(http_request, http_response):
135144
class MockHandler(logging.Handler):
136145
def __init__(self):
@@ -210,7 +219,9 @@ def emit(self, record):
210219
mock_handler.reset()
211220

212221

213-
@pytest.mark.parametrize("http_request,http_response", request_and_responses_product(HTTP_RESPONSES))
222+
@pytest.mark.parametrize(
223+
"http_request,http_response", request_and_responses_product(HTTP_RESPONSES)
224+
)
214225
def test_http_logger_with_body(http_request, http_response):
215226
class MockHandler(logging.Handler):
216227
def __init__(self):
@@ -255,7 +266,9 @@ def emit(self, record):
255266
mock_handler.reset()
256267

257268

258-
@pytest.mark.parametrize("http_request,http_response", request_and_responses_product(HTTP_RESPONSES))
269+
@pytest.mark.parametrize(
270+
"http_request,http_response", request_and_responses_product(HTTP_RESPONSES)
271+
)
259272
def test_http_logger_with_custom_log_level(http_request, http_response):
260273
class MockHandler(logging.Handler):
261274
def __init__(self):
@@ -299,8 +312,12 @@ def emit(self, record):
299312
mock_handler.reset()
300313

301314

302-
@pytest.mark.parametrize("http_request,http_response", request_and_responses_product(HTTP_RESPONSES))
303-
@pytest.mark.skipif(sys.version_info < (3, 6), reason="types.AsyncGeneratorType does not exist in 3.5")
315+
@pytest.mark.parametrize(
316+
"http_request,http_response", request_and_responses_product(HTTP_RESPONSES)
317+
)
318+
@pytest.mark.skipif(
319+
sys.version_info < (3, 6), reason="types.AsyncGeneratorType does not exist in 3.5"
320+
)
304321
def test_http_logger_with_generator_body(http_request, http_response):
305322
class MockHandler(logging.Handler):
306323
def __init__(self):

sdk/core/azure-core/tests/test_http_logging_policy.py

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@
1919
from azure.core.pipeline._tools import is_rest
2020

2121

22-
@pytest.mark.parametrize("http_request,http_response", request_and_responses_product(HTTP_RESPONSES))
22+
@pytest.mark.parametrize(
23+
"http_request,http_response", request_and_responses_product(HTTP_RESPONSES)
24+
)
2325
def test_http_logger(http_request, http_response):
2426
class MockHandler(logging.Handler):
2527
def __init__(self):
@@ -119,11 +121,16 @@ def emit(self, record):
119121
assert len(mock_handler.messages) == 2
120122
messages_request = mock_handler.messages[0].message.split("\n")
121123
messages_response = mock_handler.messages[1].message.split("\n")
122-
assert messages_request[0] == "Request URL: 'http://localhost/?country=france&city=REDACTED'"
124+
assert (
125+
messages_request[0]
126+
== "Request URL: 'http://localhost/?country=france&city=REDACTED'"
127+
)
123128
assert messages_request[1] == "Request method: 'GET'"
124129
assert messages_request[2] == "Request headers:"
125130
# Dict not ordered in Python, exact logging order doesn't matter
126-
assert set([messages_request[3], messages_request[4]]) == set([" 'Accept': 'Caramel'", " 'Hate': 'REDACTED'"])
131+
assert set([messages_request[3], messages_request[4]]) == set(
132+
[" 'Accept': 'Caramel'", " 'Hate': 'REDACTED'"]
133+
)
127134
assert messages_request[5] == "No body was attached to the request"
128135
assert messages_response[0] == "Response status: 202"
129136
assert messages_response[1] == "Response headers:"
@@ -135,7 +142,9 @@ def emit(self, record):
135142
mock_handler.reset()
136143

137144

138-
@pytest.mark.parametrize("http_request,http_response", request_and_responses_product(HTTP_RESPONSES))
145+
@pytest.mark.parametrize(
146+
"http_request,http_response", request_and_responses_product(HTTP_RESPONSES)
147+
)
139148
def test_http_logger_operation_level(http_request, http_response):
140149
class MockHandler(logging.Handler):
141150
def __init__(self):
@@ -215,7 +224,9 @@ def emit(self, record):
215224
mock_handler.reset()
216225

217226

218-
@pytest.mark.parametrize("http_request,http_response", request_and_responses_product(HTTP_RESPONSES))
227+
@pytest.mark.parametrize(
228+
"http_request,http_response", request_and_responses_product(HTTP_RESPONSES)
229+
)
219230
def test_http_logger_with_body(http_request, http_response):
220231
class MockHandler(logging.Handler):
221232
def __init__(self):
@@ -260,7 +271,9 @@ def emit(self, record):
260271
mock_handler.reset()
261272

262273

263-
@pytest.mark.parametrize("http_request,http_response", request_and_responses_product(HTTP_RESPONSES))
274+
@pytest.mark.parametrize(
275+
"http_request,http_response", request_and_responses_product(HTTP_RESPONSES)
276+
)
264277
def test_http_logger_with_custom_log_level(http_request, http_response):
265278
class MockHandler(logging.Handler):
266279
def __init__(self):
@@ -304,7 +317,9 @@ def emit(self, record):
304317
mock_handler.reset()
305318

306319

307-
@pytest.mark.parametrize("http_request,http_response", request_and_responses_product(HTTP_RESPONSES))
320+
@pytest.mark.parametrize(
321+
"http_request,http_response", request_and_responses_product(HTTP_RESPONSES)
322+
)
308323
def test_http_logger_with_generator_body(http_request, http_response):
309324
class MockHandler(logging.Handler):
310325
def __init__(self):

0 commit comments

Comments
 (0)