Patchwork [1,of,2,V2] py3: have check-py3-compat require pygments to get stable result

login
register
mail settings
Submitter Yuya Nishihara
Date Aug. 18, 2016, 9:29 a.m.
Message ID <2d43c878f4c42bf97374.1471512564@mimosa>
Download mbox | patch
Permalink /patch/16348/
State Accepted
Headers show

Comments

Yuya Nishihara - Aug. 18, 2016, 9:29 a.m.
# HG changeset patch
# User Yuya Nishihara <yuya@tcha.org>
# Date 1471434770 -32400
#      Wed Aug 17 20:52:50 2016 +0900
# Node ID 2d43c878f4c42bf973742cc1cfa4c869250be4cf
# Parent  dab7069fc2bd079064d8d71b4b962d327abfd8c1
py3: have check-py3-compat require pygments to get stable result

Patch

diff --git a/tests/hghave.py b/tests/hghave.py
--- a/tests/hghave.py
+++ b/tests/hghave.py
@@ -544,6 +544,16 @@  def has_py3k():
 def has_python3exe():
     return 'PYTHON3' in os.environ
 
+@check("py3pygments", "Pygments available on Python 3.x")
+def has_py3pygments():
+    if has_py3k():
+        return has_pygments()
+    elif has_python3exe():
+        # just check exit status (ignoring output)
+        py3 = os.environ['PYTHON3']
+        return matchoutput('%s -c "import pygments"' % py3, br'')
+    return False
+
 @check("pure", "running with pure Python code")
 def has_pure():
     return any([
diff --git a/tests/test-check-py3-compat.t b/tests/test-check-py3-compat.t
--- a/tests/test-check-py3-compat.t
+++ b/tests/test-check-py3-compat.t
@@ -12,7 +12,7 @@ 
   setup.py not using absolute_import
   tests/test-demandimport.py not using absolute_import
 
-#if py3exe
+#if py3exe py3pygments
   $ hg files 'set:(**.py)' | sed 's|\\|/|g' | xargs $PYTHON3 contrib/check-py3-compat.py
   doc/hgmanpage.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
   hgext/acl.py: error importing: <TypeError> str expected, not bytes (error at encoding.py:*) (glob)
@@ -48,7 +48,7 @@ 
   hgext/gpg.py: error importing: <TypeError> str expected, not bytes (error at encoding.py:*) (glob)
   hgext/graphlog.py: error importing: <TypeError> str expected, not bytes (error at encoding.py:*) (glob)
   hgext/hgk.py: error importing: <TypeError> str expected, not bytes (error at encoding.py:*) (glob)
-  hgext/highlight/highlight.py: error importing module: <ImportError> No module named 'pygments' (line 13)
+  hgext/highlight/highlight.py: error importing: <TypeError> str expected, not bytes (error at encoding.py:*) (glob)
   hgext/histedit.py: error importing: <TypeError> str expected, not bytes (error at encoding.py:*) (glob)
   hgext/journal.py: error importing: <TypeError> str expected, not bytes (error at encoding.py:*) (glob)
   hgext/keyword.py: error importing: <TypeError> str expected, not bytes (error at encoding.py:*) (glob)