2013/4/30 Antoine Pitrou <solipsis@pitrou.net>:
On Mon, 29 Apr 2013 20:40:37 -0400 Terry Jan Reedy <tjreedy@udel.edu> wrote:
The information about the statement which produced the exception is lost. Instead I would expect:
Traceback (most recent call last): File "foo.py", line 1, in <module> assert \ 1 == 0, \ "error" AssertionError: error
Not sure how easy this is to implement but I think it would be a good enhancement. Thoughts?
Very dubious idea, for multiple reasons given on the issue.
It seems this is already tracked in http://bugs.python.org/issue12458
For your example, the OP of that issue would replace the line '"error"' with 'assert', which would not be helpful at all. If your statement was
assert some_fairly_long_expression_with_calls ==\ something_else, "error"
then is would not be clear that backing up would be helpful.
Perhaps you've missed that Giampaolo's suggestion was to print the *entire* statement, not just one line chosen at random?
Exactly. 2013/4/30 Guido van Rossum <guido@python.org>:
Would it also understand line continuations using parentheses ( the more common style)?
Yes, definitively (see http://bugs.python.org/msg188159). I came up with this idea because this is especially annoying during tests, where it's not rare to have long self.assert* statements split over multiple lines. Every time you get a failure you'll likely have to open the test file with an editor and go to line N in order to figure out what the entire assert statement looked like. --- Giampaolo https://code.google.com/p/pyftpdlib/ https://code.google.com/p/psutil/ https://code.google.com/p/pysendfile/