Fix remaining cross-Python compatibility issues in the hosting services.
Review Request #10630 — Created July 16, 2019 and submitted — Latest diff uploaded
The hosting service implementations had been updated to work nicely on
Python 2.7 and 3.7, but still had issues on 3.5 and 3.6. On Python 3.5,
there were issues withjson.loads()
not accepting byte strings (they
added back support for this in 3.6), and on both 3.5 and 3.6 there were
dictionary ordering issues in the Bitbucket code (which only affected
unit tests).Now, all the
json.loads()
calls make sure to decode the string first,
fixing the bulk of the issues. To fix the Bitbucket issues, we just
ensure we're sorting query parameters before building a query string,
and test against those sorted versions.
UNit tests pass on Python 2.7 and 3.5-3.7.