Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
92d4acb7
Commit
92d4acb7
authored
Dec 18, 2011
by
Antoine Pitrou
Browse files
Options
Browse Files
Download
Plain Diff
Issue #7502: Fix equality comparison for DocTestCase instances.
Patch by Cédric Krier.
parents
0f694d72
a7425263
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
85 additions
and
0 deletions
+85
-0
Lib/doctest.py
Lib/doctest.py
+41
-0
Lib/test/test_doctest.py
Lib/test/test_doctest.py
+40
-0
Misc/ACKS
Misc/ACKS
+1
-0
Misc/NEWS
Misc/NEWS
+3
-0
No files found.
Lib/doctest.py
View file @
92d4acb7
...
...
@@ -440,6 +440,21 @@ class Example:
self
.
options
=
options
self
.
exc_msg
=
exc_msg
def
__eq__
(
self
,
other
):
if
type
(
self
)
is
not
type
(
other
):
return
NotImplemented
return
self
.
source
==
other
.
source
and
\
self
.
want
==
other
.
want
and
\
self
.
lineno
==
other
.
lineno
and
\
self
.
indent
==
other
.
indent
and
\
self
.
options
==
other
.
options
and
\
self
.
exc_msg
==
other
.
exc_msg
def
__ne__
(
self
,
other
):
return
not
self
==
other
class
DocTest
:
"""
A collection of doctest examples that should be run in a single
...
...
@@ -488,6 +503,19 @@ class DocTest:
return
(
'<DocTest %s from %s:%s (%s)>'
%
(
self
.
name
,
self
.
filename
,
self
.
lineno
,
examples
))
def
__eq__
(
self
,
other
):
if
type
(
self
)
is
not
type
(
other
):
return
NotImplemented
return
self
.
examples
==
other
.
examples
and
\
self
.
docstring
==
other
.
docstring
and
\
self
.
globs
==
other
.
globs
and
\
self
.
name
==
other
.
name
and
\
self
.
filename
==
other
.
filename
and
\
self
.
lineno
==
other
.
lineno
def
__ne__
(
self
,
other
):
return
not
self
==
other
# This lets us sort tests by name:
def
__lt__
(
self
,
other
):
...
...
@@ -2206,6 +2234,19 @@ class DocTestCase(unittest.TestCase):
def
id
(
self
):
return
self
.
_dt_test
.
name
def
__eq__
(
self
,
other
):
if
type
(
self
)
is
not
type
(
other
):
return
NotImplemented
return
self
.
_dt_test
==
other
.
_dt_test
and
\
self
.
_dt_optionflags
==
other
.
_dt_optionflags
and
\
self
.
_dt_setUp
==
other
.
_dt_setUp
and
\
self
.
_dt_tearDown
==
other
.
_dt_tearDown
and
\
self
.
_dt_checker
==
other
.
_dt_checker
def
__ne__
(
self
,
other
):
return
not
self
==
other
def
__repr__
(
self
):
name
=
self
.
_dt_test
.
name
.
split
(
'.'
)
return
"%s (%s)"
%
(
name
[
-
1
],
'.'
.
join
(
name
[:
-
1
]))
...
...
Lib/test/test_doctest.py
View file @
92d4acb7
...
...
@@ -348,6 +348,46 @@ will raise a ValueError:
Traceback (most recent call last):
ValueError: line 2 of the docstring for some_test lacks blank after ...: '...print(1)'
Compare `DocTest`:
>>> docstring = '''
... >>> print 12
... 12
... '''
>>> test = parser.get_doctest(docstring, globs, 'some_test',
... 'some_test', 20)
>>> same_test = parser.get_doctest(docstring, globs, 'some_test',
... 'some_test', 20)
>>> test == same_test
True
>>> test != same_test
False
>>> docstring = '''
... >>> print 42
... 42
... '''
>>> other_test = parser.get_doctest(docstring, globs, 'other_test',
... 'other_file', 10)
>>> test == other_test
False
>>> test != other_test
True
Compare `DocTestCase`:
>>> DocTestCase = doctest.DocTestCase
>>> test_case = DocTestCase(test)
>>> same_test_case = DocTestCase(same_test)
>>> other_test_case = DocTestCase(other_test)
>>> test_case == same_test_case
True
>>> test_case != same_test_case
False
>>> test == other_test_case
False
>>> test != other_test_case
True
"""
def
test_DocTestFinder
():
r"""
...
...
Misc/ACKS
View file @
92d4acb7
...
...
@@ -549,6 +549,7 @@ Bob Kras
Holger Krekel
Michael Kremer
Fabian Kreutz
Cédric Krier
Hannu Krosing
Andrej Krpic
Ivan Krstić
...
...
Misc/NEWS
View file @
92d4acb7
...
...
@@ -419,6 +419,9 @@ Core and Builtins
Library
-------
-
Issue
#
7502
:
Fix
equality
comparison
for
DocTestCase
instances
.
Patch
by
C
é
dric
Krier
.
-
Issue
#
11870
:
threading
:
Properly
reinitialize
threads
internal
locks
and
condition
variables
to
avoid
deadlocks
in
child
processes
.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment