Skip to content

Commit ed2f299

Browse files
committed
[FIX] core: werkzeug 3.1 compatibility
Werkzeug 3.0 deprecated `werkzeug.__version__` and 3.1 removed it. Trixie bundles werkzeug 3.1.3. So use `importlib.metadata.version` to retrieve the package's version. It was made final (non-provisional) in Python 3.10 which is the minver for odoo 17 so no need for a conditional. Also remove the unnecessary fallback in `test_misc`.
1 parent 9ccdc52 commit ed2f299

File tree

2 files changed

+4
-8
lines changed

2 files changed

+4
-8
lines changed

odoo/addons/test_http/tests/test_misc.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Part of Odoo. See LICENSE file for full copyright and licensing details.
22

33
import json
4+
from importlib import metadata
45
from io import StringIO
56
from socket import gethostbyname
67
from unittest.mock import patch
@@ -15,12 +16,7 @@
1516
from odoo.addons.test_http.utils import TEST_IP
1617
from .test_common import TestHttpBase
1718

18-
try:
19-
from importlib import metadata
20-
werkzeug_version = metadata.version('werkzeug')
21-
except ImportError:
22-
import werkzeug
23-
werkzeug_version = werkzeug.__version__
19+
werkzeug_version = metadata.version('werkzeug')
2420

2521

2622
@tagged('post_install', '-at_install')

odoo/http.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@
116116
import glob
117117
import hashlib
118118
import hmac
119+
import importlib.metadata
119120
import inspect
120121
import json
121122
import logging
@@ -179,7 +180,6 @@
179180
profiler, submap, unique, ustr,)
180181
from .tools.facade import Proxy, ProxyAttr, ProxyFunc
181182
from .tools.func import filter_kwargs, lazy_property
182-
from .tools.mimetypes import guess_mimetype
183183
from .tools.misc import pickle
184184
from .tools._vendor import sessions
185185
from .tools._vendor.useragents import UserAgent
@@ -277,7 +277,7 @@ def get_default_session():
277277
'alias', 'host', 'methods',
278278
}
279279

280-
if parse_version(werkzeug.__version__) >= parse_version('2.0.2'):
280+
if parse_version(importlib.metadata.version('werkzeug')) >= parse_version('2.0.2'):
281281
# Werkzeug 2.0.2 adds the websocket option. If a websocket request
282282
# (ws/wss) is trying to access an HTTP route, a WebsocketMismatch
283283
# exception is raised. On the other hand, Werkzeug 0.16 does not

0 commit comments

Comments
 (0)