Тестовый клиент колбы выдает AttributeError, когда follow_redirects = True и werkzeug> = 0,15 - PullRequest
2 голосов
/ 08 апреля 2019

с использованием Python 3.6, колба 0.12.4

не работает, когда werkzeug> = 0,15, работает нормально на werkzeug == 0.14.1

вот минимальный код, необходимый для воспроизведения ошибки:

from flask import Flask, redirect
app = Flask(__name__)

@app.route("/")
def hello():
    return redirect('/')

client = app.test_client()
client.get('/', follow_redirects=True)

вот обратный след

Traceback (most recent call last):
  File "hello.py", line 9, in <module>
    client.get('/', follow_redirects=True)
  File "/usr/local/lib/python3.6/site-packages/werkzeug/test.py", line 1028, in get
    return self.open(*args, **kw)
  File "/usr/local/lib/python3.6/site-packages/flask/testing.py", line 127, in open
    follow_redirects=follow_redirects)
  File "/usr/local/lib/python3.6/site-packages/werkzeug/test.py", line 1016, in open
    response, new_location, environ, buffered=buffered
  File "/usr/local/lib/python3.6/site-packages/werkzeug/test.py", line 947, in resolve_redirect
    return self.open(builder, as_tuple=True, buffered=buffered)
  File "/usr/local/lib/python3.6/site-packages/flask/testing.py", line 122, in open
    builder = make_test_environ_builder(self.application, *args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/flask/testing.py", line 29, in make_test_environ_builder
    url = url_parse(path)
  File "/usr/local/lib/python3.6/site-packages/werkzeug/urls.py", line 457, in url_parse
    i = url.find(s(":"))
AttributeError: 'EnvironBuilder' object has no attribute 'find'

1 Ответ

1 голос
/ 12 апреля 2019

Вам нужно обновить Flask или понизить Werkzeug. Werkzeug> 0.14 не поддерживается в версиях Flask до 1.0

См .: https://github.com/pallets/flask/issues/3148

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...