diff options
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/doctest.py | 6 | ||||
-rw-r--r-- | Lib/test/test_doctest.py | 17 |
2 files changed, 21 insertions, 2 deletions
diff --git a/Lib/doctest.py b/Lib/doctest.py index 2f14aa0..d109b6c 100644 --- a/Lib/doctest.py +++ b/Lib/doctest.py @@ -591,9 +591,11 @@ class DocTest: 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 diff --git a/Lib/test/test_doctest.py b/Lib/test/test_doctest.py index cb4e215..772dbd1 100644 --- a/Lib/test/test_doctest.py +++ b/Lib/test/test_doctest.py @@ -413,6 +413,23 @@ Compare `DocTest`: 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`: |