fixtures 1.2.0 isn't compatible with testtools 2.0.0
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Python Fixtures |
Fix Released
|
Undecided
|
Robert Collins |
Bug Description
Note this isn't strictly speaking a fixtures but but it can be fixed readily there. testtools 2.0.0 requires fixtures >= 1.3.0 however the requirement from fixtures (in 1.2.0) on testtools is >0.9.22.
The can lead to a situation (from openstack) where we install testtools 1.9.0 and then install -U fixtures==1.2.0 and end up with testtools 2.0.0
This can bee seen:
[1] Install from test-requirements: http://
[2] Upgrade form requirements: http://
Then we get test failures as seen http://
There are a couple of fixes to this
1) Across the OpenStack code base manually and somewhat artificially for testools<2.0.0
2) Add a cap in the requirements for fixtures 1.2.0 of "testtools>
I believe that option 2 is the correct solution as fixtures 1.2.0 is NOT compatible with testtoools 2.0.0
So, the issues are that /github. com/pypa/ pip/issues/ 988
a) pip doesn't do recursive resolving, so once you pip install fixtures, the dep from testtools to fixtures is ignored as fixtures is already selected. https:/
b) pypi is immutable, we can't alter the definition of fixtures 1.2.0, so the dependency it has, it always will have. We could issue a 1.2.1 with a dependency of testtools >= 2.0.0 which would address the issue for users of fixtures in general
fixtures 1.2.0 *is* compatible with testtools 2.0.0 - the things in the testtools API that it depends on are present in 2.0.0. The compat issue you're running into is on the other side - so capping it would be odd at best.
c) I recommend not using 'pip install -U fixtures==1.2.0' - its a command that tells pip to install the latest version of every dependency, rather than trusting things will have appropriate minimums. If you want testtools 1.9.0 and fixtures 1.2.0, install those things and don't ask pip to grab the latest versions of them - which -U does.