summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-03-05 19:00:34 +0100
committerBram Moolenaar <Bram@vim.org>2017-03-05 19:00:34 +0100
commitf411a3c5aff644ec7a999be83ef22adf3e1132dd (patch)
tree2e3b328de59f7f9c6dcdbba3a140a59bc30630e9
parentf58a8475e17bd566760fc7e2a17d35ddf4edacf2 (diff)
downloadvim-git-f411a3c5aff644ec7a999be83ef22adf3e1132dd.tar.gz
patch 8.0.0422: Python test fails with Python 3.6v8.0.0422
Problem: Python test fails with Python 3.6. Solution: Convert new exception messages to old ones. (closes #1359)
-rw-r--r--src/testdir/test87.in15
-rw-r--r--src/version.c2
2 files changed, 16 insertions, 1 deletions
diff --git a/src/testdir/test87.in b/src/testdir/test87.in
index 0db3a2773..ac0410901 100644
--- a/src/testdir/test87.in
+++ b/src/testdir/test87.in
@@ -230,13 +230,26 @@ def ee(expr, g=globals(), l=locals()):
cb.append(expr + ':' + repr((e.__class__, AttributeError(str(e)[str(e).rfind(" '") + 2:-1]))))
elif sys.version_info >= (3, 3) and e.__class__ is ImportError and str(e).find('No module named \'') >= 0:
cb.append(expr + ':' + repr((e.__class__, ImportError(str(e).replace("'", '')))))
+ elif sys.version_info >= (3, 6) and e.__class__ is ModuleNotFoundError:
+ # Python 3.6 gives ModuleNotFoundError, change it to an ImportError
+ cb.append(expr + ':' + repr((ImportError, ImportError(str(e).replace("'", '')))))
elif sys.version_info >= (3, 3) and e.__class__ is TypeError:
m = py33_type_error_pattern.search(str(e))
if m:
msg = '__call__() takes exactly {0} positional argument ({1} given)'.format(m.group(1), m.group(2))
cb.append(expr + ':' + repr((e.__class__, TypeError(msg))))
else:
- cb.append(expr + ':' + repr((e.__class__, e)))
+ msg = repr((e.__class__, e))
+ # Messages changed with Python 3.6, change new to old.
+ newmsg1 = """'argument must be str, bytes or bytearray, not None'"""
+ oldmsg1 = '''"Can't convert 'NoneType' object to str implicitly"'''
+ if msg.find(newmsg1) > -1:
+ msg = msg.replace(newmsg1, oldmsg1)
+ newmsg2 = """'argument must be str, bytes or bytearray, not int'"""
+ oldmsg2 = '''"Can't convert 'int' object to str implicitly"'''
+ if msg.find(newmsg2) > -1:
+ msg = msg.replace(newmsg2, oldmsg2)
+ cb.append(expr + ':' + msg)
elif sys.version_info >= (3, 5) and e.__class__ is ValueError and str(e) == 'embedded null byte':
cb.append(expr + ':' + repr((TypeError, TypeError('expected bytes with no null'))))
else:
diff --git a/src/version.c b/src/version.c
index c55ba191c..3804bbe89 100644
--- a/src/version.c
+++ b/src/version.c
@@ -765,6 +765,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 422,
+/**/
421,
/**/
420,