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
Hide 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:
...
@@ -440,6 +440,21 @@ class Example:
self
.
options
=
options
self
.
options
=
options
self
.
exc_msg
=
exc_msg
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
:
class
DocTest
:
"""
"""
A collection of doctest examples that should be run in a single
A collection of doctest examples that should be run in a single
...
@@ -488,6 +503,19 @@ class DocTest:
...
@@ -488,6 +503,19 @@ class DocTest:
return
(
'<DocTest %s from %s:%s (%s)>'
%
return
(
'<DocTest %s from %s:%s (%s)>'
%
(
self
.
name
,
self
.
filename
,
self
.
lineno
,
examples
))
(
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:
# This lets us sort tests by name:
def
__lt__
(
self
,
other
):
def
__lt__
(
self
,
other
):
...
@@ -2206,6 +2234,19 @@ class DocTestCase(unittest.TestCase):
...
@@ -2206,6 +2234,19 @@ class DocTestCase(unittest.TestCase):
def
id
(
self
):
def
id
(
self
):
return
self
.
_dt_test
.
name
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
):
def
__repr__
(
self
):
name
=
self
.
_dt_test
.
name
.
split
(
'.'
)
name
=
self
.
_dt_test
.
name
.
split
(
'.'
)
return
"%s (%s)"
%
(
name
[
-
1
],
'.'
.
join
(
name
[:
-
1
]))
return
"%s (%s)"
%
(
name
[
-
1
],
'.'
.
join
(
name
[:
-
1
]))
...
...
Lib/test/test_doctest.py
View file @
92d4acb7
...
@@ -348,6 +348,46 @@ will raise a ValueError:
...
@@ -348,6 +348,46 @@ will raise a ValueError:
Traceback (most recent call last):
Traceback (most recent call last):
ValueError: line 2 of the docstring for some_test lacks blank after ...: '...print(1)'
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"""
def
test_DocTestFinder
():
r"""
...
...
Misc/ACKS
View file @
92d4acb7
...
@@ -549,6 +549,7 @@ Bob Kras
...
@@ -549,6 +549,7 @@ Bob Kras
Holger Krekel
Holger Krekel
Michael Kremer
Michael Kremer
Fabian Kreutz
Fabian Kreutz
Cédric Krier
Hannu Krosing
Hannu Krosing
Andrej Krpic
Andrej Krpic
Ivan Krstić
Ivan Krstić
...
...
Misc/NEWS
View file @
92d4acb7
...
@@ -419,6 +419,9 @@ Core and Builtins
...
@@ -419,6 +419,9 @@ Core and Builtins
Library
Library
-------
-------
-
Issue
#
7502
:
Fix
equality
comparison
for
DocTestCase
instances
.
Patch
by
C
é
dric
Krier
.
-
Issue
#
11870
:
threading
:
Properly
reinitialize
threads
internal
locks
and
-
Issue
#
11870
:
threading
:
Properly
reinitialize
threads
internal
locks
and
condition
variables
to
avoid
deadlocks
in
child
processes
.
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