TypeError: __init__() got an unexpected keyword argument 'as_tuple'
TypeError: __init__() got an unexpected keyword argument 'as_tuple'
当我测试我的 API 时,我最近开始收到以下错误。
if request is None:
> builder = EnvironBuilder(*args, **kwargs)
E TypeError: __init__() got an unexpected keyword argument 'as_tuple'
/usr/local/lib/python3.7/site-packages/werkzeug/test.py:1081: TypeError
正如我从 Werkzeug
较新版本的文档中读到的那样,as_tuple
参数已被删除。
我的部分测试代码是
from flask.testing import FlaskClient
@pytest.fixture(name='test_client')
def _test_client() -> FlaskClient:
app = create_app()
return app.test_client()
class TestPeerscoutAPI:
def test_should_have_access_for_status_page(self, test_client: FlaskClient):
response = test_client.get('/api/status')
assert _get_ok_json(response) == {"status": "OK"}
从版本 2.1.0 开始,werkzeug
已删除 Client
的 as_tuple
参数。由于 Flask 包装了 werkzeug 并且您使用的版本仍然传递此参数,因此它将失败。参见 the exact change on the GitHub PR here。
您可以采用以下两种方法之一来解决此问题:
升级合剂
固定你的 werkzeug 版本
# in requirements.txt
werkzeug==2.0.3
添加到 Christian Di Lorenzo 的回答中
- 升级合剂
# in requirements.txt
Flask==2.1.1
- 固定你的 werkzeug 版本
# in requirements.txt
werkzeug==2.0.3
当我测试我的 API 时,我最近开始收到以下错误。
if request is None:
> builder = EnvironBuilder(*args, **kwargs)
E TypeError: __init__() got an unexpected keyword argument 'as_tuple'
/usr/local/lib/python3.7/site-packages/werkzeug/test.py:1081: TypeError
正如我从 Werkzeug
较新版本的文档中读到的那样,as_tuple
参数已被删除。
我的部分测试代码是
from flask.testing import FlaskClient
@pytest.fixture(name='test_client')
def _test_client() -> FlaskClient:
app = create_app()
return app.test_client()
class TestPeerscoutAPI:
def test_should_have_access_for_status_page(self, test_client: FlaskClient):
response = test_client.get('/api/status')
assert _get_ok_json(response) == {"status": "OK"}
从版本 2.1.0 开始,werkzeug
已删除 Client
的 as_tuple
参数。由于 Flask 包装了 werkzeug 并且您使用的版本仍然传递此参数,因此它将失败。参见 the exact change on the GitHub PR here。
您可以采用以下两种方法之一来解决此问题:
升级合剂
固定你的 werkzeug 版本
# in requirements.txt
werkzeug==2.0.3
添加到 Christian Di Lorenzo 的回答中
- 升级合剂
# in requirements.txt
Flask==2.1.1
- 固定你的 werkzeug 版本
# in requirements.txt
werkzeug==2.0.3