Most travis jobs are filing with the following error:
$ if [[ "$USE_NOSE" == "1" ]]; then nosetests --version ; if [[ "$SITE_ONLY" == "1" ]]; then python setup.py nosetests --tests tests --verbosity=2 -a "family=$FAMILY,code=$LANGUAGE" --with-trim --with-coverage --cover-package=. ; else python setup.py nosetests --tests tests --verbosity=2 --with-trim --with-coverage --cover-package=. ; fi ; elif [[ "$USE_PYTEST" == "1" ]]; then if [[ "$SITE_ONLY" == "1" ]]; then python setup.py pytest --addopts="-vvv -s --timeout=$TEST_TIMEOUT --cov=. -a \"family=='$FAMILY' and code=='$LANGUAGE'\"" ; else python setup.py pytest --addopts="-vvv -s --timeout=$TEST_TIMEOUT --cov=." ; fi else coverage run setup.py test ; fi running pytest Searching for bz2file Reading https://pypi.org/simple/bz2file/ Downloading https://files.pythonhosted.org/packages/61/39/122222b5e85cd41c391b68a99ee296584b2a2d1d233e7ee32b4532384f2d/bz2file-0.98.tar.gz#sha256=64c1f811e31556ba9931953c8ec7b397488726c63e09a4c67004f43bdd28da88 Best match: bz2file 0.98 Processing bz2file-0.98.tar.gz Writing /tmp/easy_install-w_2x3jss/bz2file-0.98/setup.cfg Running bz2file-0.98/setup.py -q bdist_egg --dist-dir /tmp/easy_install-w_2x3jss/bz2file-0.98/egg-dist-tmp-44a0u3lc zip_safe flag not set; analyzing archive contents... Moving bz2file-0.98-py3.6.egg to /home/travis/build/wikimedia/pywikibot/.eggs Installed /home/travis/build/wikimedia/pywikibot/.eggs/bz2file-0.98-py3.6.egg running egg_info creating pywikibot.egg-info writing pywikibot.egg-info/PKG-INFO writing dependency_links to pywikibot.egg-info/dependency_links.txt writing requirements to pywikibot.egg-info/requires.txt writing top-level names to pywikibot.egg-info/top_level.txt writing manifest file 'pywikibot.egg-info/SOURCES.txt' reading manifest file 'pywikibot.egg-info/SOURCES.txt' writing manifest file 'pywikibot.egg-info/SOURCES.txt' running build_ext Traceback (most recent call last): File "setup.py", line 239, in <module> use_2to3=False File "/home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages/setuptools/__init__.py", line 129, in setup return distutils.core.setup(**attrs) File "/opt/python/3.6.3/lib/python3.6/distutils/core.py", line 148, in setup dist.run_commands() File "/opt/python/3.6.3/lib/python3.6/distutils/dist.py", line 955, in run_commands self.run_command(cmd) File "/opt/python/3.6.3/lib/python3.6/distutils/dist.py", line 974, in run_command cmd_obj.run() File "/home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages/ptr.py", line 176, in run return self.run_tests() File "/home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages/ptr.py", line 187, in run_tests result_code = __import__('pytest').main() File "/home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages/_pytest/config.py", line 50, in main config = _prepareconfig(args, plugins) File "/home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages/_pytest/config.py", line 160, in _prepareconfig pluginmanager=pluginmanager, args=args) File "/home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages/pluggy/__init__.py", line 617, in __call__ return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs) File "/home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages/pluggy/__init__.py", line 222, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "/home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages/pluggy/__init__.py", line 216, in <lambda> firstresult=hook.spec_opts.get('firstresult'), File "/home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages/pluggy/callers.py", line 196, in _multicall gen.send(outcome) File "/home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages/_pytest/helpconfig.py", line 68, in pytest_cmdline_parse config = outcome.get_result() File "/home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages/pluggy/callers.py", line 76, in get_result raise ex[1].with_traceback(ex[2]) File "/home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages/pluggy/callers.py", line 180, in _multicall res = hook_impl.function(*args) File "/home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages/_pytest/config.py", line 942, in pytest_cmdline_parse self.parse(args) File "/home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages/_pytest/config.py", line 1107, in parse self._preparse(args, addopts=addopts) File "/home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages/_pytest/config.py", line 1070, in _preparse self.pluginmanager.load_setuptools_entrypoints('pytest11') File "/home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages/pluggy/__init__.py", line 397, in load_setuptools_entrypoints plugin = ep.load() File "/home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2322, in load return self.resolve() File "/home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2328, in resolve module = __import__(self.module_name, fromlist=['__name__'], level=0) File "/home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages/_pytest/assertion/rewrite.py", line 212, in load_module py.builtin.exec_(co, mod.__dict__) File "/home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages/pytest_httpbin/plugin.py", line 3, in <module> from httpbin import app as httpbin_app File "/home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages/httpbin/__init__.py", line 3, in <module> from .core import * File "/home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages/httpbin/core.py", line 19, in <module> from flask_common import Common File "/home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages/flask_common.py", line 13, in <module> from flask.exthook import ExtDeprecationWarning ModuleNotFoundError: No module named 'flask.exthook'
(https://travis-ci.org/wikimedia/pywikibot/jobs/372901105#L867)
This is an upstream issue in httpbin package. See: https://github.com/requests/httpbin/issues/442
(The dependency chain is: dev-requirement.txt -> pytest-httpbin -> httpbin)