Closed
Description
In doctest.py
the following ordering is defined for the class DocTest
:
def __lt__(self, other):
if not isinstance(other, DocTest):
return NotImplemented
return ((self.name, self.filename, self.lineno, id(self))
<
(other.name, other.filename, other.lineno, id(other)))
This is incorrect because the lineno
field may be an integer and may be None, and comparisons between integers and None fail. Typically lineno
is an integer, but _find_lineno
explicitly can fall back to returning None
so the field may be None:
def _find_lineno(self, obj, source_lines):
...
# We couldn't find the line number.
return None