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
ea5962f8
Commit
ea5962f8
authored
Mar 12, 2007
by
Tim Peters
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Whitespace normalization.
parent
cb637c9e
Changes
18
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
522 additions
and
522 deletions
+522
-522
Lib/SocketServer.py
Lib/SocketServer.py
+2
-2
Lib/genericpath.py
Lib/genericpath.py
+1
-1
Lib/smtplib.py
Lib/smtplib.py
+1
-1
Lib/subprocess.py
Lib/subprocess.py
+1
-1
Lib/test/test_curses.py
Lib/test/test_curses.py
+1
-1
Lib/test/test_descr.py
Lib/test/test_descr.py
+2
-2
Lib/test/test_dict.py
Lib/test/test_dict.py
+5
-5
Lib/test/test_import.py
Lib/test/test_import.py
+2
-2
Lib/test/test_itertools.py
Lib/test/test_itertools.py
+4
-4
Lib/test/test_posixpath.py
Lib/test/test_posixpath.py
+2
-2
Lib/test/test_pty.py
Lib/test/test_pty.py
+13
-13
Lib/test/test_sax.py
Lib/test/test_sax.py
+1
-1
Lib/test/test_set.py
Lib/test/test_set.py
+2
-2
Lib/test/test_threadedtempfile.py
Lib/test/test_threadedtempfile.py
+5
-5
Lib/test/test_unittest.py
Lib/test/test_unittest.py
+416
-416
Lib/test/test_zipfile.py
Lib/test/test_zipfile.py
+49
-49
Lib/urllib2.py
Lib/urllib2.py
+1
-1
Lib/zipfile.py
Lib/zipfile.py
+14
-14
No files found.
Lib/SocketServer.py
View file @
ea5962f8
...
@@ -328,8 +328,8 @@ class TCPServer(BaseServer):
...
@@ -328,8 +328,8 @@ class TCPServer(BaseServer):
self
.
socket
=
socket
.
socket
(
self
.
address_family
,
self
.
socket
=
socket
.
socket
(
self
.
address_family
,
self
.
socket_type
)
self
.
socket_type
)
if
bind_and_activate
:
if
bind_and_activate
:
self
.
server_bind
()
self
.
server_bind
()
self
.
server_activate
()
self
.
server_activate
()
def
server_bind
(
self
):
def
server_bind
(
self
):
"""Called by constructor to bind the socket.
"""Called by constructor to bind the socket.
...
...
Lib/genericpath.py
View file @
ea5962f8
...
@@ -84,7 +84,7 @@ def commonprefix(m):
...
@@ -84,7 +84,7 @@ def commonprefix(m):
# Generic implementation of splitext, to be parametrized with
# Generic implementation of splitext, to be parametrized with
# the separators
# the separators
def
_splitext
(
p
,
sep
,
altsep
,
extsep
):
def
_splitext
(
p
,
sep
,
altsep
,
extsep
):
"""Split the extension from a pathname.
"""Split the extension from a pathname.
Extension is everything from the last dot to the end, ignoring
Extension is everything from the last dot to the end, ignoring
leading dots. Returns "(root, ext)"; ext may be empty."""
leading dots. Returns "(root, ext)"; ext may be empty."""
...
...
Lib/smtplib.py
View file @
ea5962f8
...
@@ -766,7 +766,7 @@ class LMTP(SMTP):
...
@@ -766,7 +766,7 @@ class LMTP(SMTP):
authentication
,
but
your
mileage
might
vary
.
"""
authentication
,
but
your
mileage
might
vary
.
"""
ehlo_msg = "lhlo"
ehlo_msg = "lhlo"
def __init__(self, host = '', port = LMTP_PORT, local_hostname = None):
def __init__(self, host = '', port = LMTP_PORT, local_hostname = None):
"""
Initialize
a
new
instance
.
"""
"""
Initialize
a
new
instance
.
"""
SMTP.__init__(self, host, port, local_hostname)
SMTP.__init__(self, host, port, local_hostname)
...
...
Lib/subprocess.py
View file @
ea5962f8
...
@@ -596,7 +596,7 @@ class Popen(object):
...
@@ -596,7 +596,7 @@ class Popen(object):
# either have to redirect all three or none. If the subprocess
# either have to redirect all three or none. If the subprocess
# user has only redirected one or two handles, we are
# user has only redirected one or two handles, we are
# automatically creating PIPEs for the rest. We should close
# automatically creating PIPEs for the rest. We should close
# these after the process is started. See bug #1124861.
# these after the process is started. See bug #1124861.
if
mswindows
:
if
mswindows
:
if
stdin
is
None
and
p2cwrite
is
not
None
:
if
stdin
is
None
and
p2cwrite
is
not
None
:
os
.
close
(
p2cwrite
)
os
.
close
(
p2cwrite
)
...
...
Lib/test/test_curses.py
View file @
ea5962f8
...
@@ -245,7 +245,7 @@ def test_resize_term(stdscr):
...
@@ -245,7 +245,7 @@ def test_resize_term(stdscr):
if
hasattr
(
curses
,
'resizeterm'
):
if
hasattr
(
curses
,
'resizeterm'
):
lines
,
cols
=
curses
.
LINES
,
curses
.
COLS
lines
,
cols
=
curses
.
LINES
,
curses
.
COLS
curses
.
resizeterm
(
lines
-
1
,
cols
+
1
)
curses
.
resizeterm
(
lines
-
1
,
cols
+
1
)
if
curses
.
LINES
!=
lines
-
1
or
curses
.
COLS
!=
cols
+
1
:
if
curses
.
LINES
!=
lines
-
1
or
curses
.
COLS
!=
cols
+
1
:
raise
RuntimeError
,
"Expected resizeterm to update LINES and COLS"
raise
RuntimeError
,
"Expected resizeterm to update LINES and COLS"
...
...
Lib/test/test_descr.py
View file @
ea5962f8
...
@@ -1466,7 +1466,7 @@ def errors():
...
@@ -1466,7 +1466,7 @@ def errors():
>>> class A(object):
>>> class A(object):
... pass
... pass
>>> class B(A, type):
>>> class B(A, type):
... pass
... pass
Traceback (most recent call last):
Traceback (most recent call last):
...
@@ -1494,7 +1494,7 @@ def errors():
...
@@ -1494,7 +1494,7 @@ def errors():
... pass
... pass
Also check that assignment to bases is safe.
Also check that assignment to bases is safe.
>>> B.__bases__ = A1, A2
>>> B.__bases__ = A1, A2
Traceback (most recent call last):
Traceback (most recent call last):
TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
...
...
Lib/test/test_dict.py
View file @
ea5962f8
...
@@ -461,12 +461,12 @@ class DictTest(unittest.TestCase):
...
@@ -461,12 +461,12 @@ class DictTest(unittest.TestCase):
self
.
assertEqual
(
e
.
args
,
((
1
,),))
self
.
assertEqual
(
e
.
args
,
((
1
,),))
else
:
else
:
self
.
fail
(
"missing KeyError"
)
self
.
fail
(
"missing KeyError"
)
def
test_bad_key
(
self
):
def
test_bad_key
(
self
):
# Dictionary lookups should fail if __cmp__() raises an exception.
# Dictionary lookups should fail if __cmp__() raises an exception.
class
CustomException
(
Exception
):
class
CustomException
(
Exception
):
pass
pass
class
BadDictKey
:
class
BadDictKey
:
def
__hash__
(
self
):
def
__hash__
(
self
):
return
hash
(
self
.
__class__
)
return
hash
(
self
.
__class__
)
...
@@ -475,7 +475,7 @@ class DictTest(unittest.TestCase):
...
@@ -475,7 +475,7 @@ class DictTest(unittest.TestCase):
if
isinstance
(
other
,
self
.
__class__
):
if
isinstance
(
other
,
self
.
__class__
):
raise
CustomException
raise
CustomException
return
other
return
other
d
=
{}
d
=
{}
x1
=
BadDictKey
()
x1
=
BadDictKey
()
x2
=
BadDictKey
()
x2
=
BadDictKey
()
...
@@ -502,7 +502,7 @@ class DictTest(unittest.TestCase):
...
@@ -502,7 +502,7 @@ class DictTest(unittest.TestCase):
# a mix of inserts and deletes hitting exactly the right hash codes in
# a mix of inserts and deletes hitting exactly the right hash codes in
# exactly the right order, and I can't think of a randomized approach
# exactly the right order, and I can't think of a randomized approach
# that would be *likely* to hit a failing case in reasonable time.
# that would be *likely* to hit a failing case in reasonable time.
d
=
{}
d
=
{}
for
i
in
range
(
5
):
for
i
in
range
(
5
):
d
[
i
]
=
i
d
[
i
]
=
i
...
@@ -514,7 +514,7 @@ class DictTest(unittest.TestCase):
...
@@ -514,7 +514,7 @@ class DictTest(unittest.TestCase):
def
test_resize2
(
self
):
def
test_resize2
(
self
):
# Another dict resizing bug (SF bug #1456209).
# Another dict resizing bug (SF bug #1456209).
# This caused Segmentation faults or Illegal instructions.
# This caused Segmentation faults or Illegal instructions.
class
X
(
object
):
class
X
(
object
):
def
__hash__
(
self
):
def
__hash__
(
self
):
return
5
return
5
...
...
Lib/test/test_import.py
View file @
ea5962f8
...
@@ -192,11 +192,11 @@ class ImportTest(unittest.TestCase):
...
@@ -192,11 +192,11 @@ class ImportTest(unittest.TestCase):
remove_files
(
TESTFN
)
remove_files
(
TESTFN
)
if
TESTFN
in
sys
.
modules
:
if
TESTFN
in
sys
.
modules
:
del
sys
.
modules
[
TESTFN
]
del
sys
.
modules
[
TESTFN
]
def
test_infinite_reload
(
self
):
def
test_infinite_reload
(
self
):
# Bug #742342 reports that Python segfaults (infinite recursion in C)
# Bug #742342 reports that Python segfaults (infinite recursion in C)
# when faced with self-recursive reload()ing.
# when faced with self-recursive reload()ing.
sys
.
path
.
insert
(
0
,
os
.
path
.
dirname
(
__file__
))
sys
.
path
.
insert
(
0
,
os
.
path
.
dirname
(
__file__
))
try
:
try
:
import
infinite_reload
import
infinite_reload
...
...
Lib/test/test_itertools.py
View file @
ea5962f8
...
@@ -211,20 +211,20 @@ class TestBasicOps(unittest.TestCase):
...
@@ -211,20 +211,20 @@ class TestBasicOps(unittest.TestCase):
self
.
assertEqual
(
list
(
izip_longest
(
*
args
,
**
{})),
target
)
self
.
assertEqual
(
list
(
izip_longest
(
*
args
,
**
{})),
target
)
target
=
[
tuple
((
e
is
None
and
'X'
or
e
)
for
e
in
t
)
for
t
in
target
]
# Replace None fills with 'X'
target
=
[
tuple
((
e
is
None
and
'X'
or
e
)
for
e
in
t
)
for
t
in
target
]
# Replace None fills with 'X'
self
.
assertEqual
(
list
(
izip_longest
(
*
args
,
**
dict
(
fillvalue
=
'X'
))),
target
)
self
.
assertEqual
(
list
(
izip_longest
(
*
args
,
**
dict
(
fillvalue
=
'X'
))),
target
)
self
.
assertEqual
(
take
(
3
,
izip_longest
(
'abcdef'
,
count
())),
zip
(
'abcdef'
,
range
(
3
)))
# take 3 from infinite input
self
.
assertEqual
(
take
(
3
,
izip_longest
(
'abcdef'
,
count
())),
zip
(
'abcdef'
,
range
(
3
)))
# take 3 from infinite input
self
.
assertEqual
(
list
(
izip_longest
()),
zip
())
self
.
assertEqual
(
list
(
izip_longest
()),
zip
())
self
.
assertEqual
(
list
(
izip_longest
([])),
zip
([]))
self
.
assertEqual
(
list
(
izip_longest
([])),
zip
([]))
self
.
assertEqual
(
list
(
izip_longest
(
'abcdef'
)),
zip
(
'abcdef'
))
self
.
assertEqual
(
list
(
izip_longest
(
'abcdef'
)),
zip
(
'abcdef'
))
self
.
assertEqual
(
list
(
izip_longest
(
'abc'
,
'defg'
,
**
{})),
map
(
None
,
'abc'
,
'defg'
))
# empty keyword dict
self
.
assertEqual
(
list
(
izip_longest
(
'abc'
,
'defg'
,
**
{})),
map
(
None
,
'abc'
,
'defg'
))
# empty keyword dict
self
.
assertRaises
(
TypeError
,
izip_longest
,
3
)
self
.
assertRaises
(
TypeError
,
izip_longest
,
3
)
self
.
assertRaises
(
TypeError
,
izip_longest
,
range
(
3
),
3
)
self
.
assertRaises
(
TypeError
,
izip_longest
,
range
(
3
),
3
)
for
stmt
in
[
for
stmt
in
[
"izip_longest('abc', fv=1)"
,
"izip_longest('abc', fv=1)"
,
"izip_longest('abc', fillvalue=1, bogus_keyword=None)"
,
"izip_longest('abc', fillvalue=1, bogus_keyword=None)"
,
]:
]:
try
:
try
:
eval
(
stmt
,
globals
(),
locals
())
eval
(
stmt
,
globals
(),
locals
())
...
@@ -232,7 +232,7 @@ class TestBasicOps(unittest.TestCase):
...
@@ -232,7 +232,7 @@ class TestBasicOps(unittest.TestCase):
pass
pass
else
:
else
:
self
.
fail
(
'Did not raise Type in: '
+
stmt
)
self
.
fail
(
'Did not raise Type in: '
+
stmt
)
# Check tuple re-use (implementation detail)
# Check tuple re-use (implementation detail)
self
.
assertEqual
([
tuple
(
list
(
pair
))
for
pair
in
izip_longest
(
'abc'
,
'def'
)],
self
.
assertEqual
([
tuple
(
list
(
pair
))
for
pair
in
izip_longest
(
'abc'
,
'def'
)],
zip
(
'abc'
,
'def'
))
zip
(
'abc'
,
'def'
))
...
...
Lib/test/test_posixpath.py
View file @
ea5962f8
...
@@ -24,7 +24,7 @@ class PosixPathTest(unittest.TestCase):
...
@@ -24,7 +24,7 @@ class PosixPathTest(unittest.TestCase):
for
suffix
in
[
""
,
"1"
,
"2"
]:
for
suffix
in
[
""
,
"1"
,
"2"
]:
test_support
.
unlink
(
test_support
.
TESTFN
+
suffix
)
test_support
.
unlink
(
test_support
.
TESTFN
+
suffix
)
safe_rmdir
(
test_support
.
TESTFN
+
suffix
)
safe_rmdir
(
test_support
.
TESTFN
+
suffix
)
def
assertIs
(
self
,
a
,
b
):
def
assertIs
(
self
,
a
,
b
):
self
.
assert_
(
a
is
b
)
self
.
assert_
(
a
is
b
)
...
@@ -161,7 +161,7 @@ class PosixPathTest(unittest.TestCase):
...
@@ -161,7 +161,7 @@ class PosixPathTest(unittest.TestCase):
if
not
f
.
closed
:
if
not
f
.
closed
:
f
.
close
()
f
.
close
()
def
test_islink
(
self
):
def
test_islink
(
self
):
self
.
assertIs
(
posixpath
.
islink
(
test_support
.
TESTFN
+
"1"
),
False
)
self
.
assertIs
(
posixpath
.
islink
(
test_support
.
TESTFN
+
"1"
),
False
)
f
=
open
(
test_support
.
TESTFN
+
"1"
,
"wb"
)
f
=
open
(
test_support
.
TESTFN
+
"1"
,
"wb"
)
try
:
try
:
...
...
Lib/test/test_pty.py
View file @
ea5962f8
...
@@ -41,19 +41,19 @@ def normalize_output(data):
...
@@ -41,19 +41,19 @@ def normalize_output(data):
# because pty code is not too portable.
# because pty code is not too portable.
class
PtyTest
(
unittest
.
TestCase
):
class
PtyTest
(
unittest
.
TestCase
):
def
setUp
(
self
):
def
setUp
(
self
):
# isatty() and close() can hang on some platforms. Set an alarm
# isatty() and close() can hang on some platforms. Set an alarm
# before running the test to make sure we don't hang forever.
# before running the test to make sure we don't hang forever.
self
.
old_alarm
=
signal
.
signal
(
signal
.
SIGALRM
,
self
.
handle_sig
)
self
.
old_alarm
=
signal
.
signal
(
signal
.
SIGALRM
,
self
.
handle_sig
)
signal
.
alarm
(
10
)
signal
.
alarm
(
10
)
def
tearDown
(
self
):
def
tearDown
(
self
):
# remove alarm, restore old alarm handler
# remove alarm, restore old alarm handler
signal
.
alarm
(
0
)
signal
.
alarm
(
0
)
signal
.
signal
(
signal
.
SIGALRM
,
self
.
old_alarm
)
signal
.
signal
(
signal
.
SIGALRM
,
self
.
old_alarm
)
def
handle_sig
(
self
,
sig
,
frame
):
def
handle_sig
(
self
,
sig
,
frame
):
self
.
fail
(
"isatty hung"
)
self
.
fail
(
"isatty hung"
)
def
test_basic
(
self
):
def
test_basic
(
self
):
try
:
try
:
debug
(
"Calling master_open()"
)
debug
(
"Calling master_open()"
)
...
@@ -68,19 +68,19 @@ class PtyTest(unittest.TestCase):
...
@@ -68,19 +68,19 @@ class PtyTest(unittest.TestCase):
raise
TestSkipped
,
"Pseudo-terminals (seemingly) not functional."
raise
TestSkipped
,
"Pseudo-terminals (seemingly) not functional."
self
.
assertTrue
(
os
.
isatty
(
slave_fd
),
'slave_fd is not a tty'
)
self
.
assertTrue
(
os
.
isatty
(
slave_fd
),
'slave_fd is not a tty'
)
debug
(
"Writing to slave_fd"
)
debug
(
"Writing to slave_fd"
)
os
.
write
(
slave_fd
,
TEST_STRING_1
)
os
.
write
(
slave_fd
,
TEST_STRING_1
)
s1
=
os
.
read
(
master_fd
,
1024
)
s1
=
os
.
read
(
master_fd
,
1024
)
self
.
assertEquals
(
'I wish to buy a fish license.
\
n
'
,
self
.
assertEquals
(
'I wish to buy a fish license.
\
n
'
,
normalize_output
(
s1
))
normalize_output
(
s1
))
debug
(
"Writing chunked output"
)
debug
(
"Writing chunked output"
)
os
.
write
(
slave_fd
,
TEST_STRING_2
[:
5
])
os
.
write
(
slave_fd
,
TEST_STRING_2
[:
5
])
os
.
write
(
slave_fd
,
TEST_STRING_2
[
5
:])
os
.
write
(
slave_fd
,
TEST_STRING_2
[
5
:])
s2
=
os
.
read
(
master_fd
,
1024
)
s2
=
os
.
read
(
master_fd
,
1024
)
self
.
assertEquals
(
'For my pet fish, Eric.
\
n
'
,
normalize_output
(
s2
))
self
.
assertEquals
(
'For my pet fish, Eric.
\
n
'
,
normalize_output
(
s2
))
os
.
close
(
slave_fd
)
os
.
close
(
slave_fd
)
os
.
close
(
master_fd
)
os
.
close
(
master_fd
)
...
@@ -93,7 +93,7 @@ class PtyTest(unittest.TestCase):
...
@@ -93,7 +93,7 @@ class PtyTest(unittest.TestCase):
if
not
os
.
isatty
(
1
):
if
not
os
.
isatty
(
1
):
debug
(
"Child's fd 1 is not a tty?!"
)
debug
(
"Child's fd 1 is not a tty?!"
)
os
.
_exit
(
3
)
os
.
_exit
(
3
)
# After pty.fork(), the child should already be a session leader.
# After pty.fork(), the child should already be a session leader.
# (on those systems that have that concept.)
# (on those systems that have that concept.)
debug
(
"In child, calling os.setsid()"
)
debug
(
"In child, calling os.setsid()"
)
...
@@ -125,7 +125,7 @@ class PtyTest(unittest.TestCase):
...
@@ -125,7 +125,7 @@ class PtyTest(unittest.TestCase):
##if False and lines != ['In child, calling os.setsid()',
##if False and lines != ['In child, calling os.setsid()',
## 'Good: OSError was raised.', '']:
## 'Good: OSError was raised.', '']:
## raise TestFailed("Unexpected output from child: %r" % line)
## raise TestFailed("Unexpected output from child: %r" % line)
(
pid
,
status
)
=
os
.
waitpid
(
pid
,
0
)
(
pid
,
status
)
=
os
.
waitpid
(
pid
,
0
)
res
=
status
>>
8
res
=
status
>>
8
debug
(
"Child (%d) exited with status %d (%d)."
%
(
pid
,
res
,
status
))
debug
(
"Child (%d) exited with status %d (%d)."
%
(
pid
,
res
,
status
))
...
@@ -137,7 +137,7 @@ class PtyTest(unittest.TestCase):
...
@@ -137,7 +137,7 @@ class PtyTest(unittest.TestCase):
self
.
fail
(
"Child spawned by pty.fork() did not have a tty as stdout"
)
self
.
fail
(
"Child spawned by pty.fork() did not have a tty as stdout"
)
elif
res
!=
4
:
elif
res
!=
4
:
self
.
fail
(
"pty.fork() failed for unknown reasons."
)
self
.
fail
(
"pty.fork() failed for unknown reasons."
)
##debug("Reading from master_fd now that the child has exited")
##debug("Reading from master_fd now that the child has exited")
##try:
##try:
## s1 = os.read(master_fd, 1024)
## s1 = os.read(master_fd, 1024)
...
@@ -145,9 +145,9 @@ class PtyTest(unittest.TestCase):
...
@@ -145,9 +145,9 @@ class PtyTest(unittest.TestCase):
## pass
## pass
##else:
##else:
## raise TestFailed("Read from master_fd did not raise exception")
## raise TestFailed("Read from master_fd did not raise exception")
os
.
close
(
master_fd
)
os
.
close
(
master_fd
)
# pty.fork() passed.
# pty.fork() passed.
def
test_main
(
verbose
=
None
):
def
test_main
(
verbose
=
None
):
...
...
Lib/test/test_sax.py
View file @
ea5962f8
...
@@ -252,7 +252,7 @@ def test_1463026_3():
...
@@ -252,7 +252,7 @@ def test_1463026_3():
gen
.
endDocument
()
gen
.
endDocument
()
return
result
.
getvalue
()
==
start
+
'<my:a xmlns:my="qux" b="c"></my:a>'
return
result
.
getvalue
()
==
start
+
'<my:a xmlns:my="qux" b="c"></my:a>'
# ===== Xmlfilterbase
# ===== Xmlfilterbase
def
test_filter_basic
():
def
test_filter_basic
():
...
...
Lib/test/test_set.py
View file @
ea5962f8
...
@@ -285,10 +285,10 @@ class TestJointOps(unittest.TestCase):
...
@@ -285,10 +285,10 @@ class TestJointOps(unittest.TestCase):
s
=
self
.
thetype
(
d
)
s
=
self
.
thetype
(
d
)
self
.
assertEqual
(
sum
(
elem
.
hash_count
for
elem
in
d
),
n
)
self
.
assertEqual
(
sum
(
elem
.
hash_count
for
elem
in
d
),
n
)
s
.
difference
(
d
)
s
.
difference
(
d
)
self
.
assertEqual
(
sum
(
elem
.
hash_count
for
elem
in
d
),
n
)
self
.
assertEqual
(
sum
(
elem
.
hash_count
for
elem
in
d
),
n
)
if
hasattr
(
s
,
'symmetric_difference_update'
):
if
hasattr
(
s
,
'symmetric_difference_update'
):
s
.
symmetric_difference_update
(
d
)
s
.
symmetric_difference_update
(
d
)
self
.
assertEqual
(
sum
(
elem
.
hash_count
for
elem
in
d
),
n
)
self
.
assertEqual
(
sum
(
elem
.
hash_count
for
elem
in
d
),
n
)
class
TestSet
(
TestJointOps
):
class
TestSet
(
TestJointOps
):
thetype
=
set
thetype
=
set
...
...
Lib/test/test_threadedtempfile.py
View file @
ea5962f8
...
@@ -49,14 +49,14 @@ class ThreadedTempFileTest(unittest.TestCase):
...
@@ -49,14 +49,14 @@ class ThreadedTempFileTest(unittest.TestCase):
def
test_main
(
self
):
def
test_main
(
self
):
threads
=
[]
threads
=
[]
thread_info
=
threading_setup
()
thread_info
=
threading_setup
()
for
i
in
range
(
NUM_THREADS
):
for
i
in
range
(
NUM_THREADS
):
t
=
TempFileGreedy
()
t
=
TempFileGreedy
()
threads
.
append
(
t
)
threads
.
append
(
t
)
t
.
start
()
t
.
start
()
startEvent
.
set
()
startEvent
.
set
()
ok
=
0
ok
=
0
errors
=
[]
errors
=
[]
for
t
in
threads
:
for
t
in
threads
:
...
@@ -66,8 +66,8 @@ class ThreadedTempFileTest(unittest.TestCase):
...
@@ -66,8 +66,8 @@ class ThreadedTempFileTest(unittest.TestCase):
errors
.
append
(
str
(
t
.
getName
())
+
str
(
t
.
errors
.
getvalue
()))
errors
.
append
(
str
(
t
.
getName
())
+
str
(
t
.
errors
.
getvalue
()))
threading_cleanup
(
*
thread_info
)
threading_cleanup
(
*
thread_info
)
msg
=
"Errors: errors %d ok %d
\
n
%s"
%
(
len
(
errors
),
ok
,
msg
=
"Errors: errors %d ok %d
\
n
%s"
%
(
len
(
errors
),
ok
,
'
\
n
'
.
join
(
errors
))
'
\
n
'
.
join
(
errors
))
self
.
assertEquals
(
errors
,
[],
msg
)
self
.
assertEquals
(
errors
,
[],
msg
)
self
.
assertEquals
(
ok
,
NUM_THREADS
*
FILES_PER_THREAD
)
self
.
assertEquals
(
ok
,
NUM_THREADS
*
FILES_PER_THREAD
)
...
...
Lib/test/test_unittest.py
View file @
ea5962f8
...
@@ -21,34 +21,34 @@ class LoggingResult(unittest.TestResult):
...
@@ -21,34 +21,34 @@ class LoggingResult(unittest.TestResult):
def
startTest
(
self
,
test
):
def
startTest
(
self
,
test
):
self
.
_events
.
append
(
'startTest'
)
self
.
_events
.
append
(
'startTest'
)
super
(
LoggingResult
,
self
).
startTest
(
test
)
super
(
LoggingResult
,
self
).
startTest
(
test
)
def
stopTest
(
self
,
test
):
def
stopTest
(
self
,
test
):
self
.
_events
.
append
(
'stopTest'
)
self
.
_events
.
append
(
'stopTest'
)
super
(
LoggingResult
,
self
).
stopTest
(
test
)
super
(
LoggingResult
,
self
).
stopTest
(
test
)
def
addFailure
(
self
,
*
args
):
def
addFailure
(
self
,
*
args
):
self
.
_events
.
append
(
'addFailure'
)
self
.
_events
.
append
(
'addFailure'
)
super
(
LoggingResult
,
self
).
addFailure
(
*
args
)
super
(
LoggingResult
,
self
).
addFailure
(
*
args
)
def
addError
(
self
,
*
args
):
def
addError
(
self
,
*
args
):
self
.
_events
.
append
(
'addError'
)
self
.
_events
.
append
(
'addError'
)
super
(
LoggingResult
,
self
).
addError
(
*
args
)
super
(
LoggingResult
,
self
).
addError
(
*
args
)
class
TestEquality
(
object
):
class
TestEquality
(
object
):
# Check for a valid __eq__ implementation
# Check for a valid __eq__ implementation
def
test_eq
(
self
):
def
test_eq
(
self
):
for
obj_1
,
obj_2
in
self
.
eq_pairs
:
for
obj_1
,
obj_2
in
self
.
eq_pairs
:
self
.
assertEqual
(
obj_1
,
obj_2
)
self
.
assertEqual
(
obj_1
,
obj_2
)
self
.
assertEqual
(
obj_2
,
obj_1
)
self
.
assertEqual
(
obj_2
,
obj_1
)
# Check for a valid __ne__ implementation
# Check for a valid __ne__ implementation
def
test_ne
(
self
):
def
test_ne
(
self
):
for
obj_1
,
obj_2
in
self
.
ne_pairs
:
for
obj_1
,
obj_2
in
self
.
ne_pairs
:
self
.
failIfEqual
(
obj_1
,
obj_2
)
self
.
failIfEqual
(
obj_1
,
obj_2
)
self
.
failIfEqual
(
obj_2
,
obj_1
)
self
.
failIfEqual
(
obj_2
,
obj_1
)
class
TestHashing
(
object
):
class
TestHashing
(
object
):
# Check for a valid __hash__ implementation
# Check for a valid __hash__ implementation
def
test_hash
(
self
):
def
test_hash
(
self
):
for
obj_1
,
obj_2
in
self
.
eq_pairs
:
for
obj_1
,
obj_2
in
self
.
eq_pairs
:
try
:
try
:
...
@@ -59,7 +59,7 @@ class TestHashing(object):
...
@@ -59,7 +59,7 @@ class TestHashing(object):
self
.
fail
(
"%s and %s do not hash equal"
%
(
obj_1
,
obj_2
))
self
.
fail
(
"%s and %s do not hash equal"
%
(
obj_1
,
obj_2
))
except
Exception
,
e
:
except
Exception
,
e
:
self
.
fail
(
"Problem hashing %s and %s: %s"
%
(
obj_1
,
obj_2
,
e
))
self
.
fail
(
"Problem hashing %s and %s: %s"
%
(
obj_1
,
obj_2
,
e
))
for
obj_1
,
obj_2
in
self
.
ne_pairs
:
for
obj_1
,
obj_2
in
self
.
ne_pairs
:
try
:
try
:
assert
hash
(
obj_1
)
!=
hash
(
obj_2
)
assert
hash
(
obj_1
)
!=
hash
(
obj_2
)
...
@@ -69,7 +69,7 @@ class TestHashing(object):
...
@@ -69,7 +69,7 @@ class TestHashing(object):
self
.
fail
(
"%s and %s hash equal, but shouldn't"
%
(
obj_1
,
obj_2
))
self
.
fail
(
"%s and %s hash equal, but shouldn't"
%
(
obj_1
,
obj_2
))
except
Exception
,
e
:
except
Exception
,
e
:
self
.
fail
(
"Problem hashing %s and %s: %s"
%
(
obj_1
,
obj_2
,
e
))
self
.
fail
(
"Problem hashing %s and %s: %s"
%
(
obj_1
,
obj_2
,
e
))
################################################################
################################################################
### /Support code
### /Support code
...
@@ -86,25 +86,25 @@ class Test_TestLoader(TestCase):
...
@@ -86,25 +86,25 @@ class Test_TestLoader(TestCase):
def
test_1
(
self
):
pass
def
test_1
(
self
):
pass
def
test_2
(
self
):
pass
def
test_2
(
self
):
pass
def
foo_bar
(
self
):
pass
def
foo_bar
(
self
):
pass
tests
=
unittest
.
TestSuite
([
Foo
(
'test_1'
),
Foo
(
'test_2'
)])
tests
=
unittest
.
TestSuite
([
Foo
(
'test_1'
),
Foo
(
'test_2'
)])
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
self
.
assertEqual
(
loader
.
loadTestsFromTestCase
(
Foo
),
tests
)
self
.
assertEqual
(
loader
.
loadTestsFromTestCase
(
Foo
),
tests
)
# "Return a suite of all tests cases contained in the TestCase-derived
# "Return a suite of all tests cases contained in the TestCase-derived
# class testCaseClass"
# class testCaseClass"
#
#
# Make sure it does the right thing even if no tests were found
# Make sure it does the right thing even if no tests were found
def
test_loadTestsFromTestCase__no_matches
(
self
):
def
test_loadTestsFromTestCase__no_matches
(
self
):
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
foo_bar
(
self
):
pass
def
foo_bar
(
self
):
pass
empty_suite
=
unittest
.
TestSuite
()
empty_suite
=
unittest
.
TestSuite
()
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
self
.
assertEqual
(
loader
.
loadTestsFromTestCase
(
Foo
),
empty_suite
)
self
.
assertEqual
(
loader
.
loadTestsFromTestCase
(
Foo
),
empty_suite
)
# "Return a suite of all tests cases contained in the TestCase-derived
# "Return a suite of all tests cases contained in the TestCase-derived
# class testCaseClass"
# class testCaseClass"
#
#
...
@@ -117,7 +117,7 @@ class Test_TestLoader(TestCase):
...
@@ -117,7 +117,7 @@ class Test_TestLoader(TestCase):
def
test_loadTestsFromTestCase__TestSuite_subclass
(
self
):
def
test_loadTestsFromTestCase__TestSuite_subclass
(
self
):
class
NotATestCase
(
unittest
.
TestSuite
):
class
NotATestCase
(
unittest
.
TestSuite
):
pass
pass
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
try
:
try
:
loader
.
loadTestsFromTestCase
(
NotATestCase
)
loader
.
loadTestsFromTestCase
(
NotATestCase
)
...
@@ -125,7 +125,7 @@ class Test_TestLoader(TestCase):
...
@@ -125,7 +125,7 @@ class Test_TestLoader(TestCase):
pass
pass
else
:
else
:
self
.
fail
(
'Should raise TypeError'
)
self
.
fail
(
'Should raise TypeError'
)
# "Return a suite of all tests cases contained in the TestCase-derived
# "Return a suite of all tests cases contained in the TestCase-derived
# class testCaseClass"
# class testCaseClass"
#
#
...
@@ -136,18 +136,18 @@ class Test_TestLoader(TestCase):
...
@@ -136,18 +136,18 @@ class Test_TestLoader(TestCase):
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
runTest
(
self
):
def
runTest
(
self
):
pass
pass
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
# This has to be false for the test to succeed
# This has to be false for the test to succeed
self
.
failIf
(
'runTest'
.
startswith
(
loader
.
testMethodPrefix
))
self
.
failIf
(
'runTest'
.
startswith
(
loader
.
testMethodPrefix
))
suite
=
loader
.
loadTestsFromTestCase
(
Foo
)
suite
=
loader
.
loadTestsFromTestCase
(
Foo
)
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
self
.
assertEqual
(
list
(
suite
),
[
Foo
(
'runTest'
)])
self
.
assertEqual
(
list
(
suite
),
[
Foo
(
'runTest'
)])
################################################################
################################################################
### /Tests for TestLoader.loadTestsFromTestCase
### /Tests for TestLoader.loadTestsFromTestCase
### Tests for TestLoader.loadTestsFromModule
### Tests for TestLoader.loadTestsFromModule
################################################################
################################################################
...
@@ -159,42 +159,42 @@ class Test_TestLoader(TestCase):
...
@@ -159,42 +159,42 @@ class Test_TestLoader(TestCase):
def
test
(
self
):
def
test
(
self
):
pass
pass
m
.
testcase_1
=
MyTestCase
m
.
testcase_1
=
MyTestCase
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
suite
=
loader
.
loadTestsFromModule
(
m
)
suite
=
loader
.
loadTestsFromModule
(
m
)
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
expected
=
[
loader
.
suiteClass
([
MyTestCase
(
'test'
)])]
expected
=
[
loader
.
suiteClass
([
MyTestCase
(
'test'
)])]
self
.
assertEqual
(
list
(
suite
),
expected
)
self
.
assertEqual
(
list
(
suite
),
expected
)
# "This method searches `module` for classes derived from TestCase"
# "This method searches `module` for classes derived from TestCase"
#
#
# What happens if no tests are found (no TestCase instances)?
# What happens if no tests are found (no TestCase instances)?
def
test_loadTestsFromModule__no_TestCase_instances
(
self
):
def
test_loadTestsFromModule__no_TestCase_instances
(
self
):
import
new
import
new
m
=
new
.
module
(
'm'
)
m
=
new
.
module
(
'm'
)
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
suite
=
loader
.
loadTestsFromModule
(
m
)
suite
=
loader
.
loadTestsFromModule
(
m
)
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
self
.
assertEqual
(
list
(
suite
),
[])
self
.
assertEqual
(
list
(
suite
),
[])
# "This method searches `module` for classes derived from TestCase"
# "This method searches `module` for classes derived from TestCase"
#
#
# What happens if no tests are found (TestCases instances, but no tests)?
# What happens if no tests are found (TestCases instances, but no tests)?
def
test_loadTestsFromModule__no_TestCase_tests
(
self
):
def
test_loadTestsFromModule__no_TestCase_tests
(
self
):
import
new
import
new
m
=
new
.
module
(
'm'
)
m
=
new
.
module
(
'm'
)
class
MyTestCase
(
unittest
.
TestCase
):
class
MyTestCase
(
unittest
.
TestCase
):
pass
pass
m
.
testcase_1
=
MyTestCase
m
.
testcase_1
=
MyTestCase
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
suite
=
loader
.
loadTestsFromModule
(
m
)
suite
=
loader
.
loadTestsFromModule
(
m
)
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
self
.
assertEqual
(
list
(
suite
),
[
loader
.
suiteClass
()])
self
.
assertEqual
(
list
(
suite
),
[
loader
.
suiteClass
()])
# "This method searches `module` for classes derived from TestCase"s
# "This method searches `module` for classes derived from TestCase"s
#
#
# What happens if loadTestsFromModule() is given something other
# What happens if loadTestsFromModule() is given something other
...
@@ -209,22 +209,22 @@ class Test_TestLoader(TestCase):
...
@@ -209,22 +209,22 @@ class Test_TestLoader(TestCase):
class
MyTestCase
(
unittest
.
TestCase
):
class
MyTestCase
(
unittest
.
TestCase
):
def
test
(
self
):
def
test
(
self
):
pass
pass
class
NotAModule
(
object
):
class
NotAModule
(
object
):
test_2
=
MyTestCase
test_2
=
MyTestCase
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
suite
=
loader
.
loadTestsFromModule
(
NotAModule
)
suite
=
loader
.
loadTestsFromModule
(
NotAModule
)
reference
=
[
unittest
.
TestSuite
([
MyTestCase
(
'test'
)])]
reference
=
[
unittest
.
TestSuite
([
MyTestCase
(
'test'
)])]
self
.
assertEqual
(
list
(
suite
),
reference
)
self
.
assertEqual
(
list
(
suite
),
reference
)
################################################################
################################################################
### /Tests for TestLoader.loadTestsFromModule()
### /Tests for TestLoader.loadTestsFromModule()
### Tests for TestLoader.loadTestsFromName()
### Tests for TestLoader.loadTestsFromName()
################################################################
################################################################
# "The specifier name is a ``dotted name'' that may resolve either to
# "The specifier name is a ``dotted name'' that may resolve either to
# a module, a test case class, a TestSuite instance, a test method
# a module, a test case class, a TestSuite instance, a test method
# within a test case class, or a callable object which returns a
# within a test case class, or a callable object which returns a
...
@@ -233,23 +233,23 @@ class Test_TestLoader(TestCase):
...
@@ -233,23 +233,23 @@ class Test_TestLoader(TestCase):
# Is ValueError raised in response to an empty name?
# Is ValueError raised in response to an empty name?
def
test_loadTestsFromName__empty_name
(
self
):
def
test_loadTestsFromName__empty_name
(
self
):
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
try
:
try
:
loader
.
loadTestsFromName
(
''
)
loader
.
loadTestsFromName
(
''
)
except
ValueError
,
e
:
except
ValueError
,
e
:
self
.
assertEqual
(
str
(
e
),
"Empty module name"
)
self
.
assertEqual
(
str
(
e
),
"Empty module name"
)
else
:
else
:
self
.
fail
(
"TestLoader.loadTestsFromName failed to raise ValueError"
)
self
.
fail
(
"TestLoader.loadTestsFromName failed to raise ValueError"
)
# "The specifier name is a ``dotted name'' that may resolve either to
# "The specifier name is a ``dotted name'' that may resolve either to
# a module, a test case class, a TestSuite instance, a test method
# a module, a test case class, a TestSuite instance, a test method
# within a test case class, or a callable object which returns a
# within a test case class, or a callable object which returns a
# TestCase or TestSuite instance."
# TestCase or TestSuite instance."
#
#
# What happens when the name contains invalid characters?
# What happens when the name contains invalid characters?
def
test_loadTestsFromName__malformed_name
(
self
):
def
test_loadTestsFromName__malformed_name
(
self
):
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
# XXX Should this raise ValueError or ImportError?
# XXX Should this raise ValueError or ImportError?
try
:
try
:
loader
.
loadTestsFromName
(
'abc () //'
)
loader
.
loadTestsFromName
(
'abc () //'
)
...
@@ -259,37 +259,37 @@ class Test_TestLoader(TestCase):
...
@@ -259,37 +259,37 @@ class Test_TestLoader(TestCase):
pass
pass
else
:
else
:
self
.
fail
(
"TestLoader.loadTestsFromName failed to raise ValueError"
)
self
.
fail
(
"TestLoader.loadTestsFromName failed to raise ValueError"
)
# "The specifier name is a ``dotted name'' that may resolve ... to a
# "The specifier name is a ``dotted name'' that may resolve ... to a
# module"
# module"
#
#
# What happens when a module by that name can't be found?
# What happens when a module by that name can't be found?
def
test_loadTestsFromName__unknown_module_name
(
self
):
def
test_loadTestsFromName__unknown_module_name
(
self
):
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
try
:
try
:
loader
.
loadTestsFromName
(
'sdasfasfasdf'
)
loader
.
loadTestsFromName
(
'sdasfasfasdf'
)
except
ImportError
,
e
:
except
ImportError
,
e
:
self
.
assertEqual
(
str
(
e
),
"No module named sdasfasfasdf"
)
self
.
assertEqual
(
str
(
e
),
"No module named sdasfasfasdf"
)
else
:
else
:
self
.
fail
(
"TestLoader.loadTestsFromName failed to raise ImportError"
)
self
.
fail
(
"TestLoader.loadTestsFromName failed to raise ImportError"
)
# "The specifier name is a ``dotted name'' that may resolve either to
# "The specifier name is a ``dotted name'' that may resolve either to
# a module, a test case class, a TestSuite instance, a test method
# a module, a test case class, a TestSuite instance, a test method
# within a test case class, or a callable object which returns a
# within a test case class, or a callable object which returns a
# TestCase or TestSuite instance."
# TestCase or TestSuite instance."
#
#
# What happens when the module is found, but the attribute can't?
# What happens when the module is found, but the attribute can't?
def
test_loadTestsFromName__unknown_attr_name
(
self
):
def
test_loadTestsFromName__unknown_attr_name
(
self
):
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
try
:
try
:
loader
.
loadTestsFromName
(
'unittest.sdasfasfasdf'
)
loader
.
loadTestsFromName
(
'unittest.sdasfasfasdf'
)
except
AttributeError
,
e
:
except
AttributeError
,
e
:
self
.
assertEqual
(
str
(
e
),
"'module' object has no attribute 'sdasfasfasdf'"
)
self
.
assertEqual
(
str
(
e
),
"'module' object has no attribute 'sdasfasfasdf'"
)
else
:
else
:
self
.
fail
(
"TestLoader.loadTestsFromName failed to raise AttributeError"
)
self
.
fail
(
"TestLoader.loadTestsFromName failed to raise AttributeError"
)
# "The specifier name is a ``dotted name'' that may resolve either to
# "The specifier name is a ``dotted name'' that may resolve either to
# a module, a test case class, a TestSuite instance, a test method
# a module, a test case class, a TestSuite instance, a test method
# within a test case class, or a callable object which returns a
# within a test case class, or a callable object which returns a
...
@@ -299,14 +299,14 @@ class Test_TestLoader(TestCase):
...
@@ -299,14 +299,14 @@ class Test_TestLoader(TestCase):
# found?
# found?
def
test_loadTestsFromName__relative_unknown_name
(
self
):
def
test_loadTestsFromName__relative_unknown_name
(
self
):
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
try
:
try
:
loader
.
loadTestsFromName
(
'sdasfasfasdf'
,
unittest
)
loader
.
loadTestsFromName
(
'sdasfasfasdf'
,
unittest
)
except
AttributeError
,
e
:
except
AttributeError
,
e
:
self
.
assertEqual
(
str
(
e
),
"'module' object has no attribute 'sdasfasfasdf'"
)
self
.
assertEqual
(
str
(
e
),
"'module' object has no attribute 'sdasfasfasdf'"
)
else
:
else
:
self
.
fail
(
"TestLoader.loadTestsFromName failed to raise AttributeError"
)
self
.
fail
(
"TestLoader.loadTestsFromName failed to raise AttributeError"
)
# "The specifier name is a ``dotted name'' that may resolve either to
# "The specifier name is a ``dotted name'' that may resolve either to
# a module, a test case class, a TestSuite instance, a test method
# a module, a test case class, a TestSuite instance, a test method
# within a test case class, or a callable object which returns a
# within a test case class, or a callable object which returns a
...
@@ -320,14 +320,14 @@ class Test_TestLoader(TestCase):
...
@@ -320,14 +320,14 @@ class Test_TestLoader(TestCase):
# XXX Should probably raise a ValueError instead of an AttributeError
# XXX Should probably raise a ValueError instead of an AttributeError
def
test_loadTestsFromName__relative_empty_name
(
self
):
def
test_loadTestsFromName__relative_empty_name
(
self
):
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
try
:
try
:
loader
.
loadTestsFromName
(
''
,
unittest
)
loader
.
loadTestsFromName
(
''
,
unittest
)
except
AttributeError
,
e
:
except
AttributeError
,
e
:
pass
pass
else
:
else
:
self
.
fail
(
"Failed to raise AttributeError"
)
self
.
fail
(
"Failed to raise AttributeError"
)
# "The specifier name is a ``dotted name'' that may resolve either to
# "The specifier name is a ``dotted name'' that may resolve either to
# a module, a test case class, a TestSuite instance, a test method
# a module, a test case class, a TestSuite instance, a test method
# within a test case class, or a callable object which returns a
# within a test case class, or a callable object which returns a
...
@@ -339,7 +339,7 @@ class Test_TestLoader(TestCase):
...
@@ -339,7 +339,7 @@ class Test_TestLoader(TestCase):
# `module`?
# `module`?
def
test_loadTestsFromName__relative_malformed_name
(
self
):
def
test_loadTestsFromName__relative_malformed_name
(
self
):
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
# XXX Should this raise AttributeError or ValueError?
# XXX Should this raise AttributeError or ValueError?
try
:
try
:
loader
.
loadTestsFromName
(
'abc () //'
,
unittest
)
loader
.
loadTestsFromName
(
'abc () //'
,
unittest
)
...
@@ -363,16 +363,16 @@ class Test_TestLoader(TestCase):
...
@@ -363,16 +363,16 @@ class Test_TestLoader(TestCase):
class
MyTestCase
(
unittest
.
TestCase
):
class
MyTestCase
(
unittest
.
TestCase
):
def
test
(
self
):
def
test
(
self
):
pass
pass
class
NotAModule
(
object
):
class
NotAModule
(
object
):
test_2
=
MyTestCase
test_2
=
MyTestCase
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
suite
=
loader
.
loadTestsFromName
(
'test_2'
,
NotAModule
)
suite
=
loader
.
loadTestsFromName
(
'test_2'
,
NotAModule
)
reference
=
[
MyTestCase
(
'test'
)]
reference
=
[
MyTestCase
(
'test'
)]
self
.
assertEqual
(
list
(
suite
),
reference
)
self
.
assertEqual
(
list
(
suite
),
reference
)
# "The specifier name is a ``dotted name'' that may resolve either to
# "The specifier name is a ``dotted name'' that may resolve either to
# a module, a test case class, a TestSuite instance, a test method
# a module, a test case class, a TestSuite instance, a test method
# within a test case class, or a callable object which returns a
# within a test case class, or a callable object which returns a
...
@@ -384,7 +384,7 @@ class Test_TestLoader(TestCase):
...
@@ -384,7 +384,7 @@ class Test_TestLoader(TestCase):
import
new
import
new
m
=
new
.
module
(
'm'
)
m
=
new
.
module
(
'm'
)
m
.
testcase_1
=
object
()
m
.
testcase_1
=
object
()
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
try
:
try
:
loader
.
loadTestsFromName
(
'testcase_1'
,
m
)
loader
.
loadTestsFromName
(
'testcase_1'
,
m
)
...
@@ -402,12 +402,12 @@ class Test_TestLoader(TestCase):
...
@@ -402,12 +402,12 @@ class Test_TestLoader(TestCase):
def
test
(
self
):
def
test
(
self
):
pass
pass
m
.
testcase_1
=
MyTestCase
m
.
testcase_1
=
MyTestCase
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
suite
=
loader
.
loadTestsFromName
(
'testcase_1'
,
m
)
suite
=
loader
.
loadTestsFromName
(
'testcase_1'
,
m
)
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
self
.
assertEqual
(
list
(
suite
),
[
MyTestCase
(
'test'
)])
self
.
assertEqual
(
list
(
suite
),
[
MyTestCase
(
'test'
)])
# "The specifier name is a ``dotted name'' that may resolve either to
# "The specifier name is a ``dotted name'' that may resolve either to
# a module, a test case class, a TestSuite instance, a test method
# a module, a test case class, a TestSuite instance, a test method
# within a test case class, or a callable object which returns a
# within a test case class, or a callable object which returns a
...
@@ -419,13 +419,13 @@ class Test_TestLoader(TestCase):
...
@@ -419,13 +419,13 @@ class Test_TestLoader(TestCase):
def
test
(
self
):
def
test
(
self
):
pass
pass
m
.
testsuite
=
unittest
.
TestSuite
([
MyTestCase
(
'test'
)])
m
.
testsuite
=
unittest
.
TestSuite
([
MyTestCase
(
'test'
)])
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
suite
=
loader
.
loadTestsFromName
(
'testsuite'
,
m
)
suite
=
loader
.
loadTestsFromName
(
'testsuite'
,
m
)
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
self
.
assertEqual
(
list
(
suite
),
[
MyTestCase
(
'test'
)])
self
.
assertEqual
(
list
(
suite
),
[
MyTestCase
(
'test'
)])
# "The specifier name is a ``dotted name'' that may resolve ... to
# "The specifier name is a ``dotted name'' that may resolve ... to
# ... a test method within a test case class"
# ... a test method within a test case class"
def
test_loadTestsFromName__relative_testmethod
(
self
):
def
test_loadTestsFromName__relative_testmethod
(
self
):
...
@@ -435,13 +435,13 @@ class Test_TestLoader(TestCase):
...
@@ -435,13 +435,13 @@ class Test_TestLoader(TestCase):
def
test
(
self
):
def
test
(
self
):
pass
pass
m
.
testcase_1
=
MyTestCase
m
.
testcase_1
=
MyTestCase
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
suite
=
loader
.
loadTestsFromName
(
'testcase_1.test'
,
m
)
suite
=
loader
.
loadTestsFromName
(
'testcase_1.test'
,
m
)
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
self
.
assertEqual
(
list
(
suite
),
[
MyTestCase
(
'test'
)])
self
.
assertEqual
(
list
(
suite
),
[
MyTestCase
(
'test'
)])
# "The specifier name is a ``dotted name'' that may resolve either to
# "The specifier name is a ``dotted name'' that may resolve either to
# a module, a test case class, a TestSuite instance, a test method
# a module, a test case class, a TestSuite instance, a test method
# within a test case class, or a callable object which returns a
# within a test case class, or a callable object which returns a
...
@@ -457,7 +457,7 @@ class Test_TestLoader(TestCase):
...
@@ -457,7 +457,7 @@ class Test_TestLoader(TestCase):
def
test
(
self
):
def
test
(
self
):
pass
pass
m
.
testcase_1
=
MyTestCase
m
.
testcase_1
=
MyTestCase
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
try
:
try
:
loader
.
loadTestsFromName
(
'testcase_1.testfoo'
,
m
)
loader
.
loadTestsFromName
(
'testcase_1.testfoo'
,
m
)
...
@@ -476,12 +476,12 @@ class Test_TestLoader(TestCase):
...
@@ -476,12 +476,12 @@ class Test_TestLoader(TestCase):
def
return_TestSuite
():
def
return_TestSuite
():
return
unittest
.
TestSuite
([
testcase_1
,
testcase_2
])
return
unittest
.
TestSuite
([
testcase_1
,
testcase_2
])
m
.
return_TestSuite
=
return_TestSuite
m
.
return_TestSuite
=
return_TestSuite
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
suite
=
loader
.
loadTestsFromName
(
'return_TestSuite'
,
m
)
suite
=
loader
.
loadTestsFromName
(
'return_TestSuite'
,
m
)
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
self
.
assertEqual
(
list
(
suite
),
[
testcase_1
,
testcase_2
])
self
.
assertEqual
(
list
(
suite
),
[
testcase_1
,
testcase_2
])
# "The specifier name is a ``dotted name'' that may resolve ... to
# "The specifier name is a ``dotted name'' that may resolve ... to
# ... a callable object which returns a TestCase ... instance"
# ... a callable object which returns a TestCase ... instance"
def
test_loadTestsFromName__callable__TestCase_instance
(
self
):
def
test_loadTestsFromName__callable__TestCase_instance
(
self
):
...
@@ -491,12 +491,12 @@ class Test_TestLoader(TestCase):
...
@@ -491,12 +491,12 @@ class Test_TestLoader(TestCase):
def
return_TestCase
():
def
return_TestCase
():
return
testcase_1
return
testcase_1
m
.
return_TestCase
=
return_TestCase
m
.
return_TestCase
=
return_TestCase
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
suite
=
loader
.
loadTestsFromName
(
'return_TestCase'
,
m
)
suite
=
loader
.
loadTestsFromName
(
'return_TestCase'
,
m
)
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
self
.
assertEqual
(
list
(
suite
),
[
testcase_1
])
self
.
assertEqual
(
list
(
suite
),
[
testcase_1
])
# "The specifier name is a ``dotted name'' that may resolve ... to
# "The specifier name is a ``dotted name'' that may resolve ... to
# ... a callable object which returns a TestCase or TestSuite instance"
# ... a callable object which returns a TestCase or TestSuite instance"
#
#
...
@@ -507,7 +507,7 @@ class Test_TestLoader(TestCase):
...
@@ -507,7 +507,7 @@ class Test_TestLoader(TestCase):
def
return_wrong
():
def
return_wrong
():
return
6
return
6
m
.
return_wrong
=
return_wrong
m
.
return_wrong
=
return_wrong
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
try
:
try
:
suite
=
loader
.
loadTestsFromName
(
'return_wrong'
,
m
)
suite
=
loader
.
loadTestsFromName
(
'return_wrong'
,
m
)
...
@@ -515,9 +515,9 @@ class Test_TestLoader(TestCase):
...
@@ -515,9 +515,9 @@ class Test_TestLoader(TestCase):
pass
pass
else
:
else
:
self
.
fail
(
"TestLoader.loadTestsFromName failed to raise TypeError"
)
self
.
fail
(
"TestLoader.loadTestsFromName failed to raise TypeError"
)
# "The specifier can refer to modules and packages which have not been
# "The specifier can refer to modules and packages which have not been
# imported; they will be imported as a side-effect"
# imported; they will be imported as a side-effect"
def
test_loadTestsFromName__module_not_loaded
(
self
):
def
test_loadTestsFromName__module_not_loaded
(
self
):
# We're going to try to load this module as a side-effect, so it
# We're going to try to load this module as a side-effect, so it
# better not be loaded before we try.
# better not be loaded before we try.
...
@@ -525,11 +525,11 @@ class Test_TestLoader(TestCase):
...
@@ -525,11 +525,11 @@ class Test_TestLoader(TestCase):
# Why pick audioop? Google shows it isn't used very often, so there's
# Why pick audioop? Google shows it isn't used very often, so there's
# a good chance that it won't be imported when this test is run
# a good chance that it won't be imported when this test is run
module_name
=
'audioop'
module_name
=
'audioop'
import
sys
import
sys
if
module_name
in
sys
.
modules
:
if
module_name
in
sys
.
modules
:
del
sys
.
modules
[
module_name
]
del
sys
.
modules
[
module_name
]
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
try
:
try
:
suite
=
loader
.
loadTestsFromName
(
module_name
)
suite
=
loader
.
loadTestsFromName
(
module_name
)
...
@@ -547,18 +547,18 @@ class Test_TestLoader(TestCase):
...
@@ -547,18 +547,18 @@ class Test_TestLoader(TestCase):
### Tests for TestLoader.loadTestsFromNames()
### Tests for TestLoader.loadTestsFromNames()
################################################################
################################################################
# "Similar to loadTestsFromName(), but takes a sequence of names rather
# "Similar to loadTestsFromName(), but takes a sequence of names rather
# than a single name."
# than a single name."
#
#
# What happens if that sequence of names is empty?
# What happens if that sequence of names is empty?
def
test_loadTestsFromNames__empty_name_list
(
self
):
def
test_loadTestsFromNames__empty_name_list
(
self
):
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
suite
=
loader
.
loadTestsFromNames
([])
suite
=
loader
.
loadTestsFromNames
([])
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
self
.
assertEqual
(
list
(
suite
),
[])
self
.
assertEqual
(
list
(
suite
),
[])
# "Similar to loadTestsFromName(), but takes a sequence of names rather
# "Similar to loadTestsFromName(), but takes a sequence of names rather
# than a single name."
# than a single name."
# ...
# ...
...
@@ -569,7 +569,7 @@ class Test_TestLoader(TestCase):
...
@@ -569,7 +569,7 @@ class Test_TestLoader(TestCase):
# XXX Should this raise a ValueError or just return an empty TestSuite?
# XXX Should this raise a ValueError or just return an empty TestSuite?
def
test_loadTestsFromNames__relative_empty_name_list
(
self
):
def
test_loadTestsFromNames__relative_empty_name_list
(
self
):
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
suite
=
loader
.
loadTestsFromNames
([],
unittest
)
suite
=
loader
.
loadTestsFromNames
([],
unittest
)
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
self
.
assertEqual
(
list
(
suite
),
[])
self
.
assertEqual
(
list
(
suite
),
[])
...
@@ -582,23 +582,23 @@ class Test_TestLoader(TestCase):
...
@@ -582,23 +582,23 @@ class Test_TestLoader(TestCase):
# Is ValueError raised in response to an empty name?
# Is ValueError raised in response to an empty name?
def
test_loadTestsFromNames__empty_name
(
self
):
def
test_loadTestsFromNames__empty_name
(
self
):
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
try
:
try
:
loader
.
loadTestsFromNames
([
''
])
loader
.
loadTestsFromNames
([
''
])
except
ValueError
,
e
:
except
ValueError
,
e
:
self
.
assertEqual
(
str
(
e
),
"Empty module name"
)
self
.
assertEqual
(
str
(
e
),
"Empty module name"
)
else
:
else
:
self
.
fail
(
"TestLoader.loadTestsFromNames failed to raise ValueError"
)
self
.
fail
(
"TestLoader.loadTestsFromNames failed to raise ValueError"
)
# "The specifier name is a ``dotted name'' that may resolve either to
# "The specifier name is a ``dotted name'' that may resolve either to
# a module, a test case class, a TestSuite instance, a test method
# a module, a test case class, a TestSuite instance, a test method
# within a test case class, or a callable object which returns a
# within a test case class, or a callable object which returns a
# TestCase or TestSuite instance."
# TestCase or TestSuite instance."
#
#
# What happens when presented with an impossible module name?
# What happens when presented with an impossible module name?
def
test_loadTestsFromNames__malformed_name
(
self
):
def
test_loadTestsFromNames__malformed_name
(
self
):
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
# XXX Should this raise ValueError or ImportError?
# XXX Should this raise ValueError or ImportError?
try
:
try
:
loader
.
loadTestsFromNames
([
'abc () //'
])
loader
.
loadTestsFromNames
([
'abc () //'
])
...
@@ -608,39 +608,39 @@ class Test_TestLoader(TestCase):
...
@@ -608,39 +608,39 @@ class Test_TestLoader(TestCase):
pass
pass
else
:
else
:
self
.
fail
(
"TestLoader.loadTestsFromNames failed to raise ValueError"
)
self
.
fail
(
"TestLoader.loadTestsFromNames failed to raise ValueError"
)
# "The specifier name is a ``dotted name'' that may resolve either to
# "The specifier name is a ``dotted name'' that may resolve either to
# a module, a test case class, a TestSuite instance, a test method
# a module, a test case class, a TestSuite instance, a test method
# within a test case class, or a callable object which returns a
# within a test case class, or a callable object which returns a
# TestCase or TestSuite instance."
# TestCase or TestSuite instance."
#
#
# What happens when no module can be found for the given name?
# What happens when no module can be found for the given name?
def
test_loadTestsFromNames__unknown_module_name
(
self
):
def
test_loadTestsFromNames__unknown_module_name
(
self
):
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
try
:
try
:
loader
.
loadTestsFromNames
([
'sdasfasfasdf'
])
loader
.
loadTestsFromNames
([
'sdasfasfasdf'
])
except
ImportError
,
e
:
except
ImportError
,
e
:
self
.
assertEqual
(
str
(
e
),
"No module named sdasfasfasdf"
)
self
.
assertEqual
(
str
(
e
),
"No module named sdasfasfasdf"
)
else
:
else
:
self
.
fail
(
"TestLoader.loadTestsFromNames failed to raise ImportError"
)
self
.
fail
(
"TestLoader.loadTestsFromNames failed to raise ImportError"
)
# "The specifier name is a ``dotted name'' that may resolve either to
# "The specifier name is a ``dotted name'' that may resolve either to
# a module, a test case class, a TestSuite instance, a test method
# a module, a test case class, a TestSuite instance, a test method
# within a test case class, or a callable object which returns a
# within a test case class, or a callable object which returns a
# TestCase or TestSuite instance."
# TestCase or TestSuite instance."
#
#
# What happens when the module can be found, but not the attribute?
# What happens when the module can be found, but not the attribute?
def
test_loadTestsFromNames__unknown_attr_name
(
self
):
def
test_loadTestsFromNames__unknown_attr_name
(
self
):
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
try
:
try
:
loader
.
loadTestsFromNames
([
'unittest.sdasfasfasdf'
,
'unittest'
])
loader
.
loadTestsFromNames
([
'unittest.sdasfasfasdf'
,
'unittest'
])
except
AttributeError
,
e
:
except
AttributeError
,
e
:
self
.
assertEqual
(
str
(
e
),
"'module' object has no attribute 'sdasfasfasdf'"
)
self
.
assertEqual
(
str
(
e
),
"'module' object has no attribute 'sdasfasfasdf'"
)
else
:
else
:
self
.
fail
(
"TestLoader.loadTestsFromNames failed to raise AttributeError"
)
self
.
fail
(
"TestLoader.loadTestsFromNames failed to raise AttributeError"
)
# "The specifier name is a ``dotted name'' that may resolve either to
# "The specifier name is a ``dotted name'' that may resolve either to
# a module, a test case class, a TestSuite instance, a test method
# a module, a test case class, a TestSuite instance, a test method
# within a test case class, or a callable object which returns a
# within a test case class, or a callable object which returns a
...
@@ -652,14 +652,14 @@ class Test_TestLoader(TestCase):
...
@@ -652,14 +652,14 @@ class Test_TestLoader(TestCase):
# argument?
# argument?
def
test_loadTestsFromNames__unknown_name_relative_1
(
self
):
def
test_loadTestsFromNames__unknown_name_relative_1
(
self
):
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
try
:
try
:
loader
.
loadTestsFromNames
([
'sdasfasfasdf'
],
unittest
)
loader
.
loadTestsFromNames
([
'sdasfasfasdf'
],
unittest
)
except
AttributeError
,
e
:
except
AttributeError
,
e
:
self
.
assertEqual
(
str
(
e
),
"'module' object has no attribute 'sdasfasfasdf'"
)
self
.
assertEqual
(
str
(
e
),
"'module' object has no attribute 'sdasfasfasdf'"
)
else
:
else
:
self
.
fail
(
"TestLoader.loadTestsFromName failed to raise AttributeError"
)
self
.
fail
(
"TestLoader.loadTestsFromName failed to raise AttributeError"
)
# "The specifier name is a ``dotted name'' that may resolve either to
# "The specifier name is a ``dotted name'' that may resolve either to
# a module, a test case class, a TestSuite instance, a test method
# a module, a test case class, a TestSuite instance, a test method
# within a test case class, or a callable object which returns a
# within a test case class, or a callable object which returns a
...
@@ -668,10 +668,10 @@ class Test_TestLoader(TestCase):
...
@@ -668,10 +668,10 @@ class Test_TestLoader(TestCase):
# "The method optionally resolves name relative to the given module"
# "The method optionally resolves name relative to the given module"
#
#
# Do unknown attributes (relative to a provided module) still raise an
# Do unknown attributes (relative to a provided module) still raise an
# exception even in the presence of valid attribute names?
# exception even in the presence of valid attribute names?
def
test_loadTestsFromNames__unknown_name_relative_2
(
self
):
def
test_loadTestsFromNames__unknown_name_relative_2
(
self
):
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
try
:
try
:
loader
.
loadTestsFromNames
([
'TestCase'
,
'sdasfasfasdf'
],
unittest
)
loader
.
loadTestsFromNames
([
'TestCase'
,
'sdasfasfasdf'
],
unittest
)
except
AttributeError
,
e
:
except
AttributeError
,
e
:
...
@@ -692,14 +692,14 @@ class Test_TestLoader(TestCase):
...
@@ -692,14 +692,14 @@ class Test_TestLoader(TestCase):
# more appropriate
# more appropriate
def
test_loadTestsFromNames__relative_empty_name
(
self
):
def
test_loadTestsFromNames__relative_empty_name
(
self
):
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
try
:
try
:
loader
.
loadTestsFromNames
([
''
],
unittest
)
loader
.
loadTestsFromNames
([
''
],
unittest
)
except
AttributeError
:
except
AttributeError
:
pass
pass
else
:
else
:
self
.
fail
(
"Failed to raise ValueError"
)
self
.
fail
(
"Failed to raise ValueError"
)
# "The specifier name is a ``dotted name'' that may resolve either to
# "The specifier name is a ``dotted name'' that may resolve either to
# a module, a test case class, a TestSuite instance, a test method
# a module, a test case class, a TestSuite instance, a test method
# within a test case class, or a callable object which returns a
# within a test case class, or a callable object which returns a
...
@@ -707,10 +707,10 @@ class Test_TestLoader(TestCase):
...
@@ -707,10 +707,10 @@ class Test_TestLoader(TestCase):
# ...
# ...
# "The method optionally resolves name relative to the given module"
# "The method optionally resolves name relative to the given module"
#
#
# What happens when presented with an impossible attribute name?
# What happens when presented with an impossible attribute name?
def
test_loadTestsFromNames__relative_malformed_name
(
self
):
def
test_loadTestsFromNames__relative_malformed_name
(
self
):
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
# XXX Should this raise AttributeError or ValueError?
# XXX Should this raise AttributeError or ValueError?
try
:
try
:
loader
.
loadTestsFromNames
([
'abc () //'
],
unittest
)
loader
.
loadTestsFromNames
([
'abc () //'
],
unittest
)
...
@@ -732,16 +732,16 @@ class Test_TestLoader(TestCase):
...
@@ -732,16 +732,16 @@ class Test_TestLoader(TestCase):
class
MyTestCase
(
unittest
.
TestCase
):
class
MyTestCase
(
unittest
.
TestCase
):
def
test
(
self
):
def
test
(
self
):
pass
pass
class
NotAModule
(
object
):
class
NotAModule
(
object
):
test_2
=
MyTestCase
test_2
=
MyTestCase
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
suite
=
loader
.
loadTestsFromNames
([
'test_2'
],
NotAModule
)
suite
=
loader
.
loadTestsFromNames
([
'test_2'
],
NotAModule
)
reference
=
[
unittest
.
TestSuite
([
MyTestCase
(
'test'
)])]
reference
=
[
unittest
.
TestSuite
([
MyTestCase
(
'test'
)])]
self
.
assertEqual
(
list
(
suite
),
reference
)
self
.
assertEqual
(
list
(
suite
),
reference
)
# "The specifier name is a ``dotted name'' that may resolve either to
# "The specifier name is a ``dotted name'' that may resolve either to
# a module, a test case class, a TestSuite instance, a test method
# a module, a test case class, a TestSuite instance, a test method
# within a test case class, or a callable object which returns a
# within a test case class, or a callable object which returns a
...
@@ -753,7 +753,7 @@ class Test_TestLoader(TestCase):
...
@@ -753,7 +753,7 @@ class Test_TestLoader(TestCase):
import
new
import
new
m
=
new
.
module
(
'm'
)
m
=
new
.
module
(
'm'
)
m
.
testcase_1
=
object
()
m
.
testcase_1
=
object
()
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
try
:
try
:
loader
.
loadTestsFromNames
([
'testcase_1'
],
m
)
loader
.
loadTestsFromNames
([
'testcase_1'
],
m
)
...
@@ -771,14 +771,14 @@ class Test_TestLoader(TestCase):
...
@@ -771,14 +771,14 @@ class Test_TestLoader(TestCase):
def
test
(
self
):
def
test
(
self
):
pass
pass
m
.
testcase_1
=
MyTestCase
m
.
testcase_1
=
MyTestCase
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
suite
=
loader
.
loadTestsFromNames
([
'testcase_1'
],
m
)
suite
=
loader
.
loadTestsFromNames
([
'testcase_1'
],
m
)
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
expected
=
loader
.
suiteClass
([
MyTestCase
(
'test'
)])
expected
=
loader
.
suiteClass
([
MyTestCase
(
'test'
)])
self
.
assertEqual
(
list
(
suite
),
[
expected
])
self
.
assertEqual
(
list
(
suite
),
[
expected
])
# "The specifier name is a ``dotted name'' that may resolve ... to
# "The specifier name is a ``dotted name'' that may resolve ... to
# ... a TestSuite instance"
# ... a TestSuite instance"
def
test_loadTestsFromNames__relative_TestSuite
(
self
):
def
test_loadTestsFromNames__relative_TestSuite
(
self
):
...
@@ -788,13 +788,13 @@ class Test_TestLoader(TestCase):
...
@@ -788,13 +788,13 @@ class Test_TestLoader(TestCase):
def
test
(
self
):
def
test
(
self
):
pass
pass
m
.
testsuite
=
unittest
.
TestSuite
([
MyTestCase
(
'test'
)])
m
.
testsuite
=
unittest
.
TestSuite
([
MyTestCase
(
'test'
)])
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
suite
=
loader
.
loadTestsFromNames
([
'testsuite'
],
m
)
suite
=
loader
.
loadTestsFromNames
([
'testsuite'
],
m
)
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
self
.
assertEqual
(
list
(
suite
),
[
m
.
testsuite
])
self
.
assertEqual
(
list
(
suite
),
[
m
.
testsuite
])
# "The specifier name is a ``dotted name'' that may resolve ... to ... a
# "The specifier name is a ``dotted name'' that may resolve ... to ... a
# test method within a test case class"
# test method within a test case class"
def
test_loadTestsFromNames__relative_testmethod
(
self
):
def
test_loadTestsFromNames__relative_testmethod
(
self
):
...
@@ -804,19 +804,19 @@ class Test_TestLoader(TestCase):
...
@@ -804,19 +804,19 @@ class Test_TestLoader(TestCase):
def
test
(
self
):
def
test
(
self
):
pass
pass
m
.
testcase_1
=
MyTestCase
m
.
testcase_1
=
MyTestCase
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
suite
=
loader
.
loadTestsFromNames
([
'testcase_1.test'
],
m
)
suite
=
loader
.
loadTestsFromNames
([
'testcase_1.test'
],
m
)
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
ref_suite
=
unittest
.
TestSuite
([
MyTestCase
(
'test'
)])
ref_suite
=
unittest
.
TestSuite
([
MyTestCase
(
'test'
)])
self
.
assertEqual
(
list
(
suite
),
[
ref_suite
])
self
.
assertEqual
(
list
(
suite
),
[
ref_suite
])
# "The specifier name is a ``dotted name'' that may resolve ... to ... a
# "The specifier name is a ``dotted name'' that may resolve ... to ... a
# test method within a test case class"
# test method within a test case class"
#
#
# Does the method gracefully handle names that initially look like they
# Does the method gracefully handle names that initially look like they
# resolve to "a test method within a test case class" but don't?
# resolve to "a test method within a test case class" but don't?
def
test_loadTestsFromNames__relative_invalid_testmethod
(
self
):
def
test_loadTestsFromNames__relative_invalid_testmethod
(
self
):
import
new
import
new
m
=
new
.
module
(
'm'
)
m
=
new
.
module
(
'm'
)
...
@@ -824,7 +824,7 @@ class Test_TestLoader(TestCase):
...
@@ -824,7 +824,7 @@ class Test_TestLoader(TestCase):
def
test
(
self
):
def
test
(
self
):
pass
pass
m
.
testcase_1
=
MyTestCase
m
.
testcase_1
=
MyTestCase
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
try
:
try
:
loader
.
loadTestsFromNames
([
'testcase_1.testfoo'
],
m
)
loader
.
loadTestsFromNames
([
'testcase_1.testfoo'
],
m
)
...
@@ -843,14 +843,14 @@ class Test_TestLoader(TestCase):
...
@@ -843,14 +843,14 @@ class Test_TestLoader(TestCase):
def
return_TestSuite
():
def
return_TestSuite
():
return
unittest
.
TestSuite
([
testcase_1
,
testcase_2
])
return
unittest
.
TestSuite
([
testcase_1
,
testcase_2
])
m
.
return_TestSuite
=
return_TestSuite
m
.
return_TestSuite
=
return_TestSuite
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
suite
=
loader
.
loadTestsFromNames
([
'return_TestSuite'
],
m
)
suite
=
loader
.
loadTestsFromNames
([
'return_TestSuite'
],
m
)
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
expected
=
unittest
.
TestSuite
([
testcase_1
,
testcase_2
])
expected
=
unittest
.
TestSuite
([
testcase_1
,
testcase_2
])
self
.
assertEqual
(
list
(
suite
),
[
expected
])
self
.
assertEqual
(
list
(
suite
),
[
expected
])
# "The specifier name is a ``dotted name'' that may resolve ... to
# "The specifier name is a ``dotted name'' that may resolve ... to
# ... a callable object which returns a TestCase ... instance"
# ... a callable object which returns a TestCase ... instance"
def
test_loadTestsFromNames__callable__TestCase_instance
(
self
):
def
test_loadTestsFromNames__callable__TestCase_instance
(
self
):
...
@@ -860,39 +860,39 @@ class Test_TestLoader(TestCase):
...
@@ -860,39 +860,39 @@ class Test_TestLoader(TestCase):
def
return_TestCase
():
def
return_TestCase
():
return
testcase_1
return
testcase_1
m
.
return_TestCase
=
return_TestCase
m
.
return_TestCase
=
return_TestCase
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
suite
=
loader
.
loadTestsFromNames
([
'return_TestCase'
],
m
)
suite
=
loader
.
loadTestsFromNames
([
'return_TestCase'
],
m
)
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
ref_suite
=
unittest
.
TestSuite
([
testcase_1
])
ref_suite
=
unittest
.
TestSuite
([
testcase_1
])
self
.
assertEqual
(
list
(
suite
),
[
ref_suite
])
self
.
assertEqual
(
list
(
suite
),
[
ref_suite
])
# "The specifier name is a ``dotted name'' that may resolve ... to
# "The specifier name is a ``dotted name'' that may resolve ... to
# ... a callable object which returns a TestCase or TestSuite instance"
# ... a callable object which returns a TestCase or TestSuite instance"
#
#
# Are staticmethods handled correctly?
# Are staticmethods handled correctly?
def
test_loadTestsFromNames__callable__call_staticmethod
(
self
):
def
test_loadTestsFromNames__callable__call_staticmethod
(
self
):
import
new
import
new
m
=
new
.
module
(
'm'
)
m
=
new
.
module
(
'm'
)
class
Test1
(
unittest
.
TestCase
):
class
Test1
(
unittest
.
TestCase
):
def
test
(
self
):
def
test
(
self
):
pass
pass
testcase_1
=
Test1
(
'test'
)
testcase_1
=
Test1
(
'test'
)
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
@
staticmethod
@
staticmethod
def
foo
():
def
foo
():
return
testcase_1
return
testcase_1
m
.
Foo
=
Foo
m
.
Foo
=
Foo
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
suite
=
loader
.
loadTestsFromNames
([
'Foo.foo'
],
m
)
suite
=
loader
.
loadTestsFromNames
([
'Foo.foo'
],
m
)
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
self
.
failUnless
(
isinstance
(
suite
,
loader
.
suiteClass
))
ref_suite
=
unittest
.
TestSuite
([
testcase_1
])
ref_suite
=
unittest
.
TestSuite
([
testcase_1
])
self
.
assertEqual
(
list
(
suite
),
[
ref_suite
])
self
.
assertEqual
(
list
(
suite
),
[
ref_suite
])
# "The specifier name is a ``dotted name'' that may resolve ... to
# "The specifier name is a ``dotted name'' that may resolve ... to
# ... a callable object which returns a TestCase or TestSuite instance"
# ... a callable object which returns a TestCase or TestSuite instance"
#
#
...
@@ -903,7 +903,7 @@ class Test_TestLoader(TestCase):
...
@@ -903,7 +903,7 @@ class Test_TestLoader(TestCase):
def
return_wrong
():
def
return_wrong
():
return
6
return
6
m
.
return_wrong
=
return_wrong
m
.
return_wrong
=
return_wrong
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
try
:
try
:
suite
=
loader
.
loadTestsFromNames
([
'return_wrong'
],
m
)
suite
=
loader
.
loadTestsFromNames
([
'return_wrong'
],
m
)
...
@@ -911,9 +911,9 @@ class Test_TestLoader(TestCase):
...
@@ -911,9 +911,9 @@ class Test_TestLoader(TestCase):
pass
pass
else
:
else
:
self
.
fail
(
"TestLoader.loadTestsFromNames failed to raise TypeError"
)
self
.
fail
(
"TestLoader.loadTestsFromNames failed to raise TypeError"
)
# "The specifier can refer to modules and packages which have not been
# "The specifier can refer to modules and packages which have not been
# imported; they will be imported as a side-effect"
# imported; they will be imported as a side-effect"
def
test_loadTestsFromNames__module_not_loaded
(
self
):
def
test_loadTestsFromNames__module_not_loaded
(
self
):
# We're going to try to load this module as a side-effect, so it
# We're going to try to load this module as a side-effect, so it
# better not be loaded before we try.
# better not be loaded before we try.
...
@@ -921,11 +921,11 @@ class Test_TestLoader(TestCase):
...
@@ -921,11 +921,11 @@ class Test_TestLoader(TestCase):
# Why pick audioop? Google shows it isn't used very often, so there's
# Why pick audioop? Google shows it isn't used very often, so there's
# a good chance that it won't be imported when this test is run
# a good chance that it won't be imported when this test is run
module_name
=
'audioop'
module_name
=
'audioop'
import
sys
import
sys
if
module_name
in
sys
.
modules
:
if
module_name
in
sys
.
modules
:
del
sys
.
modules
[
module_name
]
del
sys
.
modules
[
module_name
]
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
try
:
try
:
suite
=
loader
.
loadTestsFromNames
([
module_name
])
suite
=
loader
.
loadTestsFromNames
([
module_name
])
...
@@ -937,38 +937,38 @@ class Test_TestLoader(TestCase):
...
@@ -937,38 +937,38 @@ class Test_TestLoader(TestCase):
self
.
failUnless
(
module_name
in
sys
.
modules
)
self
.
failUnless
(
module_name
in
sys
.
modules
)
finally
:
finally
:
del
sys
.
modules
[
module_name
]
del
sys
.
modules
[
module_name
]
################################################################
################################################################
### /Tests for TestLoader.loadTestsFromNames()
### /Tests for TestLoader.loadTestsFromNames()
### Tests for TestLoader.getTestCaseNames()
### Tests for TestLoader.getTestCaseNames()
################################################################
################################################################
# "Return a sorted sequence of method names found within testCaseClass"
# "Return a sorted sequence of method names found within testCaseClass"
#
#
# Test.foobar is defined to make sure getTestCaseNames() respects
# Test.foobar is defined to make sure getTestCaseNames() respects
# loader.testMethodPrefix
# loader.testMethodPrefix
def
test_getTestCaseNames
(
self
):
def
test_getTestCaseNames
(
self
):
class
Test
(
unittest
.
TestCase
):
class
Test
(
unittest
.
TestCase
):
def
test_1
(
self
):
pass
def
test_1
(
self
):
pass
def
test_2
(
self
):
pass
def
test_2
(
self
):
pass
def
foobar
(
self
):
pass
def
foobar
(
self
):
pass
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
self
.
assertEqual
(
loader
.
getTestCaseNames
(
Test
),
[
'test_1'
,
'test_2'
])
self
.
assertEqual
(
loader
.
getTestCaseNames
(
Test
),
[
'test_1'
,
'test_2'
])
# "Return a sorted sequence of method names found within testCaseClass"
# "Return a sorted sequence of method names found within testCaseClass"
#
#
# Does getTestCaseNames() behave appropriately if no tests are found?
# Does getTestCaseNames() behave appropriately if no tests are found?
def
test_getTestCaseNames__no_tests
(
self
):
def
test_getTestCaseNames__no_tests
(
self
):
class
Test
(
unittest
.
TestCase
):
class
Test
(
unittest
.
TestCase
):
def
foobar
(
self
):
pass
def
foobar
(
self
):
pass
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
self
.
assertEqual
(
loader
.
getTestCaseNames
(
Test
),
[])
self
.
assertEqual
(
loader
.
getTestCaseNames
(
Test
),
[])
# "Return a sorted sequence of method names found within testCaseClass"
# "Return a sorted sequence of method names found within testCaseClass"
#
#
# Are not-TestCases handled gracefully?
# Are not-TestCases handled gracefully?
...
@@ -981,42 +981,42 @@ class Test_TestLoader(TestCase):
...
@@ -981,42 +981,42 @@ class Test_TestLoader(TestCase):
class
BadCase
(
int
):
class
BadCase
(
int
):
def
test_foo
(
self
):
def
test_foo
(
self
):
pass
pass
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
names
=
loader
.
getTestCaseNames
(
BadCase
)
names
=
loader
.
getTestCaseNames
(
BadCase
)
self
.
assertEqual
(
names
,
[
'test_foo'
])
self
.
assertEqual
(
names
,
[
'test_foo'
])
# "Return a sorted sequence of method names found within testCaseClass"
# "Return a sorted sequence of method names found within testCaseClass"
#
#
# Make sure inherited names are handled.
# Make sure inherited names are handled.
#
#
# TestP.foobar is defined to make sure getTestCaseNames() respects
# TestP.foobar is defined to make sure getTestCaseNames() respects
# loader.testMethodPrefix
# loader.testMethodPrefix
def
test_getTestCaseNames__inheritance
(
self
):
def
test_getTestCaseNames__inheritance
(
self
):
class
TestP
(
unittest
.
TestCase
):
class
TestP
(
unittest
.
TestCase
):
def
test_1
(
self
):
pass
def
test_1
(
self
):
pass
def
test_2
(
self
):
pass
def
test_2
(
self
):
pass
def
foobar
(
self
):
pass
def
foobar
(
self
):
pass
class
TestC
(
TestP
):
class
TestC
(
TestP
):
def
test_1
(
self
):
pass
def
test_1
(
self
):
pass
def
test_3
(
self
):
pass
def
test_3
(
self
):
pass
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
names
=
[
'test_1'
,
'test_2'
,
'test_3'
]
names
=
[
'test_1'
,
'test_2'
,
'test_3'
]
self
.
assertEqual
(
loader
.
getTestCaseNames
(
TestC
),
names
)
self
.
assertEqual
(
loader
.
getTestCaseNames
(
TestC
),
names
)
################################################################
################################################################
### /Tests for TestLoader.getTestCaseNames()
### /Tests for TestLoader.getTestCaseNames()
### Tests for TestLoader.testMethodPrefix
### Tests for TestLoader.testMethodPrefix
################################################################
################################################################
# "String giving the prefix of method names which will be interpreted as
# "String giving the prefix of method names which will be interpreted as
# test methods"
# test methods"
#
#
# Implicit in the documentation is that testMethodPrefix is respected by
# Implicit in the documentation is that testMethodPrefix is respected by
# all loadTestsFrom* methods.
# all loadTestsFrom* methods.
def
test_testMethodPrefix__loadTestsFromTestCase
(
self
):
def
test_testMethodPrefix__loadTestsFromTestCase
(
self
):
...
@@ -1024,20 +1024,20 @@ class Test_TestLoader(TestCase):
...
@@ -1024,20 +1024,20 @@ class Test_TestLoader(TestCase):
def
test_1
(
self
):
pass
def
test_1
(
self
):
pass
def
test_2
(
self
):
pass
def
test_2
(
self
):
pass
def
foo_bar
(
self
):
pass
def
foo_bar
(
self
):
pass
tests_1
=
unittest
.
TestSuite
([
Foo
(
'foo_bar'
)])
tests_1
=
unittest
.
TestSuite
([
Foo
(
'foo_bar'
)])
tests_2
=
unittest
.
TestSuite
([
Foo
(
'test_1'
),
Foo
(
'test_2'
)])
tests_2
=
unittest
.
TestSuite
([
Foo
(
'test_1'
),
Foo
(
'test_2'
)])
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
loader
.
testMethodPrefix
=
'foo'
loader
.
testMethodPrefix
=
'foo'
self
.
assertEqual
(
loader
.
loadTestsFromTestCase
(
Foo
),
tests_1
)
self
.
assertEqual
(
loader
.
loadTestsFromTestCase
(
Foo
),
tests_1
)
loader
.
testMethodPrefix
=
'test'
loader
.
testMethodPrefix
=
'test'
self
.
assertEqual
(
loader
.
loadTestsFromTestCase
(
Foo
),
tests_2
)
self
.
assertEqual
(
loader
.
loadTestsFromTestCase
(
Foo
),
tests_2
)
# "String giving the prefix of method names which will be interpreted as
# "String giving the prefix of method names which will be interpreted as
# test methods"
# test methods"
#
#
# Implicit in the documentation is that testMethodPrefix is respected by
# Implicit in the documentation is that testMethodPrefix is respected by
# all loadTestsFrom* methods.
# all loadTestsFrom* methods.
def
test_testMethodPrefix__loadTestsFromModule
(
self
):
def
test_testMethodPrefix__loadTestsFromModule
(
self
):
...
@@ -1048,20 +1048,20 @@ class Test_TestLoader(TestCase):
...
@@ -1048,20 +1048,20 @@ class Test_TestLoader(TestCase):
def
test_2
(
self
):
pass
def
test_2
(
self
):
pass
def
foo_bar
(
self
):
pass
def
foo_bar
(
self
):
pass
m
.
Foo
=
Foo
m
.
Foo
=
Foo
tests_1
=
[
unittest
.
TestSuite
([
Foo
(
'foo_bar'
)])]
tests_1
=
[
unittest
.
TestSuite
([
Foo
(
'foo_bar'
)])]
tests_2
=
[
unittest
.
TestSuite
([
Foo
(
'test_1'
),
Foo
(
'test_2'
)])]
tests_2
=
[
unittest
.
TestSuite
([
Foo
(
'test_1'
),
Foo
(
'test_2'
)])]
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
loader
.
testMethodPrefix
=
'foo'
loader
.
testMethodPrefix
=
'foo'
self
.
assertEqual
(
list
(
loader
.
loadTestsFromModule
(
m
)),
tests_1
)
self
.
assertEqual
(
list
(
loader
.
loadTestsFromModule
(
m
)),
tests_1
)
loader
.
testMethodPrefix
=
'test'
loader
.
testMethodPrefix
=
'test'
self
.
assertEqual
(
list
(
loader
.
loadTestsFromModule
(
m
)),
tests_2
)
self
.
assertEqual
(
list
(
loader
.
loadTestsFromModule
(
m
)),
tests_2
)
# "String giving the prefix of method names which will be interpreted as
# "String giving the prefix of method names which will be interpreted as
# test methods"
# test methods"
#
#
# Implicit in the documentation is that testMethodPrefix is respected by
# Implicit in the documentation is that testMethodPrefix is respected by
# all loadTestsFrom* methods.
# all loadTestsFrom* methods.
def
test_testMethodPrefix__loadTestsFromName
(
self
):
def
test_testMethodPrefix__loadTestsFromName
(
self
):
...
@@ -1072,20 +1072,20 @@ class Test_TestLoader(TestCase):
...
@@ -1072,20 +1072,20 @@ class Test_TestLoader(TestCase):
def
test_2
(
self
):
pass
def
test_2
(
self
):
pass
def
foo_bar
(
self
):
pass
def
foo_bar
(
self
):
pass
m
.
Foo
=
Foo
m
.
Foo
=
Foo
tests_1
=
unittest
.
TestSuite
([
Foo
(
'foo_bar'
)])
tests_1
=
unittest
.
TestSuite
([
Foo
(
'foo_bar'
)])
tests_2
=
unittest
.
TestSuite
([
Foo
(
'test_1'
),
Foo
(
'test_2'
)])
tests_2
=
unittest
.
TestSuite
([
Foo
(
'test_1'
),
Foo
(
'test_2'
)])
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
loader
.
testMethodPrefix
=
'foo'
loader
.
testMethodPrefix
=
'foo'
self
.
assertEqual
(
loader
.
loadTestsFromName
(
'Foo'
,
m
),
tests_1
)
self
.
assertEqual
(
loader
.
loadTestsFromName
(
'Foo'
,
m
),
tests_1
)
loader
.
testMethodPrefix
=
'test'
loader
.
testMethodPrefix
=
'test'
self
.
assertEqual
(
loader
.
loadTestsFromName
(
'Foo'
,
m
),
tests_2
)
self
.
assertEqual
(
loader
.
loadTestsFromName
(
'Foo'
,
m
),
tests_2
)
# "String giving the prefix of method names which will be interpreted as
# "String giving the prefix of method names which will be interpreted as
# test methods"
# test methods"
#
#
# Implicit in the documentation is that testMethodPrefix is respected by
# Implicit in the documentation is that testMethodPrefix is respected by
# all loadTestsFrom* methods.
# all loadTestsFrom* methods.
def
test_testMethodPrefix__loadTestsFromNames
(
self
):
def
test_testMethodPrefix__loadTestsFromNames
(
self
):
...
@@ -1096,102 +1096,102 @@ class Test_TestLoader(TestCase):
...
@@ -1096,102 +1096,102 @@ class Test_TestLoader(TestCase):
def
test_2
(
self
):
pass
def
test_2
(
self
):
pass
def
foo_bar
(
self
):
pass
def
foo_bar
(
self
):
pass
m
.
Foo
=
Foo
m
.
Foo
=
Foo
tests_1
=
unittest
.
TestSuite
([
unittest
.
TestSuite
([
Foo
(
'foo_bar'
)])])
tests_1
=
unittest
.
TestSuite
([
unittest
.
TestSuite
([
Foo
(
'foo_bar'
)])])
tests_2
=
unittest
.
TestSuite
([
Foo
(
'test_1'
),
Foo
(
'test_2'
)])
tests_2
=
unittest
.
TestSuite
([
Foo
(
'test_1'
),
Foo
(
'test_2'
)])
tests_2
=
unittest
.
TestSuite
([
tests_2
])
tests_2
=
unittest
.
TestSuite
([
tests_2
])
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
loader
.
testMethodPrefix
=
'foo'
loader
.
testMethodPrefix
=
'foo'
self
.
assertEqual
(
loader
.
loadTestsFromNames
([
'Foo'
],
m
),
tests_1
)
self
.
assertEqual
(
loader
.
loadTestsFromNames
([
'Foo'
],
m
),
tests_1
)
loader
.
testMethodPrefix
=
'test'
loader
.
testMethodPrefix
=
'test'
self
.
assertEqual
(
loader
.
loadTestsFromNames
([
'Foo'
],
m
),
tests_2
)
self
.
assertEqual
(
loader
.
loadTestsFromNames
([
'Foo'
],
m
),
tests_2
)
# "The default value is 'test'"
# "The default value is 'test'"
def
test_testMethodPrefix__default_value
(
self
):
def
test_testMethodPrefix__default_value
(
self
):
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
self
.
failUnless
(
loader
.
testMethodPrefix
==
'test'
)
self
.
failUnless
(
loader
.
testMethodPrefix
==
'test'
)
################################################################
################################################################
### /Tests for TestLoader.testMethodPrefix
### /Tests for TestLoader.testMethodPrefix
### Tests for TestLoader.sortTestMethodsUsing
### Tests for TestLoader.sortTestMethodsUsing
################################################################
################################################################
# "Function to be used to compare method names when sorting them in
# "Function to be used to compare method names when sorting them in
# getTestCaseNames() and all the loadTestsFromX() methods"
# getTestCaseNames() and all the loadTestsFromX() methods"
def
test_sortTestMethodsUsing__loadTestsFromTestCase
(
self
):
def
test_sortTestMethodsUsing__loadTestsFromTestCase
(
self
):
def
reversed_cmp
(
x
,
y
):
def
reversed_cmp
(
x
,
y
):
return
-
cmp
(
x
,
y
)
return
-
cmp
(
x
,
y
)
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
test_1
(
self
):
pass
def
test_1
(
self
):
pass
def
test_2
(
self
):
pass
def
test_2
(
self
):
pass
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
loader
.
sortTestMethodsUsing
=
reversed_cmp
loader
.
sortTestMethodsUsing
=
reversed_cmp
tests
=
loader
.
suiteClass
([
Foo
(
'test_2'
),
Foo
(
'test_1'
)])
tests
=
loader
.
suiteClass
([
Foo
(
'test_2'
),
Foo
(
'test_1'
)])
self
.
assertEqual
(
loader
.
loadTestsFromTestCase
(
Foo
),
tests
)
self
.
assertEqual
(
loader
.
loadTestsFromTestCase
(
Foo
),
tests
)
# "Function to be used to compare method names when sorting them in
# "Function to be used to compare method names when sorting them in
# getTestCaseNames() and all the loadTestsFromX() methods"
# getTestCaseNames() and all the loadTestsFromX() methods"
def
test_sortTestMethodsUsing__loadTestsFromModule
(
self
):
def
test_sortTestMethodsUsing__loadTestsFromModule
(
self
):
def
reversed_cmp
(
x
,
y
):
def
reversed_cmp
(
x
,
y
):
return
-
cmp
(
x
,
y
)
return
-
cmp
(
x
,
y
)
import
new
import
new
m
=
new
.
module
(
'm'
)
m
=
new
.
module
(
'm'
)
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
test_1
(
self
):
pass
def
test_1
(
self
):
pass
def
test_2
(
self
):
pass
def
test_2
(
self
):
pass
m
.
Foo
=
Foo
m
.
Foo
=
Foo
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
loader
.
sortTestMethodsUsing
=
reversed_cmp
loader
.
sortTestMethodsUsing
=
reversed_cmp
tests
=
[
loader
.
suiteClass
([
Foo
(
'test_2'
),
Foo
(
'test_1'
)])]
tests
=
[
loader
.
suiteClass
([
Foo
(
'test_2'
),
Foo
(
'test_1'
)])]
self
.
assertEqual
(
list
(
loader
.
loadTestsFromModule
(
m
)),
tests
)
self
.
assertEqual
(
list
(
loader
.
loadTestsFromModule
(
m
)),
tests
)
# "Function to be used to compare method names when sorting them in
# "Function to be used to compare method names when sorting them in
# getTestCaseNames() and all the loadTestsFromX() methods"
# getTestCaseNames() and all the loadTestsFromX() methods"
def
test_sortTestMethodsUsing__loadTestsFromName
(
self
):
def
test_sortTestMethodsUsing__loadTestsFromName
(
self
):
def
reversed_cmp
(
x
,
y
):
def
reversed_cmp
(
x
,
y
):
return
-
cmp
(
x
,
y
)
return
-
cmp
(
x
,
y
)
import
new
import
new
m
=
new
.
module
(
'm'
)
m
=
new
.
module
(
'm'
)
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
test_1
(
self
):
pass
def
test_1
(
self
):
pass
def
test_2
(
self
):
pass
def
test_2
(
self
):
pass
m
.
Foo
=
Foo
m
.
Foo
=
Foo
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
loader
.
sortTestMethodsUsing
=
reversed_cmp
loader
.
sortTestMethodsUsing
=
reversed_cmp
tests
=
loader
.
suiteClass
([
Foo
(
'test_2'
),
Foo
(
'test_1'
)])
tests
=
loader
.
suiteClass
([
Foo
(
'test_2'
),
Foo
(
'test_1'
)])
self
.
assertEqual
(
loader
.
loadTestsFromName
(
'Foo'
,
m
),
tests
)
self
.
assertEqual
(
loader
.
loadTestsFromName
(
'Foo'
,
m
),
tests
)
# "Function to be used to compare method names when sorting them in
# "Function to be used to compare method names when sorting them in
# getTestCaseNames() and all the loadTestsFromX() methods"
# getTestCaseNames() and all the loadTestsFromX() methods"
def
test_sortTestMethodsUsing__loadTestsFromNames
(
self
):
def
test_sortTestMethodsUsing__loadTestsFromNames
(
self
):
def
reversed_cmp
(
x
,
y
):
def
reversed_cmp
(
x
,
y
):
return
-
cmp
(
x
,
y
)
return
-
cmp
(
x
,
y
)
import
new
import
new
m
=
new
.
module
(
'm'
)
m
=
new
.
module
(
'm'
)
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
test_1
(
self
):
pass
def
test_1
(
self
):
pass
def
test_2
(
self
):
pass
def
test_2
(
self
):
pass
m
.
Foo
=
Foo
m
.
Foo
=
Foo
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
loader
.
sortTestMethodsUsing
=
reversed_cmp
loader
.
sortTestMethodsUsing
=
reversed_cmp
tests
=
[
loader
.
suiteClass
([
Foo
(
'test_2'
),
Foo
(
'test_1'
)])]
tests
=
[
loader
.
suiteClass
([
Foo
(
'test_2'
),
Foo
(
'test_1'
)])]
self
.
assertEqual
(
list
(
loader
.
loadTestsFromNames
([
'Foo'
],
m
)),
tests
)
self
.
assertEqual
(
list
(
loader
.
loadTestsFromNames
([
'Foo'
],
m
)),
tests
)
# "Function to be used to compare method names when sorting them in
# "Function to be used to compare method names when sorting them in
# getTestCaseNames()"
# getTestCaseNames()"
#
#
...
@@ -1199,22 +1199,22 @@ class Test_TestLoader(TestCase):
...
@@ -1199,22 +1199,22 @@ class Test_TestLoader(TestCase):
def
test_sortTestMethodsUsing__getTestCaseNames
(
self
):
def
test_sortTestMethodsUsing__getTestCaseNames
(
self
):
def
reversed_cmp
(
x
,
y
):
def
reversed_cmp
(
x
,
y
):
return
-
cmp
(
x
,
y
)
return
-
cmp
(
x
,
y
)
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
test_1
(
self
):
pass
def
test_1
(
self
):
pass
def
test_2
(
self
):
pass
def
test_2
(
self
):
pass
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
loader
.
sortTestMethodsUsing
=
reversed_cmp
loader
.
sortTestMethodsUsing
=
reversed_cmp
test_names
=
[
'test_2'
,
'test_1'
]
test_names
=
[
'test_2'
,
'test_1'
]
self
.
assertEqual
(
loader
.
getTestCaseNames
(
Foo
),
test_names
)
self
.
assertEqual
(
loader
.
getTestCaseNames
(
Foo
),
test_names
)
# "The default value is the built-in cmp() function"
# "The default value is the built-in cmp() function"
def
test_sortTestMethodsUsing__default_value
(
self
):
def
test_sortTestMethodsUsing__default_value
(
self
):
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
self
.
failUnless
(
loader
.
sortTestMethodsUsing
is
cmp
)
self
.
failUnless
(
loader
.
sortTestMethodsUsing
is
cmp
)
# "it can be set to None to disable the sort."
# "it can be set to None to disable the sort."
#
#
# XXX How is this different from reassigning cmp? Are the tests returned
# XXX How is this different from reassigning cmp? Are the tests returned
...
@@ -1223,34 +1223,34 @@ class Test_TestLoader(TestCase):
...
@@ -1223,34 +1223,34 @@ class Test_TestLoader(TestCase):
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
test_1
(
self
):
pass
def
test_1
(
self
):
pass
def
test_2
(
self
):
pass
def
test_2
(
self
):
pass
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
loader
.
sortTestMethodsUsing
=
None
loader
.
sortTestMethodsUsing
=
None
test_names
=
[
'test_2'
,
'test_1'
]
test_names
=
[
'test_2'
,
'test_1'
]
self
.
assertEqual
(
set
(
loader
.
getTestCaseNames
(
Foo
)),
set
(
test_names
))
self
.
assertEqual
(
set
(
loader
.
getTestCaseNames
(
Foo
)),
set
(
test_names
))
################################################################
################################################################
### /Tests for TestLoader.sortTestMethodsUsing
### /Tests for TestLoader.sortTestMethodsUsing
### Tests for TestLoader.suiteClass
### Tests for TestLoader.suiteClass
################################################################
################################################################
# "Callable object that constructs a test suite from a list of tests."
# "Callable object that constructs a test suite from a list of tests."
def
test_suiteClass__loadTestsFromTestCase
(
self
):
def
test_suiteClass__loadTestsFromTestCase
(
self
):
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
test_1
(
self
):
pass
def
test_1
(
self
):
pass
def
test_2
(
self
):
pass
def
test_2
(
self
):
pass
def
foo_bar
(
self
):
pass
def
foo_bar
(
self
):
pass
tests
=
[
Foo
(
'test_1'
),
Foo
(
'test_2'
)]
tests
=
[
Foo
(
'test_1'
),
Foo
(
'test_2'
)]
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
loader
.
suiteClass
=
list
loader
.
suiteClass
=
list
self
.
assertEqual
(
loader
.
loadTestsFromTestCase
(
Foo
),
tests
)
self
.
assertEqual
(
loader
.
loadTestsFromTestCase
(
Foo
),
tests
)
# It is implicit in the documentation for TestLoader.suiteClass that
# It is implicit in the documentation for TestLoader.suiteClass that
# all TestLoader.loadTestsFrom* methods respect it. Let's make sure
# all TestLoader.loadTestsFrom* methods respect it. Let's make sure
def
test_suiteClass__loadTestsFromModule
(
self
):
def
test_suiteClass__loadTestsFromModule
(
self
):
import
new
import
new
m
=
new
.
module
(
'm'
)
m
=
new
.
module
(
'm'
)
...
@@ -1259,15 +1259,15 @@ class Test_TestLoader(TestCase):
...
@@ -1259,15 +1259,15 @@ class Test_TestLoader(TestCase):
def
test_2
(
self
):
pass
def
test_2
(
self
):
pass
def
foo_bar
(
self
):
pass
def
foo_bar
(
self
):
pass
m
.
Foo
=
Foo
m
.
Foo
=
Foo
tests
=
[[
Foo
(
'test_1'
),
Foo
(
'test_2'
)]]
tests
=
[[
Foo
(
'test_1'
),
Foo
(
'test_2'
)]]
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
loader
.
suiteClass
=
list
loader
.
suiteClass
=
list
self
.
assertEqual
(
loader
.
loadTestsFromModule
(
m
),
tests
)
self
.
assertEqual
(
loader
.
loadTestsFromModule
(
m
),
tests
)
# It is implicit in the documentation for TestLoader.suiteClass that
# It is implicit in the documentation for TestLoader.suiteClass that
# all TestLoader.loadTestsFrom* methods respect it. Let's make sure
# all TestLoader.loadTestsFrom* methods respect it. Let's make sure
def
test_suiteClass__loadTestsFromName
(
self
):
def
test_suiteClass__loadTestsFromName
(
self
):
import
new
import
new
m
=
new
.
module
(
'm'
)
m
=
new
.
module
(
'm'
)
...
@@ -1276,15 +1276,15 @@ class Test_TestLoader(TestCase):
...
@@ -1276,15 +1276,15 @@ class Test_TestLoader(TestCase):
def
test_2
(
self
):
pass
def
test_2
(
self
):
pass
def
foo_bar
(
self
):
pass
def
foo_bar
(
self
):
pass
m
.
Foo
=
Foo
m
.
Foo
=
Foo
tests
=
[
Foo
(
'test_1'
),
Foo
(
'test_2'
)]
tests
=
[
Foo
(
'test_1'
),
Foo
(
'test_2'
)]
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
loader
.
suiteClass
=
list
loader
.
suiteClass
=
list
self
.
assertEqual
(
loader
.
loadTestsFromName
(
'Foo'
,
m
),
tests
)
self
.
assertEqual
(
loader
.
loadTestsFromName
(
'Foo'
,
m
),
tests
)
# It is implicit in the documentation for TestLoader.suiteClass that
# It is implicit in the documentation for TestLoader.suiteClass that
# all TestLoader.loadTestsFrom* methods respect it. Let's make sure
# all TestLoader.loadTestsFrom* methods respect it. Let's make sure
def
test_suiteClass__loadTestsFromNames
(
self
):
def
test_suiteClass__loadTestsFromNames
(
self
):
import
new
import
new
m
=
new
.
module
(
'm'
)
m
=
new
.
module
(
'm'
)
...
@@ -1293,18 +1293,18 @@ class Test_TestLoader(TestCase):
...
@@ -1293,18 +1293,18 @@ class Test_TestLoader(TestCase):
def
test_2
(
self
):
pass
def
test_2
(
self
):
pass
def
foo_bar
(
self
):
pass
def
foo_bar
(
self
):
pass
m
.
Foo
=
Foo
m
.
Foo
=
Foo
tests
=
[[
Foo
(
'test_1'
),
Foo
(
'test_2'
)]]
tests
=
[[
Foo
(
'test_1'
),
Foo
(
'test_2'
)]]
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
loader
.
suiteClass
=
list
loader
.
suiteClass
=
list
self
.
assertEqual
(
loader
.
loadTestsFromNames
([
'Foo'
],
m
),
tests
)
self
.
assertEqual
(
loader
.
loadTestsFromNames
([
'Foo'
],
m
),
tests
)
# "The default value is the TestSuite class"
# "The default value is the TestSuite class"
def
test_suiteClass__default_value
(
self
):
def
test_suiteClass__default_value
(
self
):
loader
=
unittest
.
TestLoader
()
loader
=
unittest
.
TestLoader
()
self
.
failUnless
(
loader
.
suiteClass
is
unittest
.
TestSuite
)
self
.
failUnless
(
loader
.
suiteClass
is
unittest
.
TestSuite
)
################################################################
################################################################
### /Tests for TestLoader.suiteClass
### /Tests for TestLoader.suiteClass
...
@@ -1319,7 +1319,7 @@ class Foo(unittest.TestCase):
...
@@ -1319,7 +1319,7 @@ class Foo(unittest.TestCase):
def
_mk_TestSuite
(
*
names
):
def
_mk_TestSuite
(
*
names
):
return
unittest
.
TestSuite
(
Foo
(
n
)
for
n
in
names
)
return
unittest
.
TestSuite
(
Foo
(
n
)
for
n
in
names
)
################################################################
################################################################
### /Support code for Test_TestSuite
### /Support code for Test_TestSuite
...
@@ -1332,13 +1332,13 @@ class Test_TestSuite(TestCase, TestEquality):
...
@@ -1332,13 +1332,13 @@ class Test_TestSuite(TestCase, TestEquality):
eq_pairs
=
[(
unittest
.
TestSuite
(),
unittest
.
TestSuite
())
eq_pairs
=
[(
unittest
.
TestSuite
(),
unittest
.
TestSuite
())
,(
unittest
.
TestSuite
(),
unittest
.
TestSuite
([]))
,(
unittest
.
TestSuite
(),
unittest
.
TestSuite
([]))
,(
_mk_TestSuite
(
'test_1'
),
_mk_TestSuite
(
'test_1'
))]
,(
_mk_TestSuite
(
'test_1'
),
_mk_TestSuite
(
'test_1'
))]
# Used by TestEquality.test_ne
# Used by TestEquality.test_ne
ne_pairs
=
[(
unittest
.
TestSuite
(),
_mk_TestSuite
(
'test_1'
))
ne_pairs
=
[(
unittest
.
TestSuite
(),
_mk_TestSuite
(
'test_1'
))
,(
unittest
.
TestSuite
([]),
_mk_TestSuite
(
'test_1'
))
,(
unittest
.
TestSuite
([]),
_mk_TestSuite
(
'test_1'
))
,(
_mk_TestSuite
(
'test_1'
,
'test_2'
),
_mk_TestSuite
(
'test_1'
,
'test_3'
))
,(
_mk_TestSuite
(
'test_1'
,
'test_2'
),
_mk_TestSuite
(
'test_1'
,
'test_3'
))
,(
_mk_TestSuite
(
'test_1'
),
_mk_TestSuite
(
'test_2'
))]
,(
_mk_TestSuite
(
'test_1'
),
_mk_TestSuite
(
'test_2'
))]
################################################################
################################################################
### /Set up attributes needed by inherited tests
### /Set up attributes needed by inherited tests
...
@@ -1350,41 +1350,41 @@ class Test_TestSuite(TestCase, TestEquality):
...
@@ -1350,41 +1350,41 @@ class Test_TestSuite(TestCase, TestEquality):
# The tests iterable should be optional
# The tests iterable should be optional
def
test_init__tests_optional
(
self
):
def
test_init__tests_optional
(
self
):
suite
=
unittest
.
TestSuite
()
suite
=
unittest
.
TestSuite
()
self
.
assertEqual
(
suite
.
countTestCases
(),
0
)
self
.
assertEqual
(
suite
.
countTestCases
(),
0
)
# "class TestSuite([tests])"
# "class TestSuite([tests])"
# ...
# ...
# "If tests is given, it must be an iterable of individual test cases
# "If tests is given, it must be an iterable of individual test cases
# or other test suites that will be used to build the suite initially"
# or other test suites that will be used to build the suite initially"
#
#
# TestSuite should deal with empty tests iterables by allowing the
# TestSuite should deal with empty tests iterables by allowing the
# creation of an empty suite
# creation of an empty suite
def
test_init__empty_tests
(
self
):
def
test_init__empty_tests
(
self
):
suite
=
unittest
.
TestSuite
([])
suite
=
unittest
.
TestSuite
([])
self
.
assertEqual
(
suite
.
countTestCases
(),
0
)
self
.
assertEqual
(
suite
.
countTestCases
(),
0
)
# "class TestSuite([tests])"
# "class TestSuite([tests])"
# ...
# ...
# "If tests is given, it must be an iterable of individual test cases
# "If tests is given, it must be an iterable of individual test cases
# or other test suites that will be used to build the suite initially"
# or other test suites that will be used to build the suite initially"
#
#
# TestSuite should allow any iterable to provide tests
# TestSuite should allow any iterable to provide tests
def
test_init__tests_from_any_iterable
(
self
):
def
test_init__tests_from_any_iterable
(
self
):
def
tests
():
def
tests
():
yield
unittest
.
FunctionTestCase
(
lambda
:
None
)
yield
unittest
.
FunctionTestCase
(
lambda
:
None
)
yield
unittest
.
FunctionTestCase
(
lambda
:
None
)
yield
unittest
.
FunctionTestCase
(
lambda
:
None
)
suite_1
=
unittest
.
TestSuite
(
tests
())
suite_1
=
unittest
.
TestSuite
(
tests
())
self
.
assertEqual
(
suite_1
.
countTestCases
(),
2
)
self
.
assertEqual
(
suite_1
.
countTestCases
(),
2
)
suite_2
=
unittest
.
TestSuite
(
suite_1
)
suite_2
=
unittest
.
TestSuite
(
suite_1
)
self
.
assertEqual
(
suite_2
.
countTestCases
(),
2
)
self
.
assertEqual
(
suite_2
.
countTestCases
(),
2
)
suite_3
=
unittest
.
TestSuite
(
set
(
suite_1
))
suite_3
=
unittest
.
TestSuite
(
set
(
suite_1
))
self
.
assertEqual
(
suite_3
.
countTestCases
(),
2
)
self
.
assertEqual
(
suite_3
.
countTestCases
(),
2
)
# "class TestSuite([tests])"
# "class TestSuite([tests])"
# ...
# ...
# "If tests is given, it must be an iterable of individual test cases
# "If tests is given, it must be an iterable of individual test cases
...
@@ -1397,10 +1397,10 @@ class Test_TestSuite(TestCase, TestEquality):
...
@@ -1397,10 +1397,10 @@ class Test_TestSuite(TestCase, TestEquality):
ftc
=
unittest
.
FunctionTestCase
(
lambda
:
None
)
ftc
=
unittest
.
FunctionTestCase
(
lambda
:
None
)
yield
unittest
.
TestSuite
([
ftc
])
yield
unittest
.
TestSuite
([
ftc
])
yield
unittest
.
FunctionTestCase
(
lambda
:
None
)
yield
unittest
.
FunctionTestCase
(
lambda
:
None
)
suite
=
unittest
.
TestSuite
(
tests
())
suite
=
unittest
.
TestSuite
(
tests
())
self
.
assertEqual
(
suite
.
countTestCases
(),
2
)
self
.
assertEqual
(
suite
.
countTestCases
(),
2
)
################################################################
################################################################
### /Tests for TestSuite.__init__
### /Tests for TestSuite.__init__
...
@@ -1409,19 +1409,19 @@ class Test_TestSuite(TestCase, TestEquality):
...
@@ -1409,19 +1409,19 @@ class Test_TestSuite(TestCase, TestEquality):
test1
=
unittest
.
FunctionTestCase
(
lambda
:
None
)
test1
=
unittest
.
FunctionTestCase
(
lambda
:
None
)
test2
=
unittest
.
FunctionTestCase
(
lambda
:
None
)
test2
=
unittest
.
FunctionTestCase
(
lambda
:
None
)
suite
=
unittest
.
TestSuite
((
test1
,
test2
))
suite
=
unittest
.
TestSuite
((
test1
,
test2
))
self
.
assertEqual
(
list
(
suite
),
[
test1
,
test2
])
self
.
assertEqual
(
list
(
suite
),
[
test1
,
test2
])
# "Return the number of tests represented by the this test object.
# "Return the number of tests represented by the this test object.
# ...this method is also implemented by the TestSuite class, which can
# ...this method is also implemented by the TestSuite class, which can
# return larger [greater than 1] values"
# return larger [greater than 1] values"
#
#
# Presumably an empty TestSuite returns 0?
# Presumably an empty TestSuite returns 0?
def
test_countTestCases_zero_simple
(
self
):
def
test_countTestCases_zero_simple
(
self
):
suite
=
unittest
.
TestSuite
()
suite
=
unittest
.
TestSuite
()
self
.
assertEqual
(
suite
.
countTestCases
(),
0
)
self
.
assertEqual
(
suite
.
countTestCases
(),
0
)
# "Return the number of tests represented by the this test object.
# "Return the number of tests represented by the this test object.
# ...this method is also implemented by the TestSuite class, which can
# ...this method is also implemented by the TestSuite class, which can
# return larger [greater than 1] values"
# return larger [greater than 1] values"
...
@@ -1434,9 +1434,9 @@ class Test_TestSuite(TestCase, TestEquality):
...
@@ -1434,9 +1434,9 @@ class Test_TestSuite(TestCase, TestEquality):
pass
pass
suite
=
unittest
.
TestSuite
([
unittest
.
TestSuite
()])
suite
=
unittest
.
TestSuite
([
unittest
.
TestSuite
()])
self
.
assertEqual
(
suite
.
countTestCases
(),
0
)
self
.
assertEqual
(
suite
.
countTestCases
(),
0
)
# "Return the number of tests represented by the this test object.
# "Return the number of tests represented by the this test object.
# ...this method is also implemented by the TestSuite class, which can
# ...this method is also implemented by the TestSuite class, which can
# return larger [greater than 1] values"
# return larger [greater than 1] values"
...
@@ -1444,9 +1444,9 @@ class Test_TestSuite(TestCase, TestEquality):
...
@@ -1444,9 +1444,9 @@ class Test_TestSuite(TestCase, TestEquality):
test1
=
unittest
.
FunctionTestCase
(
lambda
:
None
)
test1
=
unittest
.
FunctionTestCase
(
lambda
:
None
)
test2
=
unittest
.
FunctionTestCase
(
lambda
:
None
)
test2
=
unittest
.
FunctionTestCase
(
lambda
:
None
)
suite
=
unittest
.
TestSuite
((
test1
,
test2
))
suite
=
unittest
.
TestSuite
((
test1
,
test2
))
self
.
assertEqual
(
suite
.
countTestCases
(),
2
)
self
.
assertEqual
(
suite
.
countTestCases
(),
2
)
# "Return the number of tests represented by the this test object.
# "Return the number of tests represented by the this test object.
# ...this method is also implemented by the TestSuite class, which can
# ...this method is also implemented by the TestSuite class, which can
# return larger [greater than 1] values"
# return larger [greater than 1] values"
...
@@ -1456,14 +1456,14 @@ class Test_TestSuite(TestCase, TestEquality):
...
@@ -1456,14 +1456,14 @@ class Test_TestSuite(TestCase, TestEquality):
class
Test1
(
unittest
.
TestCase
):
class
Test1
(
unittest
.
TestCase
):
def
test1
(
self
):
pass
def
test1
(
self
):
pass
def
test2
(
self
):
pass
def
test2
(
self
):
pass
test2
=
unittest
.
FunctionTestCase
(
lambda
:
None
)
test2
=
unittest
.
FunctionTestCase
(
lambda
:
None
)
test3
=
unittest
.
FunctionTestCase
(
lambda
:
None
)
test3
=
unittest
.
FunctionTestCase
(
lambda
:
None
)
child
=
unittest
.
TestSuite
((
Test1
(
'test2'
),
test2
))
child
=
unittest
.
TestSuite
((
Test1
(
'test2'
),
test2
))
parent
=
unittest
.
TestSuite
((
test3
,
child
,
Test1
(
'test1'
)))
parent
=
unittest
.
TestSuite
((
test3
,
child
,
Test1
(
'test1'
)))
self
.
assertEqual
(
parent
.
countTestCases
(),
4
)
self
.
assertEqual
(
parent
.
countTestCases
(),
4
)
# "Run the tests associated with this suite, collecting the result into
# "Run the tests associated with this suite, collecting the result into
# the test result object passed as result."
# the test result object passed as result."
#
#
...
@@ -1471,109 +1471,109 @@ class Test_TestSuite(TestCase, TestEquality):
...
@@ -1471,109 +1471,109 @@ class Test_TestSuite(TestCase, TestEquality):
def
test_run__empty_suite
(
self
):
def
test_run__empty_suite
(
self
):
events
=
[]
events
=
[]
result
=
LoggingResult
(
events
)
result
=
LoggingResult
(
events
)
suite
=
unittest
.
TestSuite
()
suite
=
unittest
.
TestSuite
()
suite
.
run
(
result
)
suite
.
run
(
result
)
self
.
assertEqual
(
events
,
[])
self
.
assertEqual
(
events
,
[])
# "Note that unlike TestCase.run(), TestSuite.run() requires the
# "Note that unlike TestCase.run(), TestSuite.run() requires the
# "result object to be passed in."
# "result object to be passed in."
def
test_run__requires_result
(
self
):
def
test_run__requires_result
(
self
):
suite
=
unittest
.
TestSuite
()
suite
=
unittest
.
TestSuite
()
try
:
try
:
suite
.
run
()
suite
.
run
()
except
TypeError
:
except
TypeError
:
pass
pass
else
:
else
:
self
.
fail
(
"Failed to raise TypeError"
)
self
.
fail
(
"Failed to raise TypeError"
)
# "Run the tests associated with this suite, collecting the result into
# "Run the tests associated with this suite, collecting the result into
# the test result object passed as result."
# the test result object passed as result."
def
test_run
(
self
):
def
test_run
(
self
):
events
=
[]
events
=
[]
result
=
LoggingResult
(
events
)
result
=
LoggingResult
(
events
)
class
LoggingCase
(
unittest
.
TestCase
):
class
LoggingCase
(
unittest
.
TestCase
):
def
run
(
self
,
result
):
def
run
(
self
,
result
):
events
.
append
(
'run %s'
%
self
.
_testMethodName
)
events
.
append
(
'run %s'
%
self
.
_testMethodName
)
def
test1
(
self
):
pass
def
test1
(
self
):
pass
def
test2
(
self
):
pass
def
test2
(
self
):
pass
tests
=
[
LoggingCase
(
'test1'
),
LoggingCase
(
'test2'
)]
tests
=
[
LoggingCase
(
'test1'
),
LoggingCase
(
'test2'
)]
unittest
.
TestSuite
(
tests
).
run
(
result
)
unittest
.
TestSuite
(
tests
).
run
(
result
)
self
.
assertEqual
(
events
,
[
'run test1'
,
'run test2'
])
self
.
assertEqual
(
events
,
[
'run test1'
,
'run test2'
])
# "Add a TestCase ... to the suite"
# "Add a TestCase ... to the suite"
def
test_addTest__TestCase
(
self
):
def
test_addTest__TestCase
(
self
):
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
test
(
self
):
pass
def
test
(
self
):
pass
test
=
Foo
(
'test'
)
test
=
Foo
(
'test'
)
suite
=
unittest
.
TestSuite
()
suite
=
unittest
.
TestSuite
()
suite
.
addTest
(
test
)
suite
.
addTest
(
test
)
self
.
assertEqual
(
suite
.
countTestCases
(),
1
)
self
.
assertEqual
(
suite
.
countTestCases
(),
1
)
self
.
assertEqual
(
list
(
suite
),
[
test
])
self
.
assertEqual
(
list
(
suite
),
[
test
])
# "Add a ... TestSuite to the suite"
# "Add a ... TestSuite to the suite"
def
test_addTest__TestSuite
(
self
):
def
test_addTest__TestSuite
(
self
):
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
test
(
self
):
pass
def
test
(
self
):
pass
suite_2
=
unittest
.
TestSuite
([
Foo
(
'test'
)])
suite_2
=
unittest
.
TestSuite
([
Foo
(
'test'
)])
suite
=
unittest
.
TestSuite
()
suite
=
unittest
.
TestSuite
()
suite
.
addTest
(
suite_2
)
suite
.
addTest
(
suite_2
)
self
.
assertEqual
(
suite
.
countTestCases
(),
1
)
self
.
assertEqual
(
suite
.
countTestCases
(),
1
)
self
.
assertEqual
(
list
(
suite
),
[
suite_2
])
self
.
assertEqual
(
list
(
suite
),
[
suite_2
])
# "Add all the tests from an iterable of TestCase and TestSuite
# "Add all the tests from an iterable of TestCase and TestSuite
# instances to this test suite."
# instances to this test suite."
#
#
# "This is equivalent to iterating over tests, calling addTest() for
# "This is equivalent to iterating over tests, calling addTest() for
# each element"
# each element"
def
test_addTests
(
self
):
def
test_addTests
(
self
):
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
test_1
(
self
):
pass
def
test_1
(
self
):
pass
def
test_2
(
self
):
pass
def
test_2
(
self
):
pass
test_1
=
Foo
(
'test_1'
)
test_1
=
Foo
(
'test_1'
)
test_2
=
Foo
(
'test_2'
)
test_2
=
Foo
(
'test_2'
)
inner_suite
=
unittest
.
TestSuite
([
test_2
])
inner_suite
=
unittest
.
TestSuite
([
test_2
])
def
gen
():
def
gen
():
yield
test_1
yield
test_1
yield
test_2
yield
test_2
yield
inner_suite
yield
inner_suite
suite_1
=
unittest
.
TestSuite
()
suite_1
=
unittest
.
TestSuite
()
suite_1
.
addTests
(
gen
())
suite_1
.
addTests
(
gen
())
self
.
assertEqual
(
list
(
suite_1
),
list
(
gen
()))
self
.
assertEqual
(
list
(
suite_1
),
list
(
gen
()))
# "This is equivalent to iterating over tests, calling addTest() for
# "This is equivalent to iterating over tests, calling addTest() for
# each element"
# each element"
suite_2
=
unittest
.
TestSuite
()
suite_2
=
unittest
.
TestSuite
()
for
t
in
gen
():
for
t
in
gen
():
suite_2
.
addTest
(
t
)
suite_2
.
addTest
(
t
)
self
.
assertEqual
(
suite_1
,
suite_2
)
self
.
assertEqual
(
suite_1
,
suite_2
)
# "Add all the tests from an iterable of TestCase and TestSuite
# "Add all the tests from an iterable of TestCase and TestSuite
# instances to this test suite."
# instances to this test suite."
#
#
# What happens if it doesn't get an iterable?
# What happens if it doesn't get an iterable?
def
test_addTest__noniterable
(
self
):
def
test_addTest__noniterable
(
self
):
suite
=
unittest
.
TestSuite
()
suite
=
unittest
.
TestSuite
()
try
:
try
:
suite
.
addTests
(
5
)
suite
.
addTests
(
5
)
except
TypeError
:
except
TypeError
:
...
@@ -1593,17 +1593,17 @@ class Test_TestSuite(TestCase, TestEquality):
...
@@ -1593,17 +1593,17 @@ class Test_TestSuite(TestCase, TestEquality):
def
test_addTests__string
(
self
):
def
test_addTests__string
(
self
):
suite
=
unittest
.
TestSuite
()
suite
=
unittest
.
TestSuite
()
self
.
assertRaises
(
TypeError
,
suite
.
addTests
,
"foo"
)
self
.
assertRaises
(
TypeError
,
suite
.
addTests
,
"foo"
)
class
Test_FunctionTestCase
(
TestCase
):
class
Test_FunctionTestCase
(
TestCase
):
# "Return the number of tests represented by the this test object. For
# "Return the number of tests represented by the this test object. For
# TestCase instances, this will always be 1"
# TestCase instances, this will always be 1"
def
test_countTestCases
(
self
):
def
test_countTestCases
(
self
):
test
=
unittest
.
FunctionTestCase
(
lambda
:
None
)
test
=
unittest
.
FunctionTestCase
(
lambda
:
None
)
self
.
assertEqual
(
test
.
countTestCases
(),
1
)
self
.
assertEqual
(
test
.
countTestCases
(),
1
)
# "When a setUp() method is defined, the test runner will run that method
# "When a setUp() method is defined, the test runner will run that method
# prior to each test. Likewise, if a tearDown() method is defined, the
# prior to each test. Likewise, if a tearDown() method is defined, the
# test runner will invoke that method after each test. In the example,
# test runner will invoke that method after each test. In the example,
...
@@ -1614,7 +1614,7 @@ class Test_FunctionTestCase(TestCase):
...
@@ -1614,7 +1614,7 @@ class Test_FunctionTestCase(TestCase):
def
test_run_call_order__error_in_setUp
(
self
):
def
test_run_call_order__error_in_setUp
(
self
):
events
=
[]
events
=
[]
result
=
LoggingResult
(
events
)
result
=
LoggingResult
(
events
)
def
setUp
():
def
setUp
():
events
.
append
(
'setUp'
)
events
.
append
(
'setUp'
)
raise
RuntimeError
(
'raised by setUp'
)
raise
RuntimeError
(
'raised by setUp'
)
...
@@ -1624,11 +1624,11 @@ class Test_FunctionTestCase(TestCase):
...
@@ -1624,11 +1624,11 @@ class Test_FunctionTestCase(TestCase):
def
tearDown
():
def
tearDown
():
events
.
append
(
'tearDown'
)
events
.
append
(
'tearDown'
)
expected
=
[
'startTest'
,
'setUp'
,
'addError'
,
'stopTest'
]
expected
=
[
'startTest'
,
'setUp'
,
'addError'
,
'stopTest'
]
unittest
.
FunctionTestCase
(
test
,
setUp
,
tearDown
).
run
(
result
)
unittest
.
FunctionTestCase
(
test
,
setUp
,
tearDown
).
run
(
result
)
self
.
assertEqual
(
events
,
expected
)
self
.
assertEqual
(
events
,
expected
)
# "When a setUp() method is defined, the test runner will run that method
# "When a setUp() method is defined, the test runner will run that method
# prior to each test. Likewise, if a tearDown() method is defined, the
# prior to each test. Likewise, if a tearDown() method is defined, the
# test runner will invoke that method after each test. In the example,
# test runner will invoke that method after each test. In the example,
...
@@ -1639,7 +1639,7 @@ class Test_FunctionTestCase(TestCase):
...
@@ -1639,7 +1639,7 @@ class Test_FunctionTestCase(TestCase):
def
test_run_call_order__error_in_test
(
self
):
def
test_run_call_order__error_in_test
(
self
):
events
=
[]
events
=
[]
result
=
LoggingResult
(
events
)
result
=
LoggingResult
(
events
)
def
setUp
():
def
setUp
():
events
.
append
(
'setUp'
)
events
.
append
(
'setUp'
)
...
@@ -1649,12 +1649,12 @@ class Test_FunctionTestCase(TestCase):
...
@@ -1649,12 +1649,12 @@ class Test_FunctionTestCase(TestCase):
def
tearDown
():
def
tearDown
():
events
.
append
(
'tearDown'
)
events
.
append
(
'tearDown'
)
expected
=
[
'startTest'
,
'setUp'
,
'test'
,
'addError'
,
'tearDown'
,
expected
=
[
'startTest'
,
'setUp'
,
'test'
,
'addError'
,
'tearDown'
,
'stopTest'
]
'stopTest'
]
unittest
.
FunctionTestCase
(
test
,
setUp
,
tearDown
).
run
(
result
)
unittest
.
FunctionTestCase
(
test
,
setUp
,
tearDown
).
run
(
result
)
self
.
assertEqual
(
events
,
expected
)
self
.
assertEqual
(
events
,
expected
)
# "When a setUp() method is defined, the test runner will run that method
# "When a setUp() method is defined, the test runner will run that method
# prior to each test. Likewise, if a tearDown() method is defined, the
# prior to each test. Likewise, if a tearDown() method is defined, the
# test runner will invoke that method after each test. In the example,
# test runner will invoke that method after each test. In the example,
...
@@ -1665,7 +1665,7 @@ class Test_FunctionTestCase(TestCase):
...
@@ -1665,7 +1665,7 @@ class Test_FunctionTestCase(TestCase):
def
test_run_call_order__failure_in_test
(
self
):
def
test_run_call_order__failure_in_test
(
self
):
events
=
[]
events
=
[]
result
=
LoggingResult
(
events
)
result
=
LoggingResult
(
events
)
def
setUp
():
def
setUp
():
events
.
append
(
'setUp'
)
events
.
append
(
'setUp'
)
...
@@ -1675,12 +1675,12 @@ class Test_FunctionTestCase(TestCase):
...
@@ -1675,12 +1675,12 @@ class Test_FunctionTestCase(TestCase):
def
tearDown
():
def
tearDown
():
events
.
append
(
'tearDown'
)
events
.
append
(
'tearDown'
)
expected
=
[
'startTest'
,
'setUp'
,
'test'
,
'addFailure'
,
'tearDown'
,
expected
=
[
'startTest'
,
'setUp'
,
'test'
,
'addFailure'
,
'tearDown'
,
'stopTest'
]
'stopTest'
]
unittest
.
FunctionTestCase
(
test
,
setUp
,
tearDown
).
run
(
result
)
unittest
.
FunctionTestCase
(
test
,
setUp
,
tearDown
).
run
(
result
)
self
.
assertEqual
(
events
,
expected
)
self
.
assertEqual
(
events
,
expected
)
# "When a setUp() method is defined, the test runner will run that method
# "When a setUp() method is defined, the test runner will run that method
# prior to each test. Likewise, if a tearDown() method is defined, the
# prior to each test. Likewise, if a tearDown() method is defined, the
# test runner will invoke that method after each test. In the example,
# test runner will invoke that method after each test. In the example,
...
@@ -1691,7 +1691,7 @@ class Test_FunctionTestCase(TestCase):
...
@@ -1691,7 +1691,7 @@ class Test_FunctionTestCase(TestCase):
def
test_run_call_order__error_in_tearDown
(
self
):
def
test_run_call_order__error_in_tearDown
(
self
):
events
=
[]
events
=
[]
result
=
LoggingResult
(
events
)
result
=
LoggingResult
(
events
)
def
setUp
():
def
setUp
():
events
.
append
(
'setUp'
)
events
.
append
(
'setUp'
)
...
@@ -1701,12 +1701,12 @@ class Test_FunctionTestCase(TestCase):
...
@@ -1701,12 +1701,12 @@ class Test_FunctionTestCase(TestCase):
def
tearDown
():
def
tearDown
():
events
.
append
(
'tearDown'
)
events
.
append
(
'tearDown'
)
raise
RuntimeError
(
'raised by tearDown'
)
raise
RuntimeError
(
'raised by tearDown'
)
expected
=
[
'startTest'
,
'setUp'
,
'test'
,
'tearDown'
,
'addError'
,
expected
=
[
'startTest'
,
'setUp'
,
'test'
,
'tearDown'
,
'addError'
,
'stopTest'
]
'stopTest'
]
unittest
.
FunctionTestCase
(
test
,
setUp
,
tearDown
).
run
(
result
)
unittest
.
FunctionTestCase
(
test
,
setUp
,
tearDown
).
run
(
result
)
self
.
assertEqual
(
events
,
expected
)
self
.
assertEqual
(
events
,
expected
)
# "Return a string identifying the specific test case."
# "Return a string identifying the specific test case."
#
#
# Because of the vague nature of the docs, I'm not going to lock this
# Because of the vague nature of the docs, I'm not going to lock this
...
@@ -1715,26 +1715,26 @@ class Test_FunctionTestCase(TestCase):
...
@@ -1715,26 +1715,26 @@ class Test_FunctionTestCase(TestCase):
# just say "string")
# just say "string")
def
test_id
(
self
):
def
test_id
(
self
):
test
=
unittest
.
FunctionTestCase
(
lambda
:
None
)
test
=
unittest
.
FunctionTestCase
(
lambda
:
None
)
self
.
failUnless
(
isinstance
(
test
.
id
(),
basestring
))
self
.
failUnless
(
isinstance
(
test
.
id
(),
basestring
))
# "Returns a one-line description of the test, or None if no description
# "Returns a one-line description of the test, or None if no description
# has been provided. The default implementation of this method returns
# has been provided. The default implementation of this method returns
# the first line of the test method's docstring, if available, or None."
# the first line of the test method's docstring, if available, or None."
def
test_shortDescription__no_docstring
(
self
):
def
test_shortDescription__no_docstring
(
self
):
test
=
unittest
.
FunctionTestCase
(
lambda
:
None
)
test
=
unittest
.
FunctionTestCase
(
lambda
:
None
)
self
.
assertEqual
(
test
.
shortDescription
(),
None
)
self
.
assertEqual
(
test
.
shortDescription
(),
None
)
# "Returns a one-line description of the test, or None if no description
# "Returns a one-line description of the test, or None if no description
# has been provided. The default implementation of this method returns
# has been provided. The default implementation of this method returns
# the first line of the test method's docstring, if available, or None."
# the first line of the test method's docstring, if available, or None."
def
test_shortDescription__singleline_docstring
(
self
):
def
test_shortDescription__singleline_docstring
(
self
):
desc
=
"this tests foo"
desc
=
"this tests foo"
test
=
unittest
.
FunctionTestCase
(
lambda
:
None
,
description
=
desc
)
test
=
unittest
.
FunctionTestCase
(
lambda
:
None
,
description
=
desc
)
self
.
assertEqual
(
test
.
shortDescription
(),
"this tests foo"
)
self
.
assertEqual
(
test
.
shortDescription
(),
"this tests foo"
)
class
Test_TestResult
(
TestCase
):
class
Test_TestResult
(
TestCase
):
# Note: there are not separate tests for TestResult.wasSuccessful(),
# Note: there are not separate tests for TestResult.wasSuccessful(),
# TestResult.errors, TestResult.failures, TestResult.testsRun or
# TestResult.errors, TestResult.failures, TestResult.testsRun or
...
@@ -1744,75 +1744,75 @@ class Test_TestResult(TestCase):
...
@@ -1744,75 +1744,75 @@ class Test_TestResult(TestCase):
# Accordingly, tests for the aforenamed attributes are incorporated
# Accordingly, tests for the aforenamed attributes are incorporated
# in with the tests for the defining methods.
# in with the tests for the defining methods.
################################################################
################################################################
def
test_init
(
self
):
def
test_init
(
self
):
result
=
unittest
.
TestResult
()
result
=
unittest
.
TestResult
()
self
.
failUnless
(
result
.
wasSuccessful
())
self
.
failUnless
(
result
.
wasSuccessful
())
self
.
assertEqual
(
len
(
result
.
errors
),
0
)
self
.
assertEqual
(
len
(
result
.
errors
),
0
)
self
.
assertEqual
(
len
(
result
.
failures
),
0
)
self
.
assertEqual
(
len
(
result
.
failures
),
0
)
self
.
assertEqual
(
result
.
testsRun
,
0
)
self
.
assertEqual
(
result
.
testsRun
,
0
)
self
.
assertEqual
(
result
.
shouldStop
,
False
)
self
.
assertEqual
(
result
.
shouldStop
,
False
)
# "This method can be called to signal that the set of tests being
# "This method can be called to signal that the set of tests being
# run should be aborted by setting the TestResult's shouldStop
# run should be aborted by setting the TestResult's shouldStop
# attribute to True."
# attribute to True."
def
test_stop
(
self
):
def
test_stop
(
self
):
result
=
unittest
.
TestResult
()
result
=
unittest
.
TestResult
()
result
.
stop
()
result
.
stop
()
self
.
assertEqual
(
result
.
shouldStop
,
True
)
self
.
assertEqual
(
result
.
shouldStop
,
True
)
# "Called when the test case test is about to be run. The default
# "Called when the test case test is about to be run. The default
# implementation simply increments the instance's testsRun counter."
# implementation simply increments the instance's testsRun counter."
def
test_startTest
(
self
):
def
test_startTest
(
self
):
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
test_1
(
self
):
def
test_1
(
self
):
pass
pass
test
=
Foo
(
'test_1'
)
test
=
Foo
(
'test_1'
)
result
=
unittest
.
TestResult
()
result
=
unittest
.
TestResult
()
result
.
startTest
(
test
)
result
.
startTest
(
test
)
self
.
failUnless
(
result
.
wasSuccessful
())
self
.
failUnless
(
result
.
wasSuccessful
())
self
.
assertEqual
(
len
(
result
.
errors
),
0
)
self
.
assertEqual
(
len
(
result
.
errors
),
0
)
self
.
assertEqual
(
len
(
result
.
failures
),
0
)
self
.
assertEqual
(
len
(
result
.
failures
),
0
)
self
.
assertEqual
(
result
.
testsRun
,
1
)
self
.
assertEqual
(
result
.
testsRun
,
1
)
self
.
assertEqual
(
result
.
shouldStop
,
False
)
self
.
assertEqual
(
result
.
shouldStop
,
False
)
result
.
stopTest
(
test
)
result
.
stopTest
(
test
)
# "Called after the test case test has been executed, regardless of
# "Called after the test case test has been executed, regardless of
# the outcome. The default implementation does nothing."
# the outcome. The default implementation does nothing."
def
test_stopTest
(
self
):
def
test_stopTest
(
self
):
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
test_1
(
self
):
def
test_1
(
self
):
pass
pass
test
=
Foo
(
'test_1'
)
test
=
Foo
(
'test_1'
)
result
=
unittest
.
TestResult
()
result
=
unittest
.
TestResult
()
result
.
startTest
(
test
)
result
.
startTest
(
test
)
self
.
failUnless
(
result
.
wasSuccessful
())
self
.
failUnless
(
result
.
wasSuccessful
())
self
.
assertEqual
(
len
(
result
.
errors
),
0
)
self
.
assertEqual
(
len
(
result
.
errors
),
0
)
self
.
assertEqual
(
len
(
result
.
failures
),
0
)
self
.
assertEqual
(
len
(
result
.
failures
),
0
)
self
.
assertEqual
(
result
.
testsRun
,
1
)
self
.
assertEqual
(
result
.
testsRun
,
1
)
self
.
assertEqual
(
result
.
shouldStop
,
False
)
self
.
assertEqual
(
result
.
shouldStop
,
False
)
result
.
stopTest
(
test
)
result
.
stopTest
(
test
)
# Same tests as above; make sure nothing has changed
# Same tests as above; make sure nothing has changed
self
.
failUnless
(
result
.
wasSuccessful
())
self
.
failUnless
(
result
.
wasSuccessful
())
self
.
assertEqual
(
len
(
result
.
errors
),
0
)
self
.
assertEqual
(
len
(
result
.
errors
),
0
)
self
.
assertEqual
(
len
(
result
.
failures
),
0
)
self
.
assertEqual
(
len
(
result
.
failures
),
0
)
self
.
assertEqual
(
result
.
testsRun
,
1
)
self
.
assertEqual
(
result
.
testsRun
,
1
)
self
.
assertEqual
(
result
.
shouldStop
,
False
)
self
.
assertEqual
(
result
.
shouldStop
,
False
)
# "addSuccess(test)"
# "addSuccess(test)"
# ...
# ...
# "Called when the test case test succeeds"
# "Called when the test case test succeeds"
...
@@ -1836,21 +1836,21 @@ class Test_TestResult(TestCase):
...
@@ -1836,21 +1836,21 @@ class Test_TestResult(TestCase):
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
test_1
(
self
):
def
test_1
(
self
):
pass
pass
test
=
Foo
(
'test_1'
)
test
=
Foo
(
'test_1'
)
result
=
unittest
.
TestResult
()
result
=
unittest
.
TestResult
()
result
.
startTest
(
test
)
result
.
startTest
(
test
)
result
.
addSuccess
(
test
)
result
.
addSuccess
(
test
)
result
.
stopTest
(
test
)
result
.
stopTest
(
test
)
self
.
failUnless
(
result
.
wasSuccessful
())
self
.
failUnless
(
result
.
wasSuccessful
())
self
.
assertEqual
(
len
(
result
.
errors
),
0
)
self
.
assertEqual
(
len
(
result
.
errors
),
0
)
self
.
assertEqual
(
len
(
result
.
failures
),
0
)
self
.
assertEqual
(
len
(
result
.
failures
),
0
)
self
.
assertEqual
(
result
.
testsRun
,
1
)
self
.
assertEqual
(
result
.
testsRun
,
1
)
self
.
assertEqual
(
result
.
shouldStop
,
False
)
self
.
assertEqual
(
result
.
shouldStop
,
False
)
# "addFailure(test, err)"
# "addFailure(test, err)"
# ...
# ...
# "Called when the test case test signals a failure. err is a tuple of
# "Called when the test case test signals a failure. err is a tuple of
...
@@ -1873,33 +1873,33 @@ class Test_TestResult(TestCase):
...
@@ -1873,33 +1873,33 @@ class Test_TestResult(TestCase):
# of sys.exc_info() results."
# of sys.exc_info() results."
def
test_addFailure
(
self
):
def
test_addFailure
(
self
):
import
sys
import
sys
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
test_1
(
self
):
def
test_1
(
self
):
pass
pass
test
=
Foo
(
'test_1'
)
test
=
Foo
(
'test_1'
)
try
:
try
:
test
.
fail
(
"foo"
)
test
.
fail
(
"foo"
)
except
:
except
:
exc_info_tuple
=
sys
.
exc_info
()
exc_info_tuple
=
sys
.
exc_info
()
result
=
unittest
.
TestResult
()
result
=
unittest
.
TestResult
()
result
.
startTest
(
test
)
result
.
startTest
(
test
)
result
.
addFailure
(
test
,
exc_info_tuple
)
result
.
addFailure
(
test
,
exc_info_tuple
)
result
.
stopTest
(
test
)
result
.
stopTest
(
test
)
self
.
failIf
(
result
.
wasSuccessful
())
self
.
failIf
(
result
.
wasSuccessful
())
self
.
assertEqual
(
len
(
result
.
errors
),
0
)
self
.
assertEqual
(
len
(
result
.
errors
),
0
)
self
.
assertEqual
(
len
(
result
.
failures
),
1
)
self
.
assertEqual
(
len
(
result
.
failures
),
1
)
self
.
assertEqual
(
result
.
testsRun
,
1
)
self
.
assertEqual
(
result
.
testsRun
,
1
)
self
.
assertEqual
(
result
.
shouldStop
,
False
)
self
.
assertEqual
(
result
.
shouldStop
,
False
)
test_case
,
formatted_exc
=
result
.
failures
[
0
]
test_case
,
formatted_exc
=
result
.
failures
[
0
]
self
.
failUnless
(
test_case
is
test
)
self
.
failUnless
(
test_case
is
test
)
self
.
failUnless
(
isinstance
(
formatted_exc
,
str
))
self
.
failUnless
(
isinstance
(
formatted_exc
,
str
))
# "addError(test, err)"
# "addError(test, err)"
# ...
# ...
# "Called when the test case test raises an unexpected exception err
# "Called when the test case test raises an unexpected exception err
...
@@ -1923,29 +1923,29 @@ class Test_TestResult(TestCase):
...
@@ -1923,29 +1923,29 @@ class Test_TestResult(TestCase):
# of sys.exc_info() results."
# of sys.exc_info() results."
def
test_addError
(
self
):
def
test_addError
(
self
):
import
sys
import
sys
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
test_1
(
self
):
def
test_1
(
self
):
pass
pass
test
=
Foo
(
'test_1'
)
test
=
Foo
(
'test_1'
)
try
:
try
:
raise
TypeError
()
raise
TypeError
()
except
:
except
:
exc_info_tuple
=
sys
.
exc_info
()
exc_info_tuple
=
sys
.
exc_info
()
result
=
unittest
.
TestResult
()
result
=
unittest
.
TestResult
()
result
.
startTest
(
test
)
result
.
startTest
(
test
)
result
.
addError
(
test
,
exc_info_tuple
)
result
.
addError
(
test
,
exc_info_tuple
)
result
.
stopTest
(
test
)
result
.
stopTest
(
test
)
self
.
failIf
(
result
.
wasSuccessful
())
self
.
failIf
(
result
.
wasSuccessful
())
self
.
assertEqual
(
len
(
result
.
errors
),
1
)
self
.
assertEqual
(
len
(
result
.
errors
),
1
)
self
.
assertEqual
(
len
(
result
.
failures
),
0
)
self
.
assertEqual
(
len
(
result
.
failures
),
0
)
self
.
assertEqual
(
result
.
testsRun
,
1
)
self
.
assertEqual
(
result
.
testsRun
,
1
)
self
.
assertEqual
(
result
.
shouldStop
,
False
)
self
.
assertEqual
(
result
.
shouldStop
,
False
)
test_case
,
formatted_exc
=
result
.
errors
[
0
]
test_case
,
formatted_exc
=
result
.
errors
[
0
]
self
.
failUnless
(
test_case
is
test
)
self
.
failUnless
(
test_case
is
test
)
self
.
failUnless
(
isinstance
(
formatted_exc
,
str
))
self
.
failUnless
(
isinstance
(
formatted_exc
,
str
))
...
@@ -1956,10 +1956,10 @@ class Test_TestResult(TestCase):
...
@@ -1956,10 +1956,10 @@ class Test_TestResult(TestCase):
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
runTest
(
self
):
pass
def
runTest
(
self
):
pass
def
test1
(
self
):
pass
def
test1
(
self
):
pass
class
Bar
(
Foo
):
class
Bar
(
Foo
):
def
test2
(
self
):
pass
def
test2
(
self
):
pass
################################################################
################################################################
### /Support code for Test_TestCase
### /Support code for Test_TestCase
...
@@ -1970,15 +1970,15 @@ class Test_TestCase(TestCase, TestEquality, TestHashing):
...
@@ -1970,15 +1970,15 @@ class Test_TestCase(TestCase, TestEquality, TestHashing):
# Used by TestHashing.test_hash and TestEquality.test_eq
# Used by TestHashing.test_hash and TestEquality.test_eq
eq_pairs
=
[(
Foo
(
'test1'
),
Foo
(
'test1'
))]
eq_pairs
=
[(
Foo
(
'test1'
),
Foo
(
'test1'
))]
# Used by TestEquality.test_ne
# Used by TestEquality.test_ne
ne_pairs
=
[(
Foo
(
'test1'
),
Foo
(
'runTest'
))
ne_pairs
=
[(
Foo
(
'test1'
),
Foo
(
'runTest'
))
,(
Foo
(
'test1'
),
Bar
(
'test1'
))
,(
Foo
(
'test1'
),
Bar
(
'test1'
))
,(
Foo
(
'test1'
),
Bar
(
'test2'
))]
,(
Foo
(
'test1'
),
Bar
(
'test2'
))]
################################################################
################################################################
### /Set up attributes used by inherited tests
### /Set up attributes used by inherited tests
# "class TestCase([methodName])"
# "class TestCase([methodName])"
# ...
# ...
...
@@ -1993,44 +1993,44 @@ class Test_TestCase(TestCase, TestEquality, TestHashing):
...
@@ -1993,44 +1993,44 @@ class Test_TestCase(TestCase, TestEquality, TestHashing):
class
Test
(
unittest
.
TestCase
):
class
Test
(
unittest
.
TestCase
):
def
runTest
(
self
):
raise
MyException
()
def
runTest
(
self
):
raise
MyException
()
def
test
(
self
):
pass
def
test
(
self
):
pass
self
.
assertEqual
(
Test
().
id
()[
-
13
:],
'.Test.runTest'
)
self
.
assertEqual
(
Test
().
id
()[
-
13
:],
'.Test.runTest'
)
# "class TestCase([methodName])"
# "class TestCase([methodName])"
# ...
# ...
# "Each instance of TestCase will run a single test method: the
# "Each instance of TestCase will run a single test method: the
# method named methodName."
# method named methodName."
def
test_init__test_name__valid
(
self
):
def
test_init__test_name__valid
(
self
):
class
Test
(
unittest
.
TestCase
):
class
Test
(
unittest
.
TestCase
):
def
runTest
(
self
):
raise
MyException
()
def
runTest
(
self
):
raise
MyException
()
def
test
(
self
):
pass
def
test
(
self
):
pass
self
.
assertEqual
(
Test
(
'test'
).
id
()[
-
10
:],
'.Test.test'
)
self
.
assertEqual
(
Test
(
'test'
).
id
()[
-
10
:],
'.Test.test'
)
# "class TestCase([methodName])"
# "class TestCase([methodName])"
# ...
# ...
# "Each instance of TestCase will run a single test method: the
# "Each instance of TestCase will run a single test method: the
# method named methodName."
# method named methodName."
def
test_init__test_name__invalid
(
self
):
def
test_init__test_name__invalid
(
self
):
class
Test
(
unittest
.
TestCase
):
class
Test
(
unittest
.
TestCase
):
def
runTest
(
self
):
raise
MyException
()
def
runTest
(
self
):
raise
MyException
()
def
test
(
self
):
pass
def
test
(
self
):
pass
try
:
try
:
Test
(
'testfoo'
)
Test
(
'testfoo'
)
except
ValueError
:
except
ValueError
:
pass
pass
else
:
else
:
self
.
fail
(
"Failed to raise ValueError"
)
self
.
fail
(
"Failed to raise ValueError"
)
# "Return the number of tests represented by the this test object. For
# "Return the number of tests represented by the this test object. For
# TestCase instances, this will always be 1"
# TestCase instances, this will always be 1"
def
test_countTestCases
(
self
):
def
test_countTestCases
(
self
):
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
test
(
self
):
pass
def
test
(
self
):
pass
self
.
assertEqual
(
Foo
(
'test'
).
countTestCases
(),
1
)
self
.
assertEqual
(
Foo
(
'test'
).
countTestCases
(),
1
)
# "Return the default type of test result object to be used to run this
# "Return the default type of test result object to be used to run this
# test. For TestCase instances, this will always be
# test. For TestCase instances, this will always be
# unittest.TestResult; subclasses of TestCase should
# unittest.TestResult; subclasses of TestCase should
...
@@ -2039,7 +2039,7 @@ class Test_TestCase(TestCase, TestEquality, TestHashing):
...
@@ -2039,7 +2039,7 @@ class Test_TestCase(TestCase, TestEquality, TestHashing):
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
runTest
(
self
):
def
runTest
(
self
):
pass
pass
result
=
Foo
().
defaultTestResult
()
result
=
Foo
().
defaultTestResult
()
self
.
assertEqual
(
type
(
result
),
unittest
.
TestResult
)
self
.
assertEqual
(
type
(
result
),
unittest
.
TestResult
)
...
@@ -2053,22 +2053,22 @@ class Test_TestCase(TestCase, TestEquality, TestHashing):
...
@@ -2053,22 +2053,22 @@ class Test_TestCase(TestCase, TestEquality, TestHashing):
def
test_run_call_order__error_in_setUp
(
self
):
def
test_run_call_order__error_in_setUp
(
self
):
events
=
[]
events
=
[]
result
=
LoggingResult
(
events
)
result
=
LoggingResult
(
events
)
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
setUp
(
self
):
def
setUp
(
self
):
events
.
append
(
'setUp'
)
events
.
append
(
'setUp'
)
raise
RuntimeError
(
'raised by Foo.setUp'
)
raise
RuntimeError
(
'raised by Foo.setUp'
)
def
test
(
self
):
def
test
(
self
):
events
.
append
(
'test'
)
events
.
append
(
'test'
)
def
tearDown
(
self
):
def
tearDown
(
self
):
events
.
append
(
'tearDown'
)
events
.
append
(
'tearDown'
)
Foo
(
'test'
).
run
(
result
)
Foo
(
'test'
).
run
(
result
)
expected
=
[
'startTest'
,
'setUp'
,
'addError'
,
'stopTest'
]
expected
=
[
'startTest'
,
'setUp'
,
'addError'
,
'stopTest'
]
self
.
assertEqual
(
events
,
expected
)
self
.
assertEqual
(
events
,
expected
)
# "When a setUp() method is defined, the test runner will run that method
# "When a setUp() method is defined, the test runner will run that method
# prior to each test. Likewise, if a tearDown() method is defined, the
# prior to each test. Likewise, if a tearDown() method is defined, the
# test runner will invoke that method after each test. In the example,
# test runner will invoke that method after each test. In the example,
...
@@ -2079,23 +2079,23 @@ class Test_TestCase(TestCase, TestEquality, TestHashing):
...
@@ -2079,23 +2079,23 @@ class Test_TestCase(TestCase, TestEquality, TestHashing):
def
test_run_call_order__error_in_test
(
self
):
def
test_run_call_order__error_in_test
(
self
):
events
=
[]
events
=
[]
result
=
LoggingResult
(
events
)
result
=
LoggingResult
(
events
)
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
setUp
(
self
):
def
setUp
(
self
):
events
.
append
(
'setUp'
)
events
.
append
(
'setUp'
)
def
test
(
self
):
def
test
(
self
):
events
.
append
(
'test'
)
events
.
append
(
'test'
)
raise
RuntimeError
(
'raised by Foo.test'
)
raise
RuntimeError
(
'raised by Foo.test'
)
def
tearDown
(
self
):
def
tearDown
(
self
):
events
.
append
(
'tearDown'
)
events
.
append
(
'tearDown'
)
expected
=
[
'startTest'
,
'setUp'
,
'test'
,
'addError'
,
'tearDown'
,
expected
=
[
'startTest'
,
'setUp'
,
'test'
,
'addError'
,
'tearDown'
,
'stopTest'
]
'stopTest'
]
Foo
(
'test'
).
run
(
result
)
Foo
(
'test'
).
run
(
result
)
self
.
assertEqual
(
events
,
expected
)
self
.
assertEqual
(
events
,
expected
)
# "When a setUp() method is defined, the test runner will run that method
# "When a setUp() method is defined, the test runner will run that method
# prior to each test. Likewise, if a tearDown() method is defined, the
# prior to each test. Likewise, if a tearDown() method is defined, the
# test runner will invoke that method after each test. In the example,
# test runner will invoke that method after each test. In the example,
...
@@ -2106,23 +2106,23 @@ class Test_TestCase(TestCase, TestEquality, TestHashing):
...
@@ -2106,23 +2106,23 @@ class Test_TestCase(TestCase, TestEquality, TestHashing):
def
test_run_call_order__failure_in_test
(
self
):
def
test_run_call_order__failure_in_test
(
self
):
events
=
[]
events
=
[]
result
=
LoggingResult
(
events
)
result
=
LoggingResult
(
events
)
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
setUp
(
self
):
def
setUp
(
self
):
events
.
append
(
'setUp'
)
events
.
append
(
'setUp'
)
def
test
(
self
):
def
test
(
self
):
events
.
append
(
'test'
)
events
.
append
(
'test'
)
self
.
fail
(
'raised by Foo.test'
)
self
.
fail
(
'raised by Foo.test'
)
def
tearDown
(
self
):
def
tearDown
(
self
):
events
.
append
(
'tearDown'
)
events
.
append
(
'tearDown'
)
expected
=
[
'startTest'
,
'setUp'
,
'test'
,
'addFailure'
,
'tearDown'
,
expected
=
[
'startTest'
,
'setUp'
,
'test'
,
'addFailure'
,
'tearDown'
,
'stopTest'
]
'stopTest'
]
Foo
(
'test'
).
run
(
result
)
Foo
(
'test'
).
run
(
result
)
self
.
assertEqual
(
events
,
expected
)
self
.
assertEqual
(
events
,
expected
)
# "When a setUp() method is defined, the test runner will run that method
# "When a setUp() method is defined, the test runner will run that method
# prior to each test. Likewise, if a tearDown() method is defined, the
# prior to each test. Likewise, if a tearDown() method is defined, the
# test runner will invoke that method after each test. In the example,
# test runner will invoke that method after each test. In the example,
...
@@ -2133,23 +2133,23 @@ class Test_TestCase(TestCase, TestEquality, TestHashing):
...
@@ -2133,23 +2133,23 @@ class Test_TestCase(TestCase, TestEquality, TestHashing):
def
test_run_call_order__error_in_tearDown
(
self
):
def
test_run_call_order__error_in_tearDown
(
self
):
events
=
[]
events
=
[]
result
=
LoggingResult
(
events
)
result
=
LoggingResult
(
events
)
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
setUp
(
self
):
def
setUp
(
self
):
events
.
append
(
'setUp'
)
events
.
append
(
'setUp'
)
def
test
(
self
):
def
test
(
self
):
events
.
append
(
'test'
)
events
.
append
(
'test'
)
def
tearDown
(
self
):
def
tearDown
(
self
):
events
.
append
(
'tearDown'
)
events
.
append
(
'tearDown'
)
raise
RuntimeError
(
'raised by Foo.tearDown'
)
raise
RuntimeError
(
'raised by Foo.tearDown'
)
Foo
(
'test'
).
run
(
result
)
Foo
(
'test'
).
run
(
result
)
expected
=
[
'startTest'
,
'setUp'
,
'test'
,
'tearDown'
,
'addError'
,
expected
=
[
'startTest'
,
'setUp'
,
'test'
,
'tearDown'
,
'addError'
,
'stopTest'
]
'stopTest'
]
self
.
assertEqual
(
events
,
expected
)
self
.
assertEqual
(
events
,
expected
)
# "This class attribute gives the exception raised by the test() method.
# "This class attribute gives the exception raised by the test() method.
# If a test framework needs to use a specialized exception, possibly to
# If a test framework needs to use a specialized exception, possibly to
# carry additional information, it must subclass this exception in
# carry additional information, it must subclass this exception in
...
@@ -2159,9 +2159,9 @@ class Test_TestCase(TestCase, TestEquality, TestHashing):
...
@@ -2159,9 +2159,9 @@ class Test_TestCase(TestCase, TestEquality, TestHashing):
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
test
(
self
):
def
test
(
self
):
pass
pass
self
.
failUnless
(
Foo
(
'test'
).
failureException
is
AssertionError
)
self
.
failUnless
(
Foo
(
'test'
).
failureException
is
AssertionError
)
# "This class attribute gives the exception raised by the test() method.
# "This class attribute gives the exception raised by the test() method.
# If a test framework needs to use a specialized exception, possibly to
# If a test framework needs to use a specialized exception, possibly to
# carry additional information, it must subclass this exception in
# carry additional information, it must subclass this exception in
...
@@ -2171,20 +2171,20 @@ class Test_TestCase(TestCase, TestEquality, TestHashing):
...
@@ -2171,20 +2171,20 @@ class Test_TestCase(TestCase, TestEquality, TestHashing):
def
test_failureException__subclassing__explicit_raise
(
self
):
def
test_failureException__subclassing__explicit_raise
(
self
):
events
=
[]
events
=
[]
result
=
LoggingResult
(
events
)
result
=
LoggingResult
(
events
)
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
test
(
self
):
def
test
(
self
):
raise
RuntimeError
()
raise
RuntimeError
()
failureException
=
RuntimeError
failureException
=
RuntimeError
self
.
failUnless
(
Foo
(
'test'
).
failureException
is
RuntimeError
)
self
.
failUnless
(
Foo
(
'test'
).
failureException
is
RuntimeError
)
Foo
(
'test'
).
run
(
result
)
Foo
(
'test'
).
run
(
result
)
expected
=
[
'startTest'
,
'addFailure'
,
'stopTest'
]
expected
=
[
'startTest'
,
'addFailure'
,
'stopTest'
]
self
.
assertEqual
(
events
,
expected
)
self
.
assertEqual
(
events
,
expected
)
# "This class attribute gives the exception raised by the test() method.
# "This class attribute gives the exception raised by the test() method.
# If a test framework needs to use a specialized exception, possibly to
# If a test framework needs to use a specialized exception, possibly to
# carry additional information, it must subclass this exception in
# carry additional information, it must subclass this exception in
...
@@ -2194,38 +2194,38 @@ class Test_TestCase(TestCase, TestEquality, TestHashing):
...
@@ -2194,38 +2194,38 @@ class Test_TestCase(TestCase, TestEquality, TestHashing):
def
test_failureException__subclassing__implicit_raise
(
self
):
def
test_failureException__subclassing__implicit_raise
(
self
):
events
=
[]
events
=
[]
result
=
LoggingResult
(
events
)
result
=
LoggingResult
(
events
)
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
test
(
self
):
def
test
(
self
):
self
.
fail
(
"foo"
)
self
.
fail
(
"foo"
)
failureException
=
RuntimeError
failureException
=
RuntimeError
self
.
failUnless
(
Foo
(
'test'
).
failureException
is
RuntimeError
)
self
.
failUnless
(
Foo
(
'test'
).
failureException
is
RuntimeError
)
Foo
(
'test'
).
run
(
result
)
Foo
(
'test'
).
run
(
result
)
expected
=
[
'startTest'
,
'addFailure'
,
'stopTest'
]
expected
=
[
'startTest'
,
'addFailure'
,
'stopTest'
]
self
.
assertEqual
(
events
,
expected
)
self
.
assertEqual
(
events
,
expected
)
# "The default implementation does nothing."
# "The default implementation does nothing."
def
test_setUp
(
self
):
def
test_setUp
(
self
):
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
runTest
(
self
):
def
runTest
(
self
):
pass
pass
# ... and nothing should happen
# ... and nothing should happen
Foo
().
setUp
()
Foo
().
setUp
()
# "The default implementation does nothing."
# "The default implementation does nothing."
def
test_tearDown
(
self
):
def
test_tearDown
(
self
):
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
runTest
(
self
):
def
runTest
(
self
):
pass
pass
# ... and nothing should happen
# ... and nothing should happen
Foo
().
tearDown
()
Foo
().
tearDown
()
# "Return a string identifying the specific test case."
# "Return a string identifying the specific test case."
#
#
# Because of the vague nature of the docs, I'm not going to lock this
# Because of the vague nature of the docs, I'm not going to lock this
...
@@ -2236,57 +2236,57 @@ class Test_TestCase(TestCase, TestEquality, TestHashing):
...
@@ -2236,57 +2236,57 @@ class Test_TestCase(TestCase, TestEquality, TestHashing):
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
runTest
(
self
):
def
runTest
(
self
):
pass
pass
self
.
failUnless
(
isinstance
(
Foo
().
id
(),
basestring
))
self
.
failUnless
(
isinstance
(
Foo
().
id
(),
basestring
))
# "Returns a one-line description of the test, or None if no description
# "Returns a one-line description of the test, or None if no description
# has been provided. The default implementation of this method returns
# has been provided. The default implementation of this method returns
# the first line of the test method's docstring, if available, or None."
# the first line of the test method's docstring, if available, or None."
def
test_shortDescription__no_docstring
(
self
):
def
test_shortDescription__no_docstring
(
self
):
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
runTest
(
self
):
def
runTest
(
self
):
pass
pass
self
.
assertEqual
(
Foo
().
shortDescription
(),
None
)
self
.
assertEqual
(
Foo
().
shortDescription
(),
None
)
# "Returns a one-line description of the test, or None if no description
# "Returns a one-line description of the test, or None if no description
# has been provided. The default implementation of this method returns
# has been provided. The default implementation of this method returns
# the first line of the test method's docstring, if available, or None."
# the first line of the test method's docstring, if available, or None."
def
test_shortDescription__singleline_docstring
(
self
):
def
test_shortDescription__singleline_docstring
(
self
):
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
runTest
(
self
):
def
runTest
(
self
):
"this tests foo"
"this tests foo"
pass
pass
self
.
assertEqual
(
Foo
().
shortDescription
(),
"this tests foo"
)
self
.
assertEqual
(
Foo
().
shortDescription
(),
"this tests foo"
)
# "Returns a one-line description of the test, or None if no description
# "Returns a one-line description of the test, or None if no description
# has been provided. The default implementation of this method returns
# has been provided. The default implementation of this method returns
# the first line of the test method's docstring, if available, or None."
# the first line of the test method's docstring, if available, or None."
def
test_shortDescription__multiline_docstring
(
self
):
def
test_shortDescription__multiline_docstring
(
self
):
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
runTest
(
self
):
def
runTest
(
self
):
"""this tests foo
"""this tests foo
blah, bar and baz are also tested"""
blah, bar and baz are also tested"""
pass
pass
self
.
assertEqual
(
Foo
().
shortDescription
(),
"this tests foo"
)
self
.
assertEqual
(
Foo
().
shortDescription
(),
"this tests foo"
)
# "If result is omitted or None, a temporary result object is created
# "If result is omitted or None, a temporary result object is created
# and used, but is not made available to the caller"
# and used, but is not made available to the caller"
def
test_run__uses_defaultTestResult
(
self
):
def
test_run__uses_defaultTestResult
(
self
):
events
=
[]
events
=
[]
class
Foo
(
unittest
.
TestCase
):
class
Foo
(
unittest
.
TestCase
):
def
test
(
self
):
def
test
(
self
):
events
.
append
(
'test'
)
events
.
append
(
'test'
)
def
defaultTestResult
(
self
):
def
defaultTestResult
(
self
):
return
LoggingResult
(
events
)
return
LoggingResult
(
events
)
# Make run() find a result object on its own
# Make run() find a result object on its own
Foo
(
'test'
).
run
()
Foo
(
'test'
).
run
()
expected
=
[
'startTest'
,
'test'
,
'stopTest'
]
expected
=
[
'startTest'
,
'test'
,
'stopTest'
]
self
.
assertEqual
(
events
,
expected
)
self
.
assertEqual
(
events
,
expected
)
...
@@ -2299,4 +2299,4 @@ def test_main():
...
@@ -2299,4 +2299,4 @@ def test_main():
Test_TestSuite
,
Test_TestResult
,
Test_FunctionTestCase
)
Test_TestSuite
,
Test_TestResult
,
Test_FunctionTestCase
)
if
__name__
==
"__main__"
:
if
__name__
==
"__main__"
:
test_main
()
test_main
()
Lib/test/test_zipfile.py
View file @
ea5962f8
...
@@ -117,12 +117,12 @@ class TestsWithSourceFile(unittest.TestCase):
...
@@ -117,12 +117,12 @@ class TestsWithSourceFile(unittest.TestCase):
if
not
read_data
:
if
not
read_data
:
break
break
zipdata2
.
append
(
read_data
)
zipdata2
.
append
(
read_data
)
self
.
assertEqual
(
''
.
join
(
zipdata1
),
self
.
data
)
self
.
assertEqual
(
''
.
join
(
zipdata1
),
self
.
data
)
self
.
assertEqual
(
''
.
join
(
zipdata2
),
self
.
data
)
self
.
assertEqual
(
''
.
join
(
zipdata2
),
self
.
data
)
zipfp
.
close
()
zipfp
.
close
()
def
testOpenStored
(
self
):
def
testOpenStored
(
self
):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
self
.
zipOpenTest
(
f
,
zipfile
.
ZIP_STORED
)
self
.
zipOpenTest
(
f
,
zipfile
.
ZIP_STORED
)
...
@@ -141,11 +141,11 @@ class TestsWithSourceFile(unittest.TestCase):
...
@@ -141,11 +141,11 @@ class TestsWithSourceFile(unittest.TestCase):
self
.
assertEqual
(
''
.
join
(
zipdata1
),
self
.
data
)
self
.
assertEqual
(
''
.
join
(
zipdata1
),
self
.
data
)
zipfp
.
close
()
zipfp
.
close
()
def
testRandomOpenStored
(
self
):
def
testRandomOpenStored
(
self
):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
self
.
zipRandomOpenTest
(
f
,
zipfile
.
ZIP_STORED
)
self
.
zipRandomOpenTest
(
f
,
zipfile
.
ZIP_STORED
)
def
zipReadlineTest
(
self
,
f
,
compression
):
def
zipReadlineTest
(
self
,
f
,
compression
):
self
.
makeTestArchive
(
f
,
compression
)
self
.
makeTestArchive
(
f
,
compression
)
...
@@ -178,16 +178,16 @@ class TestsWithSourceFile(unittest.TestCase):
...
@@ -178,16 +178,16 @@ class TestsWithSourceFile(unittest.TestCase):
self
.
assertEqual
(
zipline
,
line
+
'
\
n
'
)
self
.
assertEqual
(
zipline
,
line
+
'
\
n
'
)
zipfp
.
close
()
zipfp
.
close
()
def
testReadlineStored
(
self
):
def
testReadlineStored
(
self
):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
self
.
zipReadlineTest
(
f
,
zipfile
.
ZIP_STORED
)
self
.
zipReadlineTest
(
f
,
zipfile
.
ZIP_STORED
)
def
testReadlinesStored
(
self
):
def
testReadlinesStored
(
self
):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
self
.
zipReadlinesTest
(
f
,
zipfile
.
ZIP_STORED
)
self
.
zipReadlinesTest
(
f
,
zipfile
.
ZIP_STORED
)
def
testIterlinesStored
(
self
):
def
testIterlinesStored
(
self
):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
self
.
zipIterlinesTest
(
f
,
zipfile
.
ZIP_STORED
)
self
.
zipIterlinesTest
(
f
,
zipfile
.
ZIP_STORED
)
...
@@ -204,18 +204,18 @@ class TestsWithSourceFile(unittest.TestCase):
...
@@ -204,18 +204,18 @@ class TestsWithSourceFile(unittest.TestCase):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
self
.
zipRandomOpenTest
(
f
,
zipfile
.
ZIP_DEFLATED
)
self
.
zipRandomOpenTest
(
f
,
zipfile
.
ZIP_DEFLATED
)
def
testReadlineDeflated
(
self
):
def
testReadlineDeflated
(
self
):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
self
.
zipReadlineTest
(
f
,
zipfile
.
ZIP_DEFLATED
)
self
.
zipReadlineTest
(
f
,
zipfile
.
ZIP_DEFLATED
)
def
testReadlinesDeflated
(
self
):
def
testReadlinesDeflated
(
self
):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
self
.
zipReadlinesTest
(
f
,
zipfile
.
ZIP_DEFLATED
)
self
.
zipReadlinesTest
(
f
,
zipfile
.
ZIP_DEFLATED
)
def
testIterlinesDeflated
(
self
):
def
testIterlinesDeflated
(
self
):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
self
.
zipIterlinesTest
(
f
,
zipfile
.
ZIP_DEFLATED
)
self
.
zipIterlinesTest
(
f
,
zipfile
.
ZIP_DEFLATED
)
def
testLowCompression
(
self
):
def
testLowCompression
(
self
):
# Checks for cases where compressed data is larger than original
# Checks for cases where compressed data is larger than original
# Create the ZIP archive
# Create the ZIP archive
...
@@ -437,10 +437,10 @@ class OtherTests(unittest.TestCase):
...
@@ -437,10 +437,10 @@ class OtherTests(unittest.TestCase):
def
testCreateNonExistentFileForAppend
(
self
):
def
testCreateNonExistentFileForAppend
(
self
):
if
os
.
path
.
exists
(
TESTFN
):
if
os
.
path
.
exists
(
TESTFN
):
os
.
unlink
(
TESTFN
)
os
.
unlink
(
TESTFN
)
filename
=
'testfile.txt'
filename
=
'testfile.txt'
content
=
'hello, world. this is some content.'
content
=
'hello, world. this is some content.'
try
:
try
:
zf
=
zipfile
.
ZipFile
(
TESTFN
,
'a'
)
zf
=
zipfile
.
ZipFile
(
TESTFN
,
'a'
)
zf
.
writestr
(
filename
,
content
)
zf
.
writestr
(
filename
,
content
)
...
@@ -453,9 +453,9 @@ class OtherTests(unittest.TestCase):
...
@@ -453,9 +453,9 @@ class OtherTests(unittest.TestCase):
zf
=
zipfile
.
ZipFile
(
TESTFN
,
'r'
)
zf
=
zipfile
.
ZipFile
(
TESTFN
,
'r'
)
self
.
assertEqual
(
zf
.
read
(
filename
),
content
)
self
.
assertEqual
(
zf
.
read
(
filename
),
content
)
zf
.
close
()
zf
.
close
()
os
.
unlink
(
TESTFN
)
os
.
unlink
(
TESTFN
)
def
testCloseErroneousFile
(
self
):
def
testCloseErroneousFile
(
self
):
# This test checks that the ZipFile constructor closes the file object
# This test checks that the ZipFile constructor closes the file object
# it opens if there's an error in the file. If it doesn't, the traceback
# it opens if there's an error in the file. If it doesn't, the traceback
...
@@ -472,24 +472,24 @@ class OtherTests(unittest.TestCase):
...
@@ -472,24 +472,24 @@ class OtherTests(unittest.TestCase):
os
.
unlink
(
TESTFN
)
os
.
unlink
(
TESTFN
)
def
testIsZipErroneousFile
(
self
):
def
testIsZipErroneousFile
(
self
):
# This test checks that the is_zipfile function correctly identifies
# This test checks that the is_zipfile function correctly identifies
# a file that is not a zip file
# a file that is not a zip file
fp
=
open
(
TESTFN
,
"w"
)
fp
=
open
(
TESTFN
,
"w"
)
fp
.
write
(
"this is not a legal zip file
\
n
"
)
fp
.
write
(
"this is not a legal zip file
\
n
"
)
fp
.
close
()
fp
.
close
()
chk
=
zipfile
.
is_zipfile
(
TESTFN
)
chk
=
zipfile
.
is_zipfile
(
TESTFN
)
os
.
unlink
(
TESTFN
)
os
.
unlink
(
TESTFN
)
self
.
assert_
(
chk
is
False
)
self
.
assert_
(
chk
is
False
)
def
testIsZipValidFile
(
self
):
def
testIsZipValidFile
(
self
):
# This test checks that the is_zipfile function correctly identifies
# This test checks that the is_zipfile function correctly identifies
# a file that is a zip file
# a file that is a zip file
zipf
=
zipfile
.
ZipFile
(
TESTFN
,
mode
=
"w"
)
zipf
=
zipfile
.
ZipFile
(
TESTFN
,
mode
=
"w"
)
zipf
.
writestr
(
"foo.txt"
,
"O, for a Muse of Fire!"
)
zipf
.
writestr
(
"foo.txt"
,
"O, for a Muse of Fire!"
)
zipf
.
close
()
zipf
.
close
()
chk
=
zipfile
.
is_zipfile
(
TESTFN
)
chk
=
zipfile
.
is_zipfile
(
TESTFN
)
os
.
unlink
(
TESTFN
)
os
.
unlink
(
TESTFN
)
self
.
assert_
(
chk
is
True
)
self
.
assert_
(
chk
is
True
)
def
testNonExistentFileRaisesIOError
(
self
):
def
testNonExistentFileRaisesIOError
(
self
):
# make sure we don't raise an AttributeError when a partially-constructed
# make sure we don't raise an AttributeError when a partially-constructed
...
@@ -552,7 +552,7 @@ class DecryptionTests(unittest.TestCase):
...
@@ -552,7 +552,7 @@ class DecryptionTests(unittest.TestCase):
def
testBadPassword
(
self
):
def
testBadPassword
(
self
):
self
.
zip
.
setpassword
(
"perl"
)
self
.
zip
.
setpassword
(
"perl"
)
self
.
assertRaises
(
RuntimeError
,
self
.
zip
.
read
,
"test.txt"
)
self
.
assertRaises
(
RuntimeError
,
self
.
zip
.
read
,
"test.txt"
)
def
testGoodPassword
(
self
):
def
testGoodPassword
(
self
):
self
.
zip
.
setpassword
(
"python"
)
self
.
zip
.
setpassword
(
"python"
)
self
.
assertEquals
(
self
.
zip
.
read
(
"test.txt"
),
self
.
plain
)
self
.
assertEquals
(
self
.
zip
.
read
(
"test.txt"
),
self
.
plain
)
...
@@ -589,7 +589,7 @@ class TestsWithRandomBinaryFiles(unittest.TestCase):
...
@@ -589,7 +589,7 @@ class TestsWithRandomBinaryFiles(unittest.TestCase):
def
testStored
(
self
):
def
testStored
(
self
):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
self
.
zipTest
(
f
,
zipfile
.
ZIP_STORED
)
self
.
zipTest
(
f
,
zipfile
.
ZIP_STORED
)
def
zipOpenTest
(
self
,
f
,
compression
):
def
zipOpenTest
(
self
,
f
,
compression
):
self
.
makeTestArchive
(
f
,
compression
)
self
.
makeTestArchive
(
f
,
compression
)
...
@@ -610,17 +610,17 @@ class TestsWithRandomBinaryFiles(unittest.TestCase):
...
@@ -610,17 +610,17 @@ class TestsWithRandomBinaryFiles(unittest.TestCase):
if
not
read_data
:
if
not
read_data
:
break
break
zipdata2
.
append
(
read_data
)
zipdata2
.
append
(
read_data
)
testdata1
=
''
.
join
(
zipdata1
)
testdata1
=
''
.
join
(
zipdata1
)
self
.
assertEqual
(
len
(
testdata1
),
len
(
self
.
data
))
self
.
assertEqual
(
len
(
testdata1
),
len
(
self
.
data
))
self
.
assertEqual
(
testdata1
,
self
.
data
)
self
.
assertEqual
(
testdata1
,
self
.
data
)
testdata2
=
''
.
join
(
zipdata2
)
testdata2
=
''
.
join
(
zipdata2
)
self
.
assertEqual
(
len
(
testdata1
),
len
(
self
.
data
))
self
.
assertEqual
(
len
(
testdata1
),
len
(
self
.
data
))
self
.
assertEqual
(
testdata1
,
self
.
data
)
self
.
assertEqual
(
testdata1
,
self
.
data
)
zipfp
.
close
()
zipfp
.
close
()
def
testOpenStored
(
self
):
def
testOpenStored
(
self
):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
self
.
zipOpenTest
(
f
,
zipfile
.
ZIP_STORED
)
self
.
zipOpenTest
(
f
,
zipfile
.
ZIP_STORED
)
...
@@ -641,8 +641,8 @@ class TestsWithRandomBinaryFiles(unittest.TestCase):
...
@@ -641,8 +641,8 @@ class TestsWithRandomBinaryFiles(unittest.TestCase):
self
.
assertEqual
(
len
(
testdata
),
len
(
self
.
data
))
self
.
assertEqual
(
len
(
testdata
),
len
(
self
.
data
))
self
.
assertEqual
(
testdata
,
self
.
data
)
self
.
assertEqual
(
testdata
,
self
.
data
)
zipfp
.
close
()
zipfp
.
close
()
def
testRandomOpenStored
(
self
):
def
testRandomOpenStored
(
self
):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
self
.
zipRandomOpenTest
(
f
,
zipfile
.
ZIP_STORED
)
self
.
zipRandomOpenTest
(
f
,
zipfile
.
ZIP_STORED
)
...
@@ -653,7 +653,7 @@ class TestsWithMultipleOpens(unittest.TestCase):
...
@@ -653,7 +653,7 @@ class TestsWithMultipleOpens(unittest.TestCase):
zipfp
.
writestr
(
'ones'
,
'1'
*
FIXEDTEST_SIZE
)
zipfp
.
writestr
(
'ones'
,
'1'
*
FIXEDTEST_SIZE
)
zipfp
.
writestr
(
'twos'
,
'2'
*
FIXEDTEST_SIZE
)
zipfp
.
writestr
(
'twos'
,
'2'
*
FIXEDTEST_SIZE
)
zipfp
.
close
()
zipfp
.
close
()
def
testSameFile
(
self
):
def
testSameFile
(
self
):
# Verify that (when the ZipFile is in control of creating file objects)
# Verify that (when the ZipFile is in control of creating file objects)
# multiple open() calls can be made without interfering with each other.
# multiple open() calls can be made without interfering with each other.
...
@@ -694,10 +694,10 @@ class TestsWithMultipleOpens(unittest.TestCase):
...
@@ -694,10 +694,10 @@ class TestsWithMultipleOpens(unittest.TestCase):
self
.
assertEqual
(
data1
,
'1'
*
FIXEDTEST_SIZE
)
self
.
assertEqual
(
data1
,
'1'
*
FIXEDTEST_SIZE
)
self
.
assertEqual
(
data2
,
'2'
*
FIXEDTEST_SIZE
)
self
.
assertEqual
(
data2
,
'2'
*
FIXEDTEST_SIZE
)
zipf
.
close
()
zipf
.
close
()
def
tearDown
(
self
):
def
tearDown
(
self
):
os
.
remove
(
TESTFN2
)
os
.
remove
(
TESTFN2
)
class
UniversalNewlineTests
(
unittest
.
TestCase
):
class
UniversalNewlineTests
(
unittest
.
TestCase
):
def
setUp
(
self
):
def
setUp
(
self
):
...
@@ -726,7 +726,7 @@ class UniversalNewlineTests(unittest.TestCase):
...
@@ -726,7 +726,7 @@ class UniversalNewlineTests(unittest.TestCase):
self
.
assertEqual
(
self
.
arcdata
[
sep
],
zipdata
)
self
.
assertEqual
(
self
.
arcdata
[
sep
],
zipdata
)
zipfp
.
close
()
zipfp
.
close
()
def
readlineTest
(
self
,
f
,
compression
):
def
readlineTest
(
self
,
f
,
compression
):
self
.
makeTestArchive
(
f
,
compression
)
self
.
makeTestArchive
(
f
,
compression
)
...
@@ -763,36 +763,36 @@ class UniversalNewlineTests(unittest.TestCase):
...
@@ -763,36 +763,36 @@ class UniversalNewlineTests(unittest.TestCase):
zipfp
.
close
()
zipfp
.
close
()
def
testReadStored
(
self
):
def
testReadStored
(
self
):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
self
.
readTest
(
f
,
zipfile
.
ZIP_STORED
)
self
.
readTest
(
f
,
zipfile
.
ZIP_STORED
)
def
testReadlineStored
(
self
):
def
testReadlineStored
(
self
):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
self
.
readlineTest
(
f
,
zipfile
.
ZIP_STORED
)
self
.
readlineTest
(
f
,
zipfile
.
ZIP_STORED
)
def
testReadlinesStored
(
self
):
def
testReadlinesStored
(
self
):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
self
.
readlinesTest
(
f
,
zipfile
.
ZIP_STORED
)
self
.
readlinesTest
(
f
,
zipfile
.
ZIP_STORED
)
def
testIterlinesStored
(
self
):
def
testIterlinesStored
(
self
):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
self
.
iterlinesTest
(
f
,
zipfile
.
ZIP_STORED
)
self
.
iterlinesTest
(
f
,
zipfile
.
ZIP_STORED
)
if
zlib
:
if
zlib
:
def
testReadDeflated
(
self
):
def
testReadDeflated
(
self
):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
self
.
readTest
(
f
,
zipfile
.
ZIP_DEFLATED
)
self
.
readTest
(
f
,
zipfile
.
ZIP_DEFLATED
)
def
testReadlineDeflated
(
self
):
def
testReadlineDeflated
(
self
):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
self
.
readlineTest
(
f
,
zipfile
.
ZIP_DEFLATED
)
self
.
readlineTest
(
f
,
zipfile
.
ZIP_DEFLATED
)
def
testReadlinesDeflated
(
self
):
def
testReadlinesDeflated
(
self
):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
self
.
readlinesTest
(
f
,
zipfile
.
ZIP_DEFLATED
)
self
.
readlinesTest
(
f
,
zipfile
.
ZIP_DEFLATED
)
def
testIterlinesDeflated
(
self
):
def
testIterlinesDeflated
(
self
):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
for
f
in
(
TESTFN2
,
TemporaryFile
(),
StringIO
()):
self
.
iterlinesTest
(
f
,
zipfile
.
ZIP_DEFLATED
)
self
.
iterlinesTest
(
f
,
zipfile
.
ZIP_DEFLATED
)
...
@@ -802,8 +802,8 @@ class UniversalNewlineTests(unittest.TestCase):
...
@@ -802,8 +802,8 @@ class UniversalNewlineTests(unittest.TestCase):
def
test_main
():
def
test_main
():
run_unittest
(
TestsWithSourceFile
,
TestZip64InSmallFiles
,
OtherTests
,
run_unittest
(
TestsWithSourceFile
,
TestZip64InSmallFiles
,
OtherTests
,
PyZipFileTests
,
DecryptionTests
,
TestsWithMultipleOpens
,
PyZipFileTests
,
DecryptionTests
,
TestsWithMultipleOpens
,
UniversalNewlineTests
,
TestsWithRandomBinaryFiles
)
UniversalNewlineTests
,
TestsWithRandomBinaryFiles
)
#run_unittest(TestZip64InSmallFiles)
#run_unittest(TestZip64InSmallFiles)
...
...
Lib/urllib2.py
View file @
ea5962f8
...
@@ -30,7 +30,7 @@ handler, the argument will be installed instead of the default.
...
@@ -30,7 +30,7 @@ handler, the argument will be installed instead of the default.
install_opener -- Installs a new opener as the default opener.
install_opener -- Installs a new opener as the default opener.
objects of interest:
objects of interest:
OpenerDirector --
OpenerDirector --
Request -- An object that encapsulates the state of a request. The
Request -- An object that encapsulates the state of a request. The
state can be as simple as the URL. It can also include extra HTTP
state can be as simple as the URL. It can also include extra HTTP
...
...
Lib/zipfile.py
View file @
ea5962f8
...
@@ -357,9 +357,9 @@ class _ZipDecrypter:
...
@@ -357,9 +357,9 @@ class _ZipDecrypter:
class
ZipExtFile
:
class
ZipExtFile
:
"""File-like object for reading an archive member.
"""File-like object for reading an archive member.
Is returned by ZipFile.open().
Is returned by ZipFile.open().
"""
"""
def
__init__
(
self
,
fileobj
,
zipinfo
,
decrypt
=
None
):
def
__init__
(
self
,
fileobj
,
zipinfo
,
decrypt
=
None
):
self
.
fileobj
=
fileobj
self
.
fileobj
=
fileobj
self
.
decrypter
=
decrypt
self
.
decrypter
=
decrypt
...
@@ -374,7 +374,7 @@ class ZipExtFile:
...
@@ -374,7 +374,7 @@ class ZipExtFile:
self
.
compress_type
=
zipinfo
.
compress_type
self
.
compress_type
=
zipinfo
.
compress_type
self
.
compress_size
=
zipinfo
.
compress_size
self
.
compress_size
=
zipinfo
.
compress_size
self
.
closed
=
False
self
.
closed
=
False
self
.
mode
=
"r"
self
.
mode
=
"r"
self
.
name
=
zipinfo
.
filename
self
.
name
=
zipinfo
.
filename
...
@@ -386,7 +386,7 @@ class ZipExtFile:
...
@@ -386,7 +386,7 @@ class ZipExtFile:
def
set_univ_newlines
(
self
,
univ_newlines
):
def
set_univ_newlines
(
self
,
univ_newlines
):
self
.
univ_newlines
=
univ_newlines
self
.
univ_newlines
=
univ_newlines
# pick line separator char(s) based on universal newlines flag
# pick line separator char(s) based on universal newlines flag
self
.
nlSeps
=
(
"
\
n
"
,
)
self
.
nlSeps
=
(
"
\
n
"
,
)
if
self
.
univ_newlines
:
if
self
.
univ_newlines
:
...
@@ -394,7 +394,7 @@ class ZipExtFile:
...
@@ -394,7 +394,7 @@ class ZipExtFile:
def
__iter__
(
self
):
def
__iter__
(
self
):
return
self
return
self
def
next
(
self
):
def
next
(
self
):
nextline
=
self
.
readline
()
nextline
=
self
.
readline
()
if
not
nextline
:
if
not
nextline
:
...
@@ -414,17 +414,17 @@ class ZipExtFile:
...
@@ -414,17 +414,17 @@ class ZipExtFile:
if
(
self
.
lastdiscard
,
self
.
linebuffer
[
0
])
==
(
'
\
r
'
,
'
\
n
'
):
if
(
self
.
lastdiscard
,
self
.
linebuffer
[
0
])
==
(
'
\
r
'
,
'
\
n
'
):
self
.
linebuffer
=
self
.
linebuffer
[
1
:]
self
.
linebuffer
=
self
.
linebuffer
[
1
:]
for
sep
in
self
.
nlSeps
:
for
sep
in
self
.
nlSeps
:
nl
=
self
.
linebuffer
.
find
(
sep
)
nl
=
self
.
linebuffer
.
find
(
sep
)
if
nl
>=
0
:
if
nl
>=
0
:
nllen
=
len
(
sep
)
nllen
=
len
(
sep
)
return
nl
,
nllen
return
nl
,
nllen
return
nl
,
nllen
return
nl
,
nllen
def
readline
(
self
,
size
=
-
1
):
def
readline
(
self
,
size
=
-
1
):
"""Read a line with approx. size. If size is negative,
"""Read a line with approx. size. If size is negative,
read a whole line.
read a whole line.
"""
"""
if
size
<
0
:
if
size
<
0
:
size
=
sys
.
maxint
size
=
sys
.
maxint
...
@@ -433,7 +433,7 @@ class ZipExtFile:
...
@@ -433,7 +433,7 @@ class ZipExtFile:
# check for a newline already in buffer
# check for a newline already in buffer
nl
,
nllen
=
self
.
_checkfornewline
()
nl
,
nllen
=
self
.
_checkfornewline
()
if
nl
>=
0
:
if
nl
>=
0
:
# the next line was already in the buffer
# the next line was already in the buffer
nl
=
min
(
nl
,
size
)
nl
=
min
(
nl
,
size
)
...
@@ -449,7 +449,7 @@ class ZipExtFile:
...
@@ -449,7 +449,7 @@ class ZipExtFile:
# check for a newline in buffer
# check for a newline in buffer
nl
,
nllen
=
self
.
_checkfornewline
()
nl
,
nllen
=
self
.
_checkfornewline
()
# we either ran out of bytes in the file, or
# we either ran out of bytes in the file, or
# met the specified size limit without finding a newline,
# met the specified size limit without finding a newline,
# so return current buffer
# so return current buffer
...
@@ -528,8 +528,8 @@ class ZipExtFile:
...
@@ -528,8 +528,8 @@ class ZipExtFile:
newdata
=
self
.
dc
.
decompress
(
newdata
)
newdata
=
self
.
dc
.
decompress
(
newdata
)
self
.
rawbuffer
=
self
.
dc
.
unconsumed_tail
self
.
rawbuffer
=
self
.
dc
.
unconsumed_tail
if
self
.
eof
and
len
(
self
.
rawbuffer
)
==
0
:
if
self
.
eof
and
len
(
self
.
rawbuffer
)
==
0
:
# we're out of raw bytes (both from the file and
# we're out of raw bytes (both from the file and
# the local buffer); flush just to make sure the
# the local buffer); flush just to make sure the
# decompressor is done
# decompressor is done
newdata
+=
self
.
dc
.
flush
()
newdata
+=
self
.
dc
.
flush
()
# prevent decompressor from being used again
# prevent decompressor from being used again
...
@@ -547,7 +547,7 @@ class ZipExtFile:
...
@@ -547,7 +547,7 @@ class ZipExtFile:
self
.
readbuffer
=
self
.
readbuffer
[
size
:]
self
.
readbuffer
=
self
.
readbuffer
[
size
:]
return
bytes
return
bytes
class
ZipFile
:
class
ZipFile
:
""" Class with methods to open, read, write, close, list zip files.
""" Class with methods to open, read, write, close, list zip files.
...
@@ -738,7 +738,7 @@ class ZipFile:
...
@@ -738,7 +738,7 @@ class ZipFile:
raise
RuntimeError
,
\
raise
RuntimeError
,
\
"Attempt to read ZIP archive that was already closed"
"Attempt to read ZIP archive that was already closed"
# Only open a new file for instances where we were not
# Only open a new file for instances where we were not
# given a file object in the constructor
# given a file object in the constructor
if
self
.
_filePassed
:
if
self
.
_filePassed
:
zef_file
=
self
.
fp
zef_file
=
self
.
fp
...
...
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