changeset 5143:29e57603bf6f v7.3.1314

updated for version 7.3.1314 Problem: Test 87 fails with Python 3.3. Solution: Filter the error messages. (Taro Muraoka)
author Bram Moolenaar <bram@vim.org>
date Sat, 06 Jul 2013 13:54:33 +0200
parents 1e1d6c9607d2
children 52d9f3a11b77
files src/testdir/test87.in src/version.c
diffstat 2 files changed, 15 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/testdir/test87.in
+++ b/src/testdir/test87.in
@@ -829,6 +829,10 @@ EOF
 :fun D()
 :endfun
 py3 << EOF
+import re
+
+py33_type_error_pattern = re.compile('^__call__\(\) takes (\d+) positional argument but (\d+) were given$')
+
 def ee(expr, g=globals(), l=locals()):
     try:
         try:
@@ -836,6 +840,15 @@ def ee(expr, g=globals(), l=locals()):
         except Exception as e:
             if sys.version_info >= (3, 3) and e.__class__ is AttributeError and str(e).find('has no attribute')>=0 and not str(e).startswith("'vim."):
                 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, 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)))
             else:
                 cb.append(expr + ':' + repr((e.__class__, e)))
         else:
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1314,
+/**/
     1313,
 /**/
     1312,