summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
Diffstat (limited to 'Lib')
-rw-r--r--Lib/doctest.py6
-rw-r--r--Lib/test/test_doctest.py17
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`: