Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
镜像
Python_Packaging_Authority
pip
提交
393ccfbc
P
pip
项目概览
镜像
/
Python_Packaging_Authority
/
pip
大约 1 年 前同步成功
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
pip
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
393ccfbc
编写于
5月 29, 2023
作者:
Р
Роман Донченко
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
test_freeze_with_setuptools: use mocks
This makes it possible to test both branches on any Python version.
上级
5dc65eab
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
41 addition
and
13 deletion
+41
-13
src/pip/_internal/commands/freeze.py
src/pip/_internal/commands/freeze.py
+14
-6
tests/functional/test_freeze.py
tests/functional/test_freeze.py
+27
-7
未找到文件。
src/pip/_internal/commands/freeze.py
浏览文件 @
393ccfbc
import
sys
from
optparse
import
Values
from
typing
import
List
from
typing
import
AbstractSet
,
List
from
pip._internal.cli
import
cmdoptions
from
pip._internal.cli.base_command
import
Command
...
...
@@ -8,10 +8,18 @@ from pip._internal.cli.status_codes import SUCCESS
from
pip._internal.operations.freeze
import
freeze
from
pip._internal.utils.compat
import
stdlib_pkgs
DEV_PKGS
=
{
"pip"
}
if
sys
.
version_info
<
(
3
,
12
):
DEV_PKGS
|=
{
"setuptools"
,
"distribute"
,
"wheel"
}
def
_should_suppress_build_backends
()
->
bool
:
return
sys
.
version_info
<
(
3
,
12
)
def
_dev_pkgs
()
->
AbstractSet
[
str
]:
pkgs
=
{
"pip"
}
if
_should_suppress_build_backends
():
pkgs
|=
{
"setuptools"
,
"distribute"
,
"wheel"
}
return
pkgs
class
FreezeCommand
(
Command
):
...
...
@@ -64,7 +72,7 @@ class FreezeCommand(Command):
action
=
"store_true"
,
help
=
(
"Do not skip these packages in the output:"
" {}"
.
format
(
", "
.
join
(
DEV_PKGS
))
" {}"
.
format
(
", "
.
join
(
_dev_pkgs
()
))
),
)
self
.
cmd_opts
.
add_option
(
...
...
@@ -80,7 +88,7 @@ class FreezeCommand(Command):
def
run
(
self
,
options
:
Values
,
args
:
List
[
str
])
->
int
:
skip
=
set
(
stdlib_pkgs
)
if
not
options
.
freeze_all
:
skip
.
update
(
DEV_PKGS
)
skip
.
update
(
_dev_pkgs
()
)
if
options
.
excludes
:
skip
.
update
(
options
.
excludes
)
...
...
tests/functional/test_freeze.py
浏览文件 @
393ccfbc
...
...
@@ -98,18 +98,38 @@ def test_freeze_with_pip(script: PipTestEnvironment) -> None:
def
test_freeze_with_setuptools
(
script
:
PipTestEnvironment
)
->
None
:
"""
Test that pip shows setuptools only when --all is used
or
Python version is >=3.12
or
_should_suppress_build_backends() returns false
"""
result
=
script
.
pip
(
"freeze"
)
if
sys
.
version_info
>=
(
3
,
12
):
assert
"setuptools=="
in
result
.
stdout
else
:
assert
"setuptools=="
not
in
result
.
stdout
result
=
script
.
pip
(
"freeze"
,
"--all"
)
assert
"setuptools=="
in
result
.
stdout
(
script
.
site_packages_path
/
"mock.pth"
).
write_text
(
"import mock
\n
"
)
(
script
.
site_packages_path
/
"mock.py"
).
write_text
(
textwrap
.
dedent
(
"""
\
import pip._internal.commands.freeze as freeze
freeze._should_suppress_build_backends = lambda: False
"""
)
)
result
=
script
.
pip
(
"freeze"
)
assert
"setuptools=="
in
result
.
stdout
(
script
.
site_packages_path
/
"mock.py"
).
write_text
(
textwrap
.
dedent
(
"""
\
import pip._internal.commands.freeze as freeze
freeze._should_suppress_build_backends = lambda: True
"""
)
)
result
=
script
.
pip
(
"freeze"
)
assert
"setuptools=="
not
in
result
.
stdout
def
test_exclude_and_normalization
(
script
:
PipTestEnvironment
,
tmpdir
:
Path
)
->
None
:
req_path
=
wheel
.
make_wheel
(
name
=
"Normalizable_Name"
,
version
=
"1.0"
).
save_to_dir
(
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录