(no title)
erezsh | 4 months ago
I wrote a very simple function:
def test_whatever():
a = range(10)
b = (10 / x for x in a)
c = list(b)
When I run it with normal Python, this is the exception: Traceback (most recent call last):
File "test_test.py", line 10, in <module>
test_whatever()
File "test_test.py", line 6, in test_whatever
c = list(b)
^^^^^^^
File "test_test.py", line 5, in <genexpr>
b = (10 / x for x in a)
~~~^~~
ZeroDivisionError: division by zero
It's compact and simple to understand. It pinpoints the exact location of the error, and I easily scan the text to find the function call-stack.Now here's the pytest error:
___________________________________ test_whatever ___________________________________
def test_whatever():
a = range(10)
b = (10 / x for x in a)
> c = list(b)
test_test.py:6:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.0 = <range_iterator object at 0x107695e90>
> b = (10 / x for x in a)
E ZeroDivisionError: division by zero
test_test.py:5: ZeroDivisionError
It doesn't pinpoint the error, it adds code lines that might be irrelevant, and extra information I don't care about.I will say using `--tb=short` fixes most of it, at least in this example, and sometimes it's even preferable, because it's shorter. But it still doesn't pinpoint the error like normal Python exceptions do.
tsv_|4 months ago