Opened on 10/17/2018 at 12:05:08 PM
Closed on 10/17/2018 at 02:46:39 PM
#7057 closed defect (fixed)
[CMS] Build failing for `urllib3`
| Reported by: | atudor | Assignee: | atudor |
|---|---|---|---|
| Priority: | P1 | Milestone: | |
| Module: | Unknown | Keywords: | |
| Cc: | kvas, wspee, juliandoucette | Blocked By: | |
| Blocking: | Platform: | Unknown / Cross platform | |
| Ready: | no | Confidential: | no |
| Tester: | Unknown | Verified working: | no |
| Review URL(s): | |||
Description
Environment
pytest>=3.9.1 - https://pypi.org/project/pytest/#description
urllib3>=1.24 - https://pypi.org/project/urllib3/#description
How to reproduce
- Run tox.
Observed behaviour
After the packages are installed, an error causes the tests to fail:
/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.24) or chardet (3.0.4) doesn't match a supported version!
RequestsDependencyWarning)
Traceback (most recent call last):
File "/Users/tavram/Documents/code/cms/.tox/py27/bin/py.test", line 11, in <module>
sys.exit(main())
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/_pytest/config/__init__.py", line 49, in main
config = _prepareconfig(args, plugins)
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/_pytest/config/__init__.py", line 186, in _prepareconfig
pluginmanager=pluginmanager, args=args
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/pluggy/hooks.py", line 284, in __call__
return self._hookexec(self, self.get_hookimpls(), kwargs)
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/pluggy/manager.py", line 67, in _hookexec
return self._inner_hookexec(hook, methods, kwargs)
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/pluggy/manager.py", line 61, in <lambda>
firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/pluggy/callers.py", line 203, in _multicall
gen.send(outcome)
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/_pytest/helpconfig.py", line 89, in pytest_cmdline_parse
config = outcome.get_result()
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/pluggy/callers.py", line 81, in get_result
_reraise(*ex) # noqa
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/pluggy/callers.py", line 187, in _multicall
res = hook_impl.function(*args)
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/_pytest/config/__init__.py", line 656, in pytest_cmdline_parse
self.parse(args)
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/_pytest/config/__init__.py", line 828, in parse
self._preparse(args, addopts=addopts)
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/_pytest/config/__init__.py", line 790, in _preparse
early_config=self, args=args, parser=self._parser
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/pluggy/hooks.py", line 284, in __call__
return self._hookexec(self, self.get_hookimpls(), kwargs)
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/pluggy/manager.py", line 67, in _hookexec
return self._inner_hookexec(hook, methods, kwargs)
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/pluggy/manager.py", line 61, in <lambda>
firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/pluggy/callers.py", line 208, in _multicall
return outcome.get_result()
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/pluggy/callers.py", line 81, in get_result
_reraise(*ex) # noqa
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/pluggy/callers.py", line 187, in _multicall
res = hook_impl.function(*args)
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/_pytest/config/__init__.py", line 700, in pytest_load_initial_conftests
self.pluginmanager._set_initial_conftests(early_config.known_args_namespace)
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/_pytest/config/__init__.py", line 366, in _set_initial_conftests
self._try_load_conftest(anchor)
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/_pytest/config/__init__.py", line 372, in _try_load_conftest
self._getconftestmodules(anchor)
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/_pytest/config/__init__.py", line 399, in _getconftestmodules
mod = self._importconftest(conftestpath)
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/_pytest/config/__init__.py", line 450, in _importconftest
self.consider_conftest(mod)
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/_pytest/config/__init__.py", line 473, in consider_conftest
self.register(conftestmodule, name=conftestmodule.__file__)
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/_pytest/config/__init__.py", line 303, in register
self.consider_module(plugin)
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/_pytest/config/__init__.py", line 479, in consider_module
self._import_plugin_specs(getattr(mod, "pytest_plugins", []))
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/_pytest/config/__init__.py", line 484, in _import_plugin_specs
self.import_plugin(import_spec)
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/_pytest/config/__init__.py", line 512, in import_plugin
six.reraise(new_exc_type, new_exc, sys.exc_info()[2])
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/_pytest/config/__init__.py", line 503, in import_plugin
__import__(importspec)
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/_pytest/assertion/rewrite.py", line 291, in load_module
six.exec_(co, mod.__dict__)
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/six.py", line 709, in exec_
exec("""exec _code_ in _globs_, _locs_""")
File "<string>", line 1, in <module>
File "/Users/tavram/Documents/code/cms/tests/xtm_conftest.py", line 11, in <module>
from wsgi_intercept import requests_intercept
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/wsgi_intercept/requests_intercept.py", line 5, in <module>
from requests.packages.urllib3.connectionpool import (HTTPConnectionPool,
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/requests/__init__.py", line 112, in <module>
from . import utils
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/requests/utils.py", line 26, in <module>
from ._internal_utils import to_native_string
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/requests/_internal_utils.py", line 11, in <module>
from .compat import is_py2, builtin_str, str
File "/Users/tavram/Documents/code/cms/.tox/py27/lib/python2.7/site-packages/requests/compat.py", line 48, in <module>
from urllib3.packages.ordered_dict import OrderedDict
ImportError: Error importing plugin "tests.xtm_conftest": No module named ordered_dict
Expected behaviour
The tests would run and pass as expected.
Research conclusion
The latest build of urllib3 are failing. This causes pytest and requests to fail working properly. See the issues/ PRs below for details:
- https://github.com/urllib3/urllib3/issues/1456
- https://github.com/requests/requests/pull/4829
- https://github.com/pytest-dev/pytest/pull/4173
Fix
Update tox.ini to use the previous versions of urllib3 and pytest, until this issue is fixed.
Attachments (0)
Change History (5)
comment:1 Changed on 10/17/2018 at 12:08:00 PM by atudor
comment:2 Changed on 10/17/2018 at 12:12:00 PM by atudor
- Review URL(s) modified (diff)
- Status changed from new to reviewing
comment:3 Changed on 10/17/2018 at 12:27:05 PM by atudor
- Cc juliandoucette added
comment:4 Changed on 10/17/2018 at 02:44:51 PM by abpbot
A commit referencing this issue has landed:
Issue 7057 - Pin urllib3 and pytest to work around the issues with their new releases
comment:5 Changed on 10/17/2018 at 02:46:39 PM by atudor
- Resolution set to fixed
- Status changed from reviewing to closed

The scripts from CMS that would fail under the new build can now be run from within the virtual environment generated by tox. It can be activated by running source .tox/py27/bin/activate.