hgmo: handle binary data during json serialization (
bug 1268128); r?smacleod
MozReview-Commit-ID: dAB6BAhUx1
--- a/hgext/hgmo/__init__.py
+++ b/hgext/hgmo/__init__.py
@@ -401,17 +401,20 @@ def automationrelevancewebcommand(web, r
elif k in deletefields:
del entry[k]
elif isinstance(v, types.GeneratorType):
entry[k] = list(v)
csets.append(entry)
req.respond(HTTP_OK, 'application/json')
- return json.dumps({'changesets': csets}, indent=2, sort_keys=True)
+ # We use latin1 as the encoding here because all data should be treated as
+ # byte strings. ensure_ascii will escape non-ascii values using \uxxxx.
+ return json.dumps({'changesets': csets}, indent=2, sort_keys=True,
+ encoding='latin1')
def revset_reviewer(repo, subset, x):
"""``reviewer(REVIEWER)``
Changesets reviewed by a specific person.
"""
l = revset.getargs(x, 1, 1, 'reviewer requires one argument')