Fix remaining cross-Python compatibility issues in the hosting services.
Review Request #10630 — Created July 16, 2019 and submitted
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 with
json.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
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.