As part of an effort to deprecate our specialized testing platform
for Python 3.3, many of us have been working to confirm projects
which currently gate on 3.3 can also pass their same test sets under
Python 3.4 (which comes by default in Ubuntu Trusty). For the vast
majority of projects, the differences between 3.3 and 3.4 are
immaterial and no effort is required. For some, minor adjustments
are needed...

For python-glanceclient, we have 22 failing tests in a tox -e py34
run. I spent the better part of today digging into them, and they
basically all stem from the fact that PEP 456 switches the unordered
data hash algorithm from FNV to SipHash in 3.4. The unit tests in
python-glanceclient frequently rely on trying to match
multi-parameter URL queries and JSON built from unordered data types
against predetermined string representations. Put simply, this just
doesn't work if you can't guarantee their ordering.

I'm left with a dilemma--I don't really have time to fix all of
these (I started to go through and turn the fixture keys into format
strings embedding dicts filtered through urlencode() for example,
but it created as many new failures as it fixed), however I'd hate
to drop Py3K testing for software which currently has it no matter
how fragile. This is mainly a call for help to anyone with some
background and/or interest in python-glanceclient's unit tests to
get them working under Python 3.4, so that we can eliminate the
burden of maintaining special 3.3 test infrastructure.
Jeremy Stanley

OpenStack-dev mailing list

Reply via email to