1 new commit in pytest:

https://bitbucket.org/hpk42/pytest/commits/121888e5a1f6/
Changeset:   121888e5a1f6
User:        hpk42
Date:        2013-12-12 06:41:48
Summary:     fix expicit assert messages for Python2.6: it turns out python2.6
instantiates the AssertionError differently for tuples.  Test
and fix to neutralize it.
Affected #:  2 files

diff -r 4b3ab8c3b715d5bb76ee347885607977cf400ccc -r 
121888e5a1f6844e33b89731e14b50f54dc30777 _pytest/assertion/reinterpret.py
--- a/_pytest/assertion/reinterpret.py
+++ b/_pytest/assertion/reinterpret.py
@@ -1,18 +1,26 @@
 import sys
 import py
 from _pytest.assertion.util import BuiltinAssertionError
+u = py.builtin._totext
 
 
 class AssertionError(BuiltinAssertionError):
     def __init__(self, *args):
         BuiltinAssertionError.__init__(self, *args)
         if args:
+            # on Python2.6 we get len(args)==2 for: assert 0, (x,y)
+            # on Python2.7 and above we always get len(args) == 1
+            # with args[0] being the (x,y) tuple.
+            if len(args) > 1:
+                toprint = args
+            else:
+                toprint = args[0]
             try:
-                self.msg = py.builtin._totext(args[0])
+                self.msg = u(toprint)
             except Exception:
-                self.msg = py.builtin._totext(
+                self.msg = u(
                     "<[broken __repr__] %s at %0xd>"
-                    % (args[0].__class__, id(args[0])))
+                    % (toprint.__class__, id(toprint)))
         else:
             f = py.code.Frame(sys._getframe(1))
             try:

diff -r 4b3ab8c3b715d5bb76ee347885607977cf400ccc -r 
121888e5a1f6844e33b89731e14b50f54dc30777 testing/test_assertion.py
--- a/testing/test_assertion.py
+++ b/testing/test_assertion.py
@@ -386,3 +386,16 @@
     result.stdout.fnmatch_lines("""
         <Module*>
     """)
+
+def test_AssertionError_message(testdir):
+    testdir.makepyfile("""
+        def test_hello():
+            x,y = 1,2
+            assert 0, (x,y)
+    """)
+    result = testdir.runpytest()
+    result.stdout.fnmatch_lines("""
+        *def test_hello*
+        *assert 0, (x,y)*
+        *AssertionError: (1, 2)*
+    """)

Repository URL: https://bitbucket.org/hpk42/pytest/

--

This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
_______________________________________________
pytest-commit mailing list
pytest-commit@python.org
https://mail.python.org/mailman/listinfo/pytest-commit

Reply via email to