Skip to content

Commit

Permalink
pythongh-94722: fix DocTest.__eq__ for case of no line number on one …
Browse files Browse the repository at this point in the history
…side (python#112385)
  • Loading branch information
iritkatriel authored Nov 25, 2023
1 parent 19a1fc1 commit fbb9027
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 2 deletions.
6 changes: 4 additions & 2 deletions Lib/doctest.py
Original file line number Diff line number Diff line change
Expand Up @@ -591,9 +591,11 @@ def __hash__(self):
def __lt__(self, other):
if not isinstance(other, DocTest):
return NotImplemented
return ((self.name, self.filename, self.lineno, id(self))
self_lno = self.lineno if self.lineno is not None else -1
other_lno = other.lineno if other.lineno is not None else -1
return ((self.name, self.filename, self_lno, id(self))
<
(other.name, other.filename, other.lineno, id(other)))
(other.name, other.filename, other_lno, id(other)))

######################################################################
## 3. DocTestParser
Expand Down
17 changes: 17 additions & 0 deletions Lib/test/test_doctest.py
Original file line number Diff line number Diff line change
Expand Up @@ -413,6 +413,23 @@ def test_DocTest(): r"""
False
>>> test != other_test
True
>>> test < other_test
False
>>> other_test < test
True
Test comparison with lineno None on one side
>>> no_lineno = parser.get_doctest(docstring, globs, 'some_test',
... 'some_test', None)
>>> test.lineno is None
False
>>> no_lineno.lineno is None
True
>>> test < no_lineno
False
>>> no_lineno < test
True
Compare `DocTestCase`:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Fix bug where comparison between instances of :class:`~doctest.DocTest` fails if
one of them has ``None`` as its lineno.

0 comments on commit fbb9027

Please sign in to comment.