Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
setuptools
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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jérome Perrin
setuptools
Commits
08e35061
Commit
08e35061
authored
Nov 03, 2011
by
Éric Araujo
Browse files
Options
Browse Files
Download
Plain Diff
Branch merge
parents
4d25e1b7
21fe162a
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
126 additions
and
85 deletions
+126
-85
command/build_py.py
command/build_py.py
+6
-3
command/install_lib.py
command/install_lib.py
+4
-2
tests/test_bdist_dumb.py
tests/test_bdist_dumb.py
+17
-6
tests/test_build_py.py
tests/test_build_py.py
+46
-26
tests/test_install.py
tests/test_install.py
+19
-22
tests/test_install_lib.py
tests/test_install_lib.py
+30
-22
tests/test_sdist.py
tests/test_sdist.py
+4
-4
No files found.
command/build_py.py
View file @
08e35061
...
...
@@ -2,8 +2,9 @@
Implements the Distutils 'build_py' command."""
import
sys
,
os
import
os
import
imp
import
sys
from
glob
import
glob
from
distutils.core
import
Command
...
...
@@ -311,9 +312,11 @@ class build_py (Command):
outputs
.
append
(
filename
)
if
include_bytecode
:
if
self
.
compile
:
outputs
.
append
(
imp
.
cache_from_source
(
filename
,
True
))
outputs
.
append
(
imp
.
cache_from_source
(
filename
,
debug_override
=
True
))
if
self
.
optimize
>
0
:
outputs
.
append
(
imp
.
cache_from_source
(
filename
,
False
))
outputs
.
append
(
imp
.
cache_from_source
(
filename
,
debug_override
=
False
))
outputs
+=
[
os
.
path
.
join
(
build_dir
,
filename
)
...
...
command/install_lib.py
View file @
08e35061
...
...
@@ -165,9 +165,11 @@ class install_lib(Command):
if
ext
!=
PYTHON_SOURCE_EXTENSION
:
continue
if
self
.
compile
:
bytecode_files
.
append
(
imp
.
cache_from_source
(
py_file
,
True
))
bytecode_files
.
append
(
imp
.
cache_from_source
(
py_file
,
debug_override
=
True
))
if
self
.
optimize
>
0
:
bytecode_files
.
append
(
imp
.
cache_from_source
(
py_file
,
False
))
bytecode_files
.
append
(
imp
.
cache_from_source
(
py_file
,
debug_override
=
False
))
return
bytecode_files
...
...
tests/test_bdist_dumb.py
View file @
08e35061
"""Tests for distutils.command.bdist_dumb."""
import
unittest
import
sys
import
os
import
imp
import
sys
import
zipfile
import
unittest
from
test.support
import
run_unittest
from
distutils.core
import
Distribution
...
...
@@ -72,15 +74,24 @@ class BuildDumbTestCase(support.TempdirManager,
# see what we have
dist_created
=
os
.
listdir
(
os
.
path
.
join
(
pkg_dir
,
'dist'
))
base
=
"%s.%s"
%
(
dist
.
get_fullname
(),
cmd
.
plat_name
)
base
=
"%s.%s
.zip
"
%
(
dist
.
get_fullname
(),
cmd
.
plat_name
)
if
os
.
name
==
'os2'
:
base
=
base
.
replace
(
':'
,
'-'
)
wanted
=
[
'%s.zip'
%
base
]
self
.
assertEqual
(
dist_created
,
wanted
)
self
.
assertEqual
(
dist_created
,
[
base
])
# now let's check what we have in the zip file
# XXX to be done
fp
=
zipfile
.
ZipFile
(
os
.
path
.
join
(
'dist'
,
base
))
try
:
contents
=
fp
.
namelist
()
finally
:
fp
.
close
()
contents
=
sorted
(
os
.
path
.
basename
(
fn
)
for
fn
in
contents
)
wanted
=
[
'foo-0.1-py%s.%s.egg-info'
%
sys
.
version_info
[:
2
],
'foo.%s.pyc'
%
imp
.
get_tag
(),
'foo.py'
]
self
.
assertEqual
(
contents
,
sorted
(
wanted
))
def
test_suite
():
return
unittest
.
makeSuite
(
BuildDumbTestCase
)
...
...
tests/test_build_py.py
View file @
08e35061
...
...
@@ -2,7 +2,6 @@
import
os
import
sys
import
io
import
imp
import
unittest
...
...
@@ -54,7 +53,6 @@ class BuildPyTestCase(support.TempdirManager,
# This makes sure the list of outputs includes byte-compiled
# files for Python modules but not for package data files
# (there shouldn't *be* byte-code files for those!).
#
self
.
assertEqual
(
len
(
cmd
.
get_outputs
()),
3
)
pkgdest
=
os
.
path
.
join
(
destination
,
"pkg"
)
files
=
os
.
listdir
(
pkgdest
)
...
...
@@ -64,15 +62,11 @@ class BuildPyTestCase(support.TempdirManager,
if
sys
.
dont_write_bytecode
:
self
.
assertFalse
(
os
.
path
.
exists
(
pycache_dir
))
else
:
# XXX even with -O, distutils writes pyc, not pyo; bug?
pyc_files
=
os
.
listdir
(
pycache_dir
)
self
.
assertIn
(
"__init__.%s.pyc"
%
imp
.
get_tag
(),
pyc_files
)
def
test_empty_package_dir
(
self
):
# See SF 1668596/1720897.
cwd
=
os
.
getcwd
()
# create the distribution files.
# See bugs #1668596/#1720897
sources
=
self
.
mkdtemp
()
open
(
os
.
path
.
join
(
sources
,
"__init__.py"
),
"w"
).
close
()
...
...
@@ -81,10 +75,6 @@ class BuildPyTestCase(support.TempdirManager,
open
(
os
.
path
.
join
(
testdir
,
"testfile"
),
"w"
).
close
()
os
.
chdir
(
sources
)
old_stdout
=
sys
.
stdout
sys
.
stdout
=
io
.
StringIO
()
try
:
dist
=
Distribution
({
"packages"
:
[
"pkg"
],
"package_dir"
:
{
"pkg"
:
""
},
"package_data"
:
{
"pkg"
:
[
"doc/*"
]}})
...
...
@@ -97,14 +87,43 @@ class BuildPyTestCase(support.TempdirManager,
dist
.
run_commands
()
except
DistutilsFileError
:
self
.
fail
(
"failed package_data test when package_dir is ''"
)
finally
:
# Restore state.
os
.
chdir
(
cwd
)
sys
.
stdout
=
old_stdout
@
unittest
.
skipIf
(
sys
.
dont_write_bytecode
,
'byte-compile disabled'
)
def
test_byte_compile
(
self
):
project_dir
,
dist
=
self
.
create_dist
(
py_modules
=
[
'boiledeggs'
])
os
.
chdir
(
project_dir
)
self
.
write_file
(
'boiledeggs.py'
,
'import antigravity'
)
cmd
=
build_py
(
dist
)
cmd
.
compile
=
1
cmd
.
build_lib
=
'here'
cmd
.
finalize_options
()
cmd
.
run
()
found
=
os
.
listdir
(
cmd
.
build_lib
)
self
.
assertEqual
(
sorted
(
found
),
[
'__pycache__'
,
'boiledeggs.py'
])
found
=
os
.
listdir
(
os
.
path
.
join
(
cmd
.
build_lib
,
'__pycache__'
))
self
.
assertEqual
(
found
,
[
'boiledeggs.%s.pyc'
%
imp
.
get_tag
()])
@
unittest
.
skipIf
(
sys
.
dont_write_bytecode
,
'byte-compile disabled'
)
def
test_byte_compile_optimized
(
self
):
project_dir
,
dist
=
self
.
create_dist
(
py_modules
=
[
'boiledeggs'
])
os
.
chdir
(
project_dir
)
self
.
write_file
(
'boiledeggs.py'
,
'import antigravity'
)
cmd
=
build_py
(
dist
)
cmd
.
compile
=
0
cmd
.
optimize
=
1
cmd
.
build_lib
=
'here'
cmd
.
finalize_options
()
cmd
.
run
()
found
=
os
.
listdir
(
cmd
.
build_lib
)
self
.
assertEqual
(
sorted
(
found
),
[
'__pycache__'
,
'boiledeggs.py'
])
found
=
os
.
listdir
(
os
.
path
.
join
(
cmd
.
build_lib
,
'__pycache__'
))
self
.
assertEqual
(
sorted
(
found
),
[
'boiledeggs.%s.pyo'
%
imp
.
get_tag
()])
def
test_dont_write_bytecode
(
self
):
# makes sure byte_compile is not used
pkg_dir
,
dist
=
self
.
create_dist
()
dist
=
self
.
create_dist
()[
1
]
cmd
=
build_py
(
dist
)
cmd
.
compile
=
1
cmd
.
optimize
=
1
...
...
@@ -118,6 +137,7 @@ class BuildPyTestCase(support.TempdirManager,
self
.
assertIn
(
'byte-compiling is disabled'
,
self
.
logs
[
0
][
1
])
def
test_suite
():
return
unittest
.
makeSuite
(
BuildPyTestCase
)
...
...
tests/test_install.py
View file @
08e35061
"""Tests for distutils.command.install."""
import
os
import
imp
import
sys
import
unittest
import
site
...
...
@@ -67,10 +68,7 @@ class InstallTestCase(support.TempdirManager,
check_path
(
cmd
.
install_data
,
destination
)
def
test_user_site
(
self
):
# site.USER_SITE was introduced in 2.6
if
sys
.
version
<
'2.6'
:
return
# test install with --user
# preparing the environment for the test
self
.
old_user_base
=
site
.
USER_BASE
self
.
old_user_site
=
site
.
USER_SITE
...
...
@@ -87,19 +85,17 @@ class InstallTestCase(support.TempdirManager,
self
.
old_expand
=
os
.
path
.
expanduser
os
.
path
.
expanduser
=
_expanduser
try
:
# this is the actual test
self
.
_test_user_site
()
finally
:
def
cleanup
():
site
.
USER_BASE
=
self
.
old_user_base
site
.
USER_SITE
=
self
.
old_user_site
install_module
.
USER_BASE
=
self
.
old_user_base
install_module
.
USER_SITE
=
self
.
old_user_site
os
.
path
.
expanduser
=
self
.
old_expand
def
_test_user_site
(
self
):
self
.
addCleanup
(
cleanup
)
for
key
in
(
'nt_user'
,
'unix_user'
,
'os2_home'
):
self
.
assert
True
(
key
in
INSTALL_SCHEMES
)
self
.
assert
In
(
key
,
INSTALL_SCHEMES
)
dist
=
Distribution
({
'name'
:
'xx'
})
cmd
=
install
(
dist
)
...
...
@@ -107,14 +103,14 @@ class InstallTestCase(support.TempdirManager,
# making sure the user option is there
options
=
[
name
for
name
,
short
,
lable
in
cmd
.
user_options
]
self
.
assert
True
(
'user'
in
options
)
self
.
assert
In
(
'user'
,
options
)
# setting a value
cmd
.
user
=
1
# user base and site shouldn't be created yet
self
.
assert
True
(
not
os
.
path
.
exists
(
self
.
user_base
))
self
.
assert
True
(
not
os
.
path
.
exists
(
self
.
user_site
))
self
.
assert
False
(
os
.
path
.
exists
(
self
.
user_base
))
self
.
assert
False
(
os
.
path
.
exists
(
self
.
user_site
))
# let's run finalize
cmd
.
ensure_finalized
()
...
...
@@ -123,8 +119,8 @@ class InstallTestCase(support.TempdirManager,
self
.
assertTrue
(
os
.
path
.
exists
(
self
.
user_base
))
self
.
assertTrue
(
os
.
path
.
exists
(
self
.
user_site
))
self
.
assert
True
(
'userbase'
in
cmd
.
config_vars
)
self
.
assert
True
(
'usersite'
in
cmd
.
config_vars
)
self
.
assert
In
(
'userbase'
,
cmd
.
config_vars
)
self
.
assert
In
(
'usersite'
,
cmd
.
config_vars
)
def
test_handle_extra_path
(
self
):
dist
=
Distribution
({
'name'
:
'xx'
,
'extra_path'
:
'path,dirs'
})
...
...
@@ -177,15 +173,16 @@ class InstallTestCase(support.TempdirManager,
def
test_record
(
self
):
install_dir
=
self
.
mkdtemp
()
project_dir
,
dist
=
self
.
create_dist
(
scripts
=
[
'hello'
])
self
.
addCleanup
(
os
.
chdir
,
os
.
getcwd
()
)
project_dir
,
dist
=
self
.
create_dist
(
py_modules
=
[
'hello'
],
scripts
=
[
'sayhi'
]
)
os
.
chdir
(
project_dir
)
self
.
write_file
(
'hello'
,
"print('o hai')"
)
self
.
write_file
(
'hello.py'
,
"def main(): print('o hai')"
)
self
.
write_file
(
'sayhi'
,
'from hello import main; main()'
)
cmd
=
install
(
dist
)
dist
.
command_obj
[
'install'
]
=
cmd
cmd
.
root
=
install_dir
cmd
.
record
=
os
.
path
.
join
(
project_dir
,
'
RECORD
'
)
cmd
.
record
=
os
.
path
.
join
(
project_dir
,
'
filelist
'
)
cmd
.
ensure_finalized
()
cmd
.
run
()
...
...
@@ -196,7 +193,7 @@ class InstallTestCase(support.TempdirManager,
f
.
close
()
found
=
[
os
.
path
.
basename
(
line
)
for
line
in
content
.
splitlines
()]
expected
=
[
'hello'
,
expected
=
[
'hello
.py'
,
'hello.%s.pyc'
%
imp
.
get_tag
(),
'sayhi
'
,
'UNKNOWN-0.0.0-py%s.%s.egg-info'
%
sys
.
version_info
[:
2
]]
self
.
assertEqual
(
found
,
expected
)
...
...
@@ -204,7 +201,6 @@ class InstallTestCase(support.TempdirManager,
install_dir
=
self
.
mkdtemp
()
project_dir
,
dist
=
self
.
create_dist
(
ext_modules
=
[
Extension
(
'xx'
,
[
'xxmodule.c'
])])
self
.
addCleanup
(
os
.
chdir
,
os
.
getcwd
())
os
.
chdir
(
project_dir
)
support
.
copy_xxmodule_c
(
project_dir
)
...
...
@@ -216,7 +212,7 @@ class InstallTestCase(support.TempdirManager,
dist
.
command_obj
[
'install'
]
=
cmd
dist
.
command_obj
[
'build_ext'
]
=
buildextcmd
cmd
.
root
=
install_dir
cmd
.
record
=
os
.
path
.
join
(
project_dir
,
'
RECORD
'
)
cmd
.
record
=
os
.
path
.
join
(
project_dir
,
'
filelist
'
)
cmd
.
ensure_finalized
()
cmd
.
run
()
...
...
@@ -242,6 +238,7 @@ class InstallTestCase(support.TempdirManager,
install_module
.
DEBUG
=
False
self
.
assertTrue
(
len
(
self
.
logs
)
>
old_logs_len
)
def
test_suite
():
return
unittest
.
makeSuite
(
InstallTestCase
)
...
...
tests/test_install_lib.py
View file @
08e35061
...
...
@@ -10,13 +10,14 @@ from distutils.tests import support
from
distutils.errors
import
DistutilsOptionError
from
test.support
import
run_unittest
class
InstallLibTestCase
(
support
.
TempdirManager
,
support
.
LoggingSilencer
,
support
.
EnvironGuard
,
unittest
.
TestCase
):
def
test_finalize_options
(
self
):
pkg_dir
,
dist
=
self
.
create_dist
()
dist
=
self
.
create_dist
()[
1
]
cmd
=
install_lib
(
dist
)
cmd
.
finalize_options
()
...
...
@@ -35,56 +36,62 @@ class InstallLibTestCase(support.TempdirManager,
@
unittest
.
skipIf
(
sys
.
dont_write_bytecode
,
'byte-compile disabled'
)
def
test_byte_compile
(
self
):
p
kg
_dir
,
dist
=
self
.
create_dist
()
os
.
chdir
(
p
kg
_dir
)
p
roject
_dir
,
dist
=
self
.
create_dist
()
os
.
chdir
(
p
roject
_dir
)
cmd
=
install_lib
(
dist
)
cmd
.
compile
=
cmd
.
optimize
=
1
f
=
os
.
path
.
join
(
p
kg
_dir
,
'foo.py'
)
f
=
os
.
path
.
join
(
p
roject
_dir
,
'foo.py'
)
self
.
write_file
(
f
,
'# python file'
)
cmd
.
byte_compile
([
f
])
pyc_file
=
imp
.
cache_from_source
(
'foo.py'
)
pyc_file
=
imp
.
cache_from_source
(
'foo.py'
,
debug_override
=
True
)
pyo_file
=
imp
.
cache_from_source
(
'foo.py'
,
debug_override
=
False
)
self
.
assertTrue
(
os
.
path
.
exists
(
pyc_file
))
self
.
assertTrue
(
os
.
path
.
exists
(
pyo_file
))
def
test_get_outputs
(
self
):
pkg_dir
,
dist
=
self
.
create_dist
()
project_dir
,
dist
=
self
.
create_dist
()
os
.
chdir
(
project_dir
)
os
.
mkdir
(
'spam'
)
cmd
=
install_lib
(
dist
)
# setting up a dist environment
cmd
.
compile
=
cmd
.
optimize
=
1
cmd
.
install_dir
=
pkg_dir
f
=
os
.
path
.
join
(
pkg_dir
,
'foo.py'
)
self
.
write_file
(
f
,
'# python file'
)
cmd
.
distribution
.
py_modules
=
[
pkg_dir
]
cmd
.
install_dir
=
self
.
mkdtemp
()
f
=
os
.
path
.
join
(
project_dir
,
'spam'
,
'__init__.py'
)
self
.
write_file
(
f
,
'# python package'
)
cmd
.
distribution
.
ext_modules
=
[
Extension
(
'foo'
,
[
'xxx'
])]
cmd
.
distribution
.
packages
=
[
pkg_dir
]
cmd
.
distribution
.
packages
=
[
'spam'
]
cmd
.
distribution
.
script_name
=
'setup.py'
# get_output should return 4 elements
self
.
assertTrue
(
len
(
cmd
.
get_outputs
())
>=
2
)
# get_outputs should return 4 elements: spam/__init__.py, .pyc and
# .pyo, foo.import-tag-abiflags.so / foo.pyd
outputs
=
cmd
.
get_outputs
()
self
.
assertEqual
(
len
(
outputs
),
4
,
outputs
)
def
test_get_inputs
(
self
):
pkg_dir
,
dist
=
self
.
create_dist
()
project_dir
,
dist
=
self
.
create_dist
()
os
.
chdir
(
project_dir
)
os
.
mkdir
(
'spam'
)
cmd
=
install_lib
(
dist
)
# setting up a dist environment
cmd
.
compile
=
cmd
.
optimize
=
1
cmd
.
install_dir
=
pkg_dir
f
=
os
.
path
.
join
(
pkg_dir
,
'foo.py'
)
self
.
write_file
(
f
,
'# python file'
)
cmd
.
distribution
.
py_modules
=
[
pkg_dir
]
cmd
.
install_dir
=
self
.
mkdtemp
()
f
=
os
.
path
.
join
(
project_dir
,
'spam'
,
'__init__.py'
)
self
.
write_file
(
f
,
'# python package'
)
cmd
.
distribution
.
ext_modules
=
[
Extension
(
'foo'
,
[
'xxx'
])]
cmd
.
distribution
.
packages
=
[
pkg_dir
]
cmd
.
distribution
.
packages
=
[
'spam'
]
cmd
.
distribution
.
script_name
=
'setup.py'
# get_input should return 2 elements
self
.
assertEqual
(
len
(
cmd
.
get_inputs
()),
2
)
# get_inputs should return 2 elements: spam/__init__.py and
# foo.import-tag-abiflags.so / foo.pyd
inputs
=
cmd
.
get_inputs
()
self
.
assertEqual
(
len
(
inputs
),
2
,
inputs
)
def
test_dont_write_bytecode
(
self
):
# makes sure byte_compile is not used
pkg_dir
,
dist
=
self
.
create_dist
()
dist
=
self
.
create_dist
()[
1
]
cmd
=
install_lib
(
dist
)
cmd
.
compile
=
1
cmd
.
optimize
=
1
...
...
@@ -98,6 +105,7 @@ class InstallLibTestCase(support.TempdirManager,
self
.
assertTrue
(
'byte-compiling is disabled'
in
self
.
logs
[
0
][
1
])
def
test_suite
():
return
unittest
.
makeSuite
(
InstallLibTestCase
)
...
...
tests/test_sdist.py
View file @
08e35061
...
...
@@ -288,7 +288,7 @@ class SDistTestCase(PyPIRCCommandTestCase):
# the following tests make sure there is a nice error message instead
# of a traceback when parsing an invalid manifest template
def
_
test
_template
(
self
,
content
):
def
_
check
_template
(
self
,
content
):
dist
,
cmd
=
self
.
get_cmd
()
os
.
chdir
(
self
.
tmp_dir
)
self
.
write_file
(
'MANIFEST.in'
,
content
)
...
...
@@ -299,17 +299,17 @@ class SDistTestCase(PyPIRCCommandTestCase):
self
.
assertEqual
(
len
(
warnings
),
1
)
def
test_invalid_template_unknown_command
(
self
):
self
.
_
test
_template
(
'taunt knights *'
)
self
.
_
check
_template
(
'taunt knights *'
)
def
test_invalid_template_wrong_arguments
(
self
):
# this manifest command takes one argument
self
.
_
test
_template
(
'prune'
)
self
.
_
check
_template
(
'prune'
)
@
unittest
.
skipIf
(
os
.
name
!=
'nt'
,
'test relevant for Windows only'
)
def
test_invalid_template_wrong_path
(
self
):
# on Windows, trailing slashes are not allowed
# this used to crash instead of raising a warning: #8286
self
.
_
test
_template
(
'include examples/'
)
self
.
_
check
_template
(
'include examples/'
)
@
unittest
.
skipUnless
(
ZLIB_SUPPORT
,
'Need zlib support to run'
)
def
test_get_file_list
(
self
):
...
...
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