Skip to content

Commit 089511d

Browse files
committed
httpserver.py: fix werkzeug deprecated parse_authorization_header call
Replace parse_authorization_header with Authorization.from_header as suggested. Fall back to parse_authorization_header if Authorization.from_header is not defined for backward compatibility.
1 parent 0eb6fa3 commit 089511d

2 files changed

Lines changed: 13 additions & 2 deletions

File tree

pytest_httpserver/httpserver.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,9 @@
2323
from typing import Tuple
2424
from typing import Union
2525

26+
import werkzeug.http
27+
from werkzeug.datastructures import Authorization
2628
from werkzeug.datastructures import MultiDict
27-
from werkzeug.http import parse_authorization_header
2829
from werkzeug.serving import make_server
2930
from werkzeug.wrappers import Request
3031
from werkzeug.wrappers import Response
@@ -133,7 +134,10 @@ def __init__(self, matchers: Optional[Mapping[str, Callable[[Optional[str], str]
133134

134135
@staticmethod
135136
def authorization_header_value_matcher(actual: Optional[str], expected: str) -> bool:
136-
return parse_authorization_header(actual) == parse_authorization_header(expected)
137+
callable = getattr(Authorization, "from_header", None)
138+
if callable is None: # Werkzeug < 2.3.0
139+
callable = werkzeug.http.parse_authorization_header
140+
return callable(actual) == callable(expected)
137141

138142
@staticmethod
139143
def default_header_value_matcher(actual: Optional[str], expected: str) -> bool:
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
fixes:
3+
- |
4+
Fix Werkzeug deprecation warning about ``parse_authorization_header`` call.
5+
Replace ``parse_authorization_header`` with ``Authorization.from_header`` as
6+
suggested. This fix should not introduce any functional change for the
7+
users.

0 commit comments

Comments
 (0)