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
13699006
Commit
13699006
authored
Feb 14, 2009
by
Tarek Ziadé
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix for #5257: refactored all tests in distutils, so they use a temporary directory.
parent
a4038038
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
67 additions
and
74 deletions
+67
-74
Lib/distutils/tests/support.py
Lib/distutils/tests/support.py
+2
-2
Lib/distutils/tests/test_build_ext.py
Lib/distutils/tests/test_build_ext.py
+5
-4
Lib/distutils/tests/test_config.py
Lib/distutils/tests/test_config.py
+8
-5
Lib/distutils/tests/test_dir_util.py
Lib/distutils/tests/test_dir_util.py
+7
-6
Lib/distutils/tests/test_dist.py
Lib/distutils/tests/test_dist.py
+13
-17
Lib/distutils/tests/test_file_util.py
Lib/distutils/tests/test_file_util.py
+8
-11
Lib/distutils/tests/test_sdist.py
Lib/distutils/tests/test_sdist.py
+21
-29
Misc/NEWS
Misc/NEWS
+3
-0
No files found.
Lib/distutils/tests/support.py
View file @
13699006
"""Support code for distutils test cases."""
import
os
import
shutil
import
tempfile
...
...
@@ -31,7 +31,7 @@ class TempdirManager(object):
super
(
TempdirManager
,
self
).
tearDown
()
while
self
.
tempdirs
:
d
=
self
.
tempdirs
.
pop
()
shutil
.
rmtree
(
d
)
shutil
.
rmtree
(
d
,
os
.
name
in
(
'nt'
,
'cygwin'
)
)
def
mkdtemp
(
self
):
"""Create a temporary directory that will be cleaned up.
...
...
Lib/distutils/tests/test_build_ext.py
View file @
13699006
...
...
@@ -7,6 +7,7 @@ from StringIO import StringIO
from
distutils.core
import
Extension
,
Distribution
from
distutils.command.build_ext
import
build_ext
from
distutils
import
sysconfig
from
distutils.tests
import
support
import
unittest
from
test
import
test_support
...
...
@@ -19,11 +20,12 @@ def _get_source_filename():
srcdir
=
sysconfig
.
get_config_var
(
'srcdir'
)
return
os
.
path
.
join
(
srcdir
,
'Modules'
,
'xxmodule.c'
)
class
BuildExtTestCase
(
unittest
.
TestCase
):
class
BuildExtTestCase
(
support
.
TempdirManager
,
unittest
.
TestCase
):
def
setUp
(
self
):
# Create a simple test environment
# Note that we're making changes to sys.path
self
.
tmp_dir
=
tempfile
.
mkdtemp
(
prefix
=
"pythontest_"
)
support
.
TempdirManager
.
setUp
(
self
)
self
.
tmp_dir
=
self
.
mkdtemp
()
self
.
sys_path
=
sys
.
path
[:]
sys
.
path
.
append
(
self
.
tmp_dir
)
shutil
.
copy
(
_get_source_filename
(),
self
.
tmp_dir
)
...
...
@@ -74,8 +76,7 @@ class BuildExtTestCase(unittest.TestCase):
# Get everything back to normal
test_support
.
unload
(
'xx'
)
sys
.
path
=
self
.
sys_path
# XXX on Windows the test leaves a directory with xx module in TEMP
shutil
.
rmtree
(
self
.
tmp_dir
,
os
.
name
==
'nt'
or
sys
.
platform
==
'cygwin'
)
support
.
TempdirManager
.
tearDown
(
self
)
def
test_solaris_enable_shared
(
self
):
dist
=
Distribution
({
'name'
:
'xx'
})
...
...
Lib/distutils/tests/test_config.py
View file @
13699006
...
...
@@ -2,6 +2,8 @@
import
sys
import
os
import
unittest
import
tempfile
import
shutil
from
distutils.core
import
PyPIRCCommand
from
distutils.core
import
Distribution
...
...
@@ -49,13 +51,15 @@ class PyPIRCCommandTestCase(support.TempdirManager, unittest.TestCase):
def
setUp
(
self
):
"""Patches the environment."""
support
.
TempdirManager
.
setUp
(
self
)
if
os
.
environ
.
has_key
(
'HOME'
):
self
.
_old_home
=
os
.
environ
[
'HOME'
]
else
:
self
.
_old_home
=
None
curdir
=
os
.
path
.
dirname
(
__file__
)
os
.
environ
[
'HOME'
]
=
cur
dir
self
.
rc
=
os
.
path
.
join
(
cur
dir
,
'.pypirc'
)
self
.
tmp_dir
=
self
.
mkdtemp
(
)
os
.
environ
[
'HOME'
]
=
self
.
tmp_
dir
self
.
rc
=
os
.
path
.
join
(
self
.
tmp_
dir
,
'.pypirc'
)
self
.
dist
=
Distribution
()
class
command
(
PyPIRCCommand
):
...
...
@@ -74,9 +78,8 @@ class PyPIRCCommandTestCase(support.TempdirManager, unittest.TestCase):
del
os
.
environ
[
'HOME'
]
else
:
os
.
environ
[
'HOME'
]
=
self
.
_old_home
if
os
.
path
.
exists
(
self
.
rc
):
os
.
remove
(
self
.
rc
)
set_threshold
(
self
.
old_threshold
)
support
.
TempdirManager
.
tearDown
(
self
)
def
test_server_registration
(
self
):
# This test makes sure PyPIRCCommand knows how to:
...
...
Lib/distutils/tests/test_dir_util.py
View file @
13699006
...
...
@@ -9,8 +9,9 @@ from distutils.dir_util import create_tree
from
distutils.dir_util
import
copy_tree
from
distutils
import
log
from
distutils.tests
import
support
class
DirUtilTestCase
(
unittest
.
TestCase
):
class
DirUtilTestCase
(
support
.
TempdirManager
,
unittest
.
TestCase
):
def
_log
(
self
,
msg
,
*
args
):
if
len
(
args
)
>
0
:
...
...
@@ -19,18 +20,18 @@ class DirUtilTestCase(unittest.TestCase):
self
.
_logs
.
append
(
msg
)
def
setUp
(
self
):
support
.
TempdirManager
.
setUp
(
self
)
self
.
_logs
=
[]
self
.
root_target
=
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'deep'
)
tmp_dir
=
self
.
mkdtemp
()
self
.
root_target
=
os
.
path
.
join
(
tmp_dir
,
'deep'
)
self
.
target
=
os
.
path
.
join
(
self
.
root_target
,
'here'
)
self
.
target2
=
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
)
,
'deep2'
)
self
.
target2
=
os
.
path
.
join
(
tmp_dir
,
'deep2'
)
self
.
old_log
=
log
.
info
log
.
info
=
self
.
_log
def
tearDown
(
self
):
for
target
in
(
self
.
target
,
self
.
target2
):
if
os
.
path
.
exists
(
target
):
shutil
.
rmtree
(
target
)
log
.
info
=
self
.
old_log
support
.
TempdirManager
.
tearDown
(
self
)
def
test_mkpath_remove_tree_verbosity
(
self
):
...
...
Lib/distutils/tests/test_dist.py
View file @
13699006
...
...
@@ -11,7 +11,7 @@ import unittest
import
warnings
from
test.test_support
import
TESTFN
from
distutils.tests
import
support
class
test_dist
(
distutils
.
cmd
.
Command
):
"""Sample distutils extension command."""
...
...
@@ -36,14 +36,16 @@ class TestDistribution(distutils.dist.Distribution):
return
self
.
_config_files
class
DistributionTestCase
(
unittest
.
TestCase
):
class
DistributionTestCase
(
support
.
TempdirManager
,
unittest
.
TestCase
):
def
setUp
(
self
):
support
.
TempdirManager
.
setUp
(
self
)
self
.
argv
=
sys
.
argv
[:]
del
sys
.
argv
[
1
:]
def
tearDown
(
self
):
sys
.
argv
[:]
=
self
.
argv
support
.
TempdirManager
.
tearDown
(
self
)
def
create_distribution
(
self
,
configfiles
=
()):
d
=
TestDistribution
()
...
...
@@ -100,7 +102,8 @@ class DistributionTestCase(unittest.TestCase):
def
test_write_pkg_file
(
self
):
# Check DistributionMetadata handling of Unicode fields
my_file
=
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'f'
)
tmp_dir
=
self
.
mkdtemp
()
my_file
=
os
.
path
.
join
(
tmp_dir
,
'f'
)
klass
=
distutils
.
dist
.
Distribution
dist
=
klass
(
attrs
=
{
'author'
:
u'Mister Caf'
,
...
...
@@ -113,11 +116,7 @@ class DistributionTestCase(unittest.TestCase):
# let's make sure the file can be written
# with Unicode fields. they are encoded with
# PKG_INFO_ENCODING
try
:
dist
.
metadata
.
write_pkg_file
(
open
(
my_file
,
'w'
))
finally
:
if
os
.
path
.
exists
(
my_file
):
os
.
remove
(
my_file
)
dist
.
metadata
.
write_pkg_file
(
open
(
my_file
,
'w'
))
# regular ascii is of course always usable
dist
=
klass
(
attrs
=
{
'author'
:
'Mister Cafe'
,
...
...
@@ -126,11 +125,8 @@ class DistributionTestCase(unittest.TestCase):
'description'
:
'Cafe torrefie'
,
'long_description'
:
'Hehehe'
})
try
:
dist
.
metadata
.
write_pkg_file
(
open
(
my_file
,
'w'
))
finally
:
if
os
.
path
.
exists
(
my_file
):
os
.
remove
(
my_file
)
my_file2
=
os
.
path
.
join
(
tmp_dir
,
'f2'
)
dist
.
metadata
.
write_pkg_file
(
open
(
my_file
,
'w'
))
def
test_empty_options
(
self
):
# an empty options dictionary should not stay in the
...
...
@@ -155,7 +151,7 @@ class DistributionTestCase(unittest.TestCase):
self
.
assertEquals
(
len
(
warns
),
0
)
class
MetadataTestCase
(
unittest
.
TestCase
):
class
MetadataTestCase
(
support
.
TempdirManager
,
unittest
.
TestCase
):
def
test_simple_metadata
(
self
):
attrs
=
{
"name"
:
"package"
,
...
...
@@ -254,8 +250,8 @@ class MetadataTestCase(unittest.TestCase):
else
:
user_filename
=
"pydistutils.cfg"
curdir
=
os
.
path
.
dirname
(
__file__
)
user_filename
=
os
.
path
.
join
(
cur
dir
,
user_filename
)
temp_dir
=
self
.
mkdtemp
(
)
user_filename
=
os
.
path
.
join
(
temp_
dir
,
user_filename
)
f
=
open
(
user_filename
,
'w'
)
f
.
write
(
'.'
)
f
.
close
()
...
...
@@ -265,7 +261,7 @@ class MetadataTestCase(unittest.TestCase):
# linux-style
if
sys
.
platform
in
(
'linux'
,
'darwin'
):
os
.
environ
[
'HOME'
]
=
cur
dir
os
.
environ
[
'HOME'
]
=
temp_
dir
files
=
dist
.
find_config_files
()
self
.
assert_
(
user_filename
in
files
)
...
...
Lib/distutils/tests/test_file_util.py
View file @
13699006
...
...
@@ -5,8 +5,9 @@ import shutil
from
distutils.file_util
import
move_file
from
distutils
import
log
from
distutils.tests
import
support
class
FileUtilTestCase
(
unittest
.
TestCase
):
class
FileUtilTestCase
(
support
.
TempdirManager
,
unittest
.
TestCase
):
def
_log
(
self
,
msg
,
*
args
):
if
len
(
args
)
>
0
:
...
...
@@ -15,24 +16,20 @@ class FileUtilTestCase(unittest.TestCase):
self
.
_logs
.
append
(
msg
)
def
setUp
(
self
):
support
.
TempdirManager
.
setUp
(
self
)
self
.
_logs
=
[]
self
.
old_log
=
log
.
info
log
.
info
=
self
.
_log
self
.
source
=
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'f1'
)
self
.
target
=
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'f2'
)
self
.
target_dir
=
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'd1'
)
tmp_dir
=
self
.
mkdtemp
()
self
.
source
=
os
.
path
.
join
(
tmp_dir
,
'f1'
)
self
.
target
=
os
.
path
.
join
(
tmp_dir
,
'f2'
)
self
.
target_dir
=
os
.
path
.
join
(
tmp_dir
,
'd1'
)
def
tearDown
(
self
):
log
.
info
=
self
.
old_log
for
f
in
(
self
.
source
,
self
.
target
,
self
.
target_dir
):
if
os
.
path
.
exists
(
f
):
if
os
.
path
.
isfile
(
f
):
os
.
remove
(
f
)
else
:
shutil
.
rmtree
(
f
)
support
.
TempdirManager
.
tearDown
(
self
)
def
test_move_file_verbosity
(
self
):
f
=
open
(
self
.
source
,
'w'
)
f
.
write
(
'some content'
)
f
.
close
()
...
...
Lib/distutils/tests/test_sdist.py
View file @
13699006
...
...
@@ -5,6 +5,7 @@ import shutil
import
zipfile
from
os.path
import
join
import
sys
import
tempfile
from
distutils.command.sdist
import
sdist
from
distutils.core
import
Distribution
...
...
@@ -12,9 +13,6 @@ from distutils.tests.test_config import PyPIRCCommandTestCase
from
distutils.errors
import
DistutilsExecError
from
distutils.spawn
import
find_executable
CURDIR
=
os
.
path
.
dirname
(
__file__
)
TEMP_PKG
=
join
(
CURDIR
,
'temppkg'
)
SETUP_PY
=
"""
from distutils.core import setup
import somecode
...
...
@@ -29,28 +27,25 @@ recursive-include somecode *
class
sdistTestCase
(
PyPIRCCommandTestCase
):
def
setUp
(
self
):
# PyPIRCCommandTestCase creates a temp dir already
# and put it in self.tmp_dir
PyPIRCCommandTestCase
.
setUp
(
self
)
# setting up an environment
self
.
old_path
=
os
.
getcwd
()
os
.
mkdir
(
join
(
self
.
tmp_dir
,
'somecode'
))
os
.
mkdir
(
join
(
self
.
tmp_dir
,
'dist'
))
# creating a MANIFEST, a package, and a README
self
.
_write
(
join
(
self
.
tmp_dir
,
'MANIFEST.in'
),
MANIFEST_IN
)
self
.
_write
(
join
(
self
.
tmp_dir
,
'README'
),
'xxx'
)
self
.
_write
(
join
(
self
.
tmp_dir
,
'somecode'
,
'__init__.py'
),
'#'
)
self
.
_write
(
join
(
self
.
tmp_dir
,
'setup.py'
),
SETUP_PY
)
os
.
chdir
(
self
.
tmp_dir
)
def
tearDown
(
self
):
# back to normal
os
.
chdir
(
self
.
old_path
)
if
os
.
path
.
exists
(
TEMP_PKG
):
shutil
.
rmtree
(
TEMP_PKG
)
PyPIRCCommandTestCase
.
tearDown
(
self
)
def
_init_tmp_pkg
(
self
):
if
os
.
path
.
exists
(
TEMP_PKG
):
shutil
.
rmtree
(
TEMP_PKG
)
os
.
mkdir
(
TEMP_PKG
)
os
.
mkdir
(
join
(
TEMP_PKG
,
'somecode'
))
os
.
mkdir
(
join
(
TEMP_PKG
,
'dist'
))
# creating a MANIFEST, a package, and a README
self
.
_write
(
join
(
TEMP_PKG
,
'MANIFEST.in'
),
MANIFEST_IN
)
self
.
_write
(
join
(
TEMP_PKG
,
'README'
),
'xxx'
)
self
.
_write
(
join
(
TEMP_PKG
,
'somecode'
,
'__init__.py'
),
'#'
)
self
.
_write
(
join
(
TEMP_PKG
,
'setup.py'
),
SETUP_PY
)
os
.
chdir
(
TEMP_PKG
)
def
_write
(
self
,
path
,
content
):
f
=
open
(
path
,
'w'
)
try
:
...
...
@@ -62,18 +57,17 @@ class sdistTestCase(PyPIRCCommandTestCase):
# this test creates a package with some vcs dirs in it
# and launch sdist to make sure they get pruned
# on all systems
self
.
_init_tmp_pkg
()
# creating VCS directories with some files in them
os
.
mkdir
(
join
(
TEMP_PKG
,
'somecode'
,
'.svn'
))
self
.
_write
(
join
(
TEMP_PKG
,
'somecode'
,
'.svn'
,
'ok.py'
),
'xxx'
)
os
.
mkdir
(
join
(
self
.
tmp_dir
,
'somecode'
,
'.svn'
))
self
.
_write
(
join
(
self
.
tmp_dir
,
'somecode'
,
'.svn'
,
'ok.py'
),
'xxx'
)
os
.
mkdir
(
join
(
TEMP_PKG
,
'somecode'
,
'.hg'
))
self
.
_write
(
join
(
TEMP_PKG
,
'somecode'
,
'.hg'
,
os
.
mkdir
(
join
(
self
.
tmp_dir
,
'somecode'
,
'.hg'
))
self
.
_write
(
join
(
self
.
tmp_dir
,
'somecode'
,
'.hg'
,
'ok'
),
'xxx'
)
os
.
mkdir
(
join
(
TEMP_PKG
,
'somecode'
,
'.git'
))
self
.
_write
(
join
(
TEMP_PKG
,
'somecode'
,
'.git'
,
os
.
mkdir
(
join
(
self
.
tmp_dir
,
'somecode'
,
'.git'
))
self
.
_write
(
join
(
self
.
tmp_dir
,
'somecode'
,
'.git'
,
'ok'
),
'xxx'
)
# now building a sdist
...
...
@@ -96,7 +90,7 @@ class sdistTestCase(PyPIRCCommandTestCase):
cmd
.
run
()
# now let's check what we have
dist_folder
=
join
(
TEMP_PKG
,
'dist'
)
dist_folder
=
join
(
self
.
tmp_dir
,
'dist'
)
files
=
os
.
listdir
(
dist_folder
)
self
.
assertEquals
(
files
,
[
'fake-1.0.zip'
])
...
...
@@ -116,8 +110,6 @@ class sdistTestCase(PyPIRCCommandTestCase):
find_executable
(
'gzip'
)
is
None
):
return
self
.
_init_tmp_pkg
()
# now building a sdist
dist
=
Distribution
()
dist
.
script_name
=
'setup.py'
...
...
@@ -137,7 +129,7 @@ class sdistTestCase(PyPIRCCommandTestCase):
cmd
.
run
()
# making sure we have two files
dist_folder
=
join
(
TEMP_PKG
,
'dist'
)
dist_folder
=
join
(
self
.
tmp_dir
,
'dist'
)
result
=
os
.
listdir
(
dist_folder
)
result
.
sort
()
self
.
assertEquals
(
result
,
...
...
Misc/NEWS
View file @
13699006
...
...
@@ -155,6 +155,9 @@ Core and Builtins
Library
-------
- Issue #5257: refactored all tests in distutils, so they use
support.TempdirManager, to avoid writing in the tests directory.
- Issue #4524: distutils build_script command failed with --with-suffix=3.
Initial patch by Amaury Forgeot d'Arc.
...
...
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