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
21fe162a
Commit
21fe162a
authored
Nov 03, 2011
by
Éric Araujo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
More fixes for PEP 3147 compliance in distutils (#11254)
parent
489ea5a9
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
95 additions
and
60 deletions
+95
-60
command/build_py.py
command/build_py.py
+6
-3
command/install_lib.py
command/install_lib.py
+5
-2
tests/test_build_py.py
tests/test_build_py.py
+46
-26
tests/test_install.py
tests/test_install.py
+8
-7
tests/test_install_lib.py
tests/test_install_lib.py
+30
-22
No files found.
command/build_py.py
View file @
21fe162a
...
...
@@ -2,7 +2,8 @@
Implements the Distutils 'build_py' command."""
import
sys
,
os
import
os
import
imp
import
sys
from
glob
import
glob
...
...
@@ -311,9 +312,11 @@ class build_py (Command):
outputs
.
append
(
filename
)
if
include_bytecode
:
if
self
.
compile
:
outputs
.
append
(
filename
+
"c"
)
outputs
.
append
(
imp
.
cache_from_source
(
filename
,
debug_override
=
True
))
if
self
.
optimize
>
0
:
outputs
.
append
(
filename
+
"o"
)
outputs
.
append
(
imp
.
cache_from_source
(
filename
,
debug_override
=
False
))
outputs
+=
[
os
.
path
.
join
(
build_dir
,
filename
)
...
...
command/install_lib.py
View file @
21fe162a
...
...
@@ -4,6 +4,7 @@ Implements the Distutils 'install_lib' command
(install all Python modules)."""
import
os
import
imp
import
sys
from
distutils.core
import
Command
...
...
@@ -164,9 +165,11 @@ class install_lib(Command):
if
ext
!=
PYTHON_SOURCE_EXTENSION
:
continue
if
self
.
compile
:
bytecode_files
.
append
(
py_file
+
"c"
)
bytecode_files
.
append
(
imp
.
cache_from_source
(
py_file
,
debug_override
=
True
))
if
self
.
optimize
>
0
:
bytecode_files
.
append
(
py_file
+
"o"
)
bytecode_files
.
append
(
imp
.
cache_from_source
(
py_file
,
debug_override
=
False
))
return
bytecode_files
...
...
tests/test_build_py.py
View file @
21fe162a
...
...
@@ -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,30 +75,55 @@ class BuildPyTestCase(support.TempdirManager,
open
(
os
.
path
.
join
(
testdir
,
"testfile"
),
"w"
).
close
()
os
.
chdir
(
sources
)
old_stdout
=
sys
.
stdout
sys
.
stdout
=
io
.
StringIO
()
dist
=
Distribution
({
"packages"
:
[
"pkg"
],
"package_dir"
:
{
"pkg"
:
""
},
"package_data"
:
{
"pkg"
:
[
"doc/*"
]}})
# script_name need not exist, it just need to be initialized
dist
.
script_name
=
os
.
path
.
join
(
sources
,
"setup.py"
)
dist
.
script_args
=
[
"build"
]
dist
.
parse_command_line
()
try
:
dist
=
Distribution
({
"packages"
:
[
"pkg"
],
"package_dir"
:
{
"pkg"
:
""
},
"package_data"
:
{
"pkg"
:
[
"doc/*"
]}})
# script_name need not exist, it just need to be initialized
dist
.
script_name
=
os
.
path
.
join
(
sources
,
"setup.py"
)
dist
.
script_args
=
[
"build"
]
dist
.
parse_command_line
()
try
:
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
dist
.
run_commands
()
except
DistutilsFileError
:
self
.
fail
(
"failed package_data test when package_dir is ''"
)
@
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 @
21fe162a
"""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
...
...
@@ -175,9 +173,11 @@ class InstallTestCase(support.TempdirManager,
def
test_record
(
self
):
install_dir
=
self
.
mkdtemp
()
project_dir
,
dist
=
self
.
create_dist
(
scripts
=
[
'hello'
])
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
...
...
@@ -193,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
)
...
...
@@ -238,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 @
21fe162a
...
...
@@ -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
)
...
...
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