Page MenuHomePhabricator

Python 3.8 tests fails with werkzeug > 0.15.2 dependency
Closed, ResolvedPublic

Description

werkzeug>=0.14.1 is required by httbbin used by pytest-httpbin used by pytest. werkzeug 0.15.3 and 0.15.4 are deployed 14th/15th May and our Python 3.8 tests fails after that date:

running build_ext
Traceback (most recent call last):
  File "setup.py", line 204, in <module>
    setup(
  File "/home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/setuptools/__init__.py", line 145, in setup
    return distutils.core.setup(**attrs)
  File "/opt/python/3.8-dev/lib/python3.8/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/opt/python/3.8-dev/lib/python3.8/distutils/dist.py", line 966, in run_commands
    self.run_command(cmd)
  File "/opt/python/3.8-dev/lib/python3.8/distutils/dist.py", line 985, in run_command
    cmd_obj.run()
  File "/home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/ptr.py", line 209, in run
    return self.run_tests()
  File "/home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/ptr.py", line 220, in run_tests
    result_code = __import__('pytest').main()
  File "/home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/_pytest/config/__init__.py", line 60, in main
    config = _prepareconfig(args, plugins)
  File "/home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/_pytest/config/__init__.py", line 200, in _prepareconfig
    return pluginmanager.hook.pytest_cmdline_parse(
  File "/home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/pluggy/hooks.py", line 289, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/pluggy/manager.py", line 68, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/pluggy/manager.py", line 59, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/pluggy/callers.py", line 203, in _multicall
    gen.send(outcome)
  File "/home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/_pytest/helpconfig.py", line 93, in pytest_cmdline_parse
    config = outcome.get_result()
  File "/home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/pluggy/callers.py", line 187, in _multicall
    res = hook_impl.function(*args)
  File "/home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/_pytest/config/__init__.py", line 679, in pytest_cmdline_parse
    self.parse(args)
  File "/home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/_pytest/config/__init__.py", line 896, in parse
    self._preparse(args, addopts=addopts)
  File "/home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/_pytest/config/__init__.py", line 841, in _preparse
    self.pluginmanager.load_setuptools_entrypoints("pytest11")
  File "/home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/pluggy/manager.py", line 274, in load_setuptools_entrypoints
    plugin = ep.load()
  File "/home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/pkg_resources/__init__.py", line 2434, in load
    return self.resolve()
  File "/home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/pkg_resources/__init__.py", line 2440, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 618, in _load_backward_compatible
  File "/home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/_pytest/assertion/rewrite.py", line 299, in load_module
    six.exec_(co, mod.__dict__)
  File "/home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/pytest_httpbin/plugin.py", line 3, in <module>
    from httpbin import app as httpbin_app
  File "/home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/httpbin/__init__.py", line 3, in <module>
    from .core import *
  File "/home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/httpbin/core.py", line 26, in <module>
    from . import filters
  File "/home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/httpbin/filters.py", line 23, in <module>
    app = Flask(__name__)
  File "/home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/flask/app.py", line 559, in __init__
    self.add_url_rule(
  File "/home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/flask/app.py", line 67, in wrapper_func
    return f(self, *args, **kwargs)
  File "/home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/flask/app.py", line 1217, in add_url_rule
    self.url_map.add(rule)
  File "/home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/werkzeug/routing.py", line 1388, in add
    rule.bind(self)
  File "/home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/werkzeug/routing.py", line 730, in bind
    self.compile()
  File "/home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/werkzeug/routing.py", line 794, in compile
    self._build = self._compile_builder(False).__get__(self, None)
  File "/home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/werkzeug/routing.py", line 951, in _compile_builder
    code = compile(module, "<werkzeug routing>", "exec")
TypeError: required field "type_ignores" missing from Module

Event Timeline

Restricted Application added subscribers: pywikibot-bugs-list, Aklapper. · View Herald Transcript
Xqt triaged this task as Medium priority.May 26 2019, 11:43 AM

Change 512526 had a related patch set uploaded (by Xqt; owner: Xqt):
[pywikibot/core@master] [tests] Use werkzeug != 0.15.2, != 0.15.3 in dev-requirements.txt

https://gerrit.wikimedia.org/r/512526

Change 512526 merged by jenkins-bot:
[pywikibot/core@master] [tests] Use werkzeug != 0.15.2, != 0.15.3 in dev-requirements.txt

https://gerrit.wikimedia.org/r/512526

Dalba claimed this task.
Dalba subscribed.

Werkzeug 0.15.4 is released and the upstream issue seems to have been resolved.

Dvorapa subscribed.

@Dalba It still fails with 0.15.4
@Xqt 0.15.2 and 0.15.3 are failing too (3.8-dev not recognized as >= 3.8):

Ignoring pytest: markers 'python_full_version < "3.5"' don't match your environment
Ignoring pytest: markers 'python_full_version >= "3.5"' don't match your environment
Ignoring werkzeug: markers 'python_full_version >= "3.8"' don't match your environment
Ignoring mock: markers 'python_version < "3"' don't match your environment

( @Xqt: Please don't restart errored builds if not necessarily needed. They are erroring again usually and it takes them 50 minutes to timeout. The other tests must wait for these to complete. )

@Dalba It still fails with 0.15.4

My mistake, it's currently scheduled for 0.15.5.[1]

[1]: https://github.com/pallets/werkzeug/blob/0.15.x/CHANGES.rst#version-0155

( @Xqt: Please don't restart errored builds if not necessarily needed. They are erroring again usually and it takes them 50 minutes to timeout. The other tests must wait for these to complete. )

Btw the last commit has priority anyway if it is started already.

Change 513257 had a related patch set uploaded (by Xqt; owner: Xqt):
[pywikibot/core@master] [tests] Use werkzeug != 0.15.3, != 0.15.4 in dev-requirements.txt

https://gerrit.wikimedia.org/r/513257

Change 513257 merged by jenkins-bot:
[pywikibot/core@master] [tests] Use werkzeug != 0.15.3, != 0.15.4 in dev-requirements.txt

https://gerrit.wikimedia.org/r/513257

The new Python 3.8-dev also fails with werkzeug 0.15.2 but a different traceback:
https://api.travis-ci.org/v3/job/539077221/log.txt

We should wait for 0.15.5

Xqt removed Xqt as the assignee of this task.May 30 2019, 11:42 AM
Xqt lowered the priority of this task from Medium to Lowest.
Xqt removed a project: Patch-For-Review.
Xqt claimed this task.

Solved upstream with 0.15.5