Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Z
Zope
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
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
Zope
Commits
b26ccc00
Commit
b26ccc00
authored
Dec 15, 2000
by
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implemented some fixes suggested by jim to avoid running non-PyUnit modules
that happen to match the naming convention.
parent
916c5be9
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
30 additions
and
29 deletions
+30
-29
utilities/testrunner.py
utilities/testrunner.py
+30
-29
No files found.
utilities/testrunner.py
View file @
b26ccc00
...
...
@@ -16,8 +16,8 @@ conventions. Test modules should have a name prefixed with 'test', such as
named 'test_suite' that returns a PyUnit TestSuite object. By convention,
we put test suites in 'tests' subdirectories of the packages they test.
Testrunner is used to run all checked in test suites before
releases are
made, and can be used to quickly run a particular suite or all suites in
Testrunner is used to run all checked in test suites before
(final) releases
are
made, and can be used to quickly run a particular suite or all suites in
a particular directory."""
import
sys
,
os
,
imp
,
string
,
getopt
...
...
@@ -47,23 +47,6 @@ class TestRunner:
import
unittest
pyunit
=
unittest
# modules that would match, but are not (yet) PyUnit tests.
skip_names
=
{
'testrunner.py'
:
None
,
'test_logger.py'
:
None
,
'test_MultiMapping.py'
:
None
,
'test_Sync.py'
:
None
,
'test_ThreadLock.py'
:
None
,
'test_acquisition.py'
:
None
,
'test_add.py'
:
None
,
'test_binding.py'
:
None
,
'test_explicit_acquisition.py'
:
None
,
'test_func_attr.py'
:
None
,
'test_method_hook.py'
:
None
,
'test.py'
:
None
,
}
skip_name
=
skip_names
.
has_key
def
getSuiteFromFile
(
self
,
filepath
):
if
not
os
.
path
.
isfile
(
filepath
):
raise
ValueError
,
'%s is not a file'
%
filepath
...
...
@@ -77,6 +60,15 @@ class TestRunner:
return
None
return
function
()
def
smellsLikeATest
(
self
,
filepath
,
find
=
string
.
find
):
file
=
open
(
filepath
,
'r'
)
lines
=
file
.
readlines
()
file
.
close
()
for
line
in
lines
:
if
find
(
line
,
'def test_suite('
)
>
-
1
:
return
1
return
0
def
runSuite
(
self
,
suite
):
runner
=
pyunit
.
TextTestRunner
()
runner
.
run
(
suite
)
...
...
@@ -94,13 +86,13 @@ class TestRunner:
"""Run all tests found in the directory named by pathname
and all subdirectories."""
names
=
os
.
listdir
(
pathname
)
skip_name
=
self
.
skip_name
for
name
in
names
:
fname
,
ext
=
os
.
path
.
splitext
(
name
)
if
name
[:
4
]
==
'test'
and
name
[
-
3
:]
==
'.py'
and
\
(
not
skip_name
(
name
))
:
name
!=
'testrunner.py'
:
filepath
=
os
.
path
.
join
(
pathname
,
name
)
self
.
runFile
(
filepath
)
if
self
.
smellsLikeATest
(
filepath
):
self
.
runFile
(
filepath
)
for
name
in
names
:
fullpath
=
os
.
path
.
join
(
pathname
,
name
)
if
os
.
path
.
isdir
(
fullpath
):
...
...
@@ -124,10 +116,12 @@ class TestRunner:
def
main
(
args
):
usage_msg
=
"""Usage: python testrunner.py
[options]
usage_msg
=
"""Usage: python testrunner.py
options
If run without options, testrunner will run all test suites
found in all subdirectories of the current working directory.
If run without options, testrunner will display this usage
message. If you want to run all test suites found in all
subdirectories of the current working directory, use the
-a option.
options:
...
...
@@ -146,14 +140,20 @@ def main(args):
-f filepath
Run the test suite found in the file specified. The filepath
should be a fully qualified path to the file to be run.
\
n
"""
should be a fully qualified path to the file to be run.
-h
Display usage information.
\
n
"""
pathname
=
None
filename
=
None
test_all
=
None
try
:
options
,
arg
=
getopt
.
getopt
(
args
,
'ad:f:'
)
options
,
arg
=
getopt
.
getopt
(
args
,
'ahd:f:'
)
if
not
options
:
err_exit
(
usage_msg
)
for
name
,
value
in
options
:
name
=
name
[
1
:]
if
name
==
'a'
:
...
...
@@ -162,10 +162,11 @@ def main(args):
pathname
=
string
.
strip
(
value
)
elif
name
==
'f'
:
filename
=
string
.
strip
(
value
)
elif
name
==
'h'
:
err_exit
(
usage_msg
)
else
:
err_exit
(
usage_msg
)
if
not
options
:
test_all
=
1
except
:
err_exit
(
usage_msg
)
...
...
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