mirror of
https://github.com/python/cpython
synced 2024-09-05 08:17:45 +00:00
gh-94722: fix DocTest.__eq__ for case of no line number on one side (#112385)
This commit is contained in:
parent
19a1fc1b3d
commit
fbb9027a03
|
@ -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
|
||||
|
|
|
@ -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`:
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
Fix bug where comparison between instances of :class:`~doctest.DocTest` fails if
|
||||
one of them has ``None`` as its lineno.
|
Loading…
Reference in a new issue