Mercurial > vim
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: