Hi list.

test87 is failed because of python 3.3 shows different messages of
exceptions from python 3.2.

I have made workaround for it.  Please check an attached patch.


Best.

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


# HG changeset patch
# Parent 9fb0ed5612cef7b19042e9967cda5ccfafd69447
diff -r 9fb0ed5612ce -r a6808c31a999 src/testdir/test87.in
--- a/src/testdir/test87.in	Sat Jul 06 12:29:02 2013 +0900
+++ b/src/testdir/test87.in	Sat Jul 06 13:23:39 2013 +0900
@@ -829,6 +829,10 @@
 :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 @@
         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:

Raspunde prin e-mail lui