D4835: py3: use system strings for HTTP response header comparison

indygreg (Gregory Szorc) phabricator at mercurial-scm.org
Tue Oct 2 06:18:10 UTC 2018


indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  res.headers is holding system strings. Attempting to compare against
  bytes always fails and we fail to print decoded CBOR responses on
  Python 3.
  
  After this change, various test-wireproto* tests are now properly
  printing CBOR response objects.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D4835

AFFECTED FILES
  mercurial/debugcommands.py

CHANGE DETAILS

diff --git a/mercurial/debugcommands.py b/mercurial/debugcommands.py
--- a/mercurial/debugcommands.py
+++ b/mercurial/debugcommands.py
@@ -3324,7 +3324,8 @@
                 getattr(e, 'read', lambda: None)()
                 continue
 
-            if res.headers.get('Content-Type') == 'application/mercurial-cbor':
+            ct = res.headers.get(r'Content-Type')
+            if ct == r'application/mercurial-cbor':
                 ui.write(_('cbor> %s\n') %
                          stringutil.pprint(cborutil.decodeall(body)[0],
                                            bprefix=True,



To: indygreg, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list