From f16f27665bdc39fd162f2e64fd1352a19a000f6a Mon Sep 17 00:00:00 2001 From: baztian Date: Wed, 10 Jun 2020 23:21:37 +0200 Subject: [PATCH] Fix tests for Python 2 --- test/doctests.py | 20 ++++++++++++++++++-- tox.ini | 2 +- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/test/doctests.py b/test/doctests.py index 82fc3c9..f5eac2a 100644 --- a/test/doctests.py +++ b/test/doctests.py @@ -2,6 +2,7 @@ """Run doctests.""" import doctest +import platform import re import sys @@ -10,11 +11,26 @@ try: except ImportError: import unittest +def _is_new_jpype(): + if platform.python_implementation() != 'Jython': + import jpype + try: + ver_match = re.match('\d+\.\d+', jpype.__version__) + if ver_match: + jpype_ver = float(ver_match.group(0)) + if jpype_ver >= 0.7: + return True + except ValueError: + pass + return False + class Py23DocChecker(doctest.OutputChecker): """Doctest checker to avoid Python 2/3 unicode comparison - issues. Code taken from Dirkjan Ochtman""" + issues. Code mostly taken from Dirkjan Ochtman""" def check_output(self, want, got, optionflags): - if sys.version_info[0] > 2: + if sys.version_info[0] > 2 or _is_new_jpype(): + # new python has unicode as default + # new JPype does not automatically convert to unicode on Python 2 want = re.sub("u'(.*?)'", "'\\1'", want) want = re.sub('u"(.*?)"', '"\\1"', want) return doctest.OutputChecker.check_output(self, want, got, optionflags) diff --git a/tox.ini b/tox.ini index d9b32e2..ad29f3f 100644 --- a/tox.ini +++ b/tox.ini @@ -21,7 +21,7 @@ deps = oldjpype: JPype1==0.6.3 py35-newjpype: JPype1==0.7.5 py36-newjpype: JPype1==0.7.5 - py27-newjpype: JPype1==0.7.0 + py27-newjpype: JPype1==0.7.1 jip==0.9.15 coverage==4.5.4 commands =