Closed
Description
Bug report
This code is problematic:
Lines 215 to 224 in bf4bc36
It does rewrite errors that happened before. Showing the last error, not the first one.
This goes against Python's semantics.
Here's the reproducer:
>>> import termios
>>> termios.tcsetattr(0, 0, [0, 1, 2, '3', 4, 5, 6])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object cannot be interpreted as an integer
>>> termios.tcsetattr(0, 0, [object(), 1, 2, '3', 4, 5, 6])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object cannot be interpreted as an integer
The second error should say:
>>> termios.tcsetattr(0, 0, [object(), 1, 2, '3', 4, 5, 6])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'object' object cannot be interpreted as an integer
And while we are there we can also change PyList_GetItem
to PyList_GET_ITEM
, because:
term
is known to be alist
- the size of
term
is known to be 7
See checkLines 197 to 201 in bf4bc36
The only problem is tests. I think that termios
is not tested that much in our suite. We don't even have test_termios.py
file. Should I add one?
Refs #110260