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