dispatch: allow testedwith to be bytes or str
authorAugie Fackler <raf@durin42.com>
Fri, 03 Mar 2017 13:29:25 -0500
changeset 31179 49ad6bf63107
parent 31178 81e289ef9376
child 31180 27e3b66ec7c5
dispatch: allow testedwith to be bytes or str
mercurial/dispatch.py
--- a/mercurial/dispatch.py	Fri Mar 03 14:09:14 2017 -0500
+++ b/mercurial/dispatch.py	Fri Mar 03 13:29:25 2017 -0500
@@ -857,6 +857,8 @@
     if ui.config('ui', 'supportcontact', None) is None:
         for name, mod in extensions.extensions():
             testedwith = getattr(mod, 'testedwith', '')
+            if pycompat.ispy3 and isinstance(testedwith, str):
+                testedwith = testedwith.encode(u'utf-8')
             report = getattr(mod, 'buglink', _('the extension author.'))
             if not testedwith.strip():
                 # We found an untested extension. It's likely the culprit.
@@ -877,7 +879,7 @@
                 worst = name, nearest, report
     if worst[0] is not None:
         name, testedwith, report = worst
-        if not isinstance(testedwith, str):
+        if not isinstance(testedwith, (bytes, str)):
             testedwith = '.'.join([str(c) for c in testedwith])
         warning = (_('** Unknown exception encountered with '
                      'possibly-broken third-party extension %s\n'