Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ jobs:
- Windows
- macOS
python-version:
- "3.12"
- "3.11"
- "3.10"
- "3.9"
Expand Down
7 changes: 4 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,11 @@ classifiers = [
"Operating System :: OS Independent",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
"Programming Language :: Python",
Expand All @@ -37,7 +38,7 @@ keywords = ["pip", "requirements", "packaging"]
dependencies = [
# direct dependencies
"build >= 1.0.0",
"click >= 8",
"click >= 8, < 8.2",
"pip >= 22.2",
"pyproject_hooks",
"tomli; python_version < '3.11'",
Expand Down
3 changes: 2 additions & 1 deletion tests/test_cli_compile.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import hashlib
import os
import pathlib
import re
import shutil
import subprocess
import sys
Expand Down Expand Up @@ -2664,7 +2665,7 @@ def test_error_in_pyproject_toml(
captured = capfd.readouterr()

assert (
"`project` must contain ['name'] properties" in captured.err
bool(re.search(r"`project` must contain \['[^']+'\] properties", captured.err))
) is verbose_option


Expand Down
7 changes: 6 additions & 1 deletion tests/test_cli_sync.py
Original file line number Diff line number Diff line change
Expand Up @@ -333,7 +333,12 @@ def test_invalid_pip_version_in_python_executable(
with open(sync.DEFAULT_REQUIREMENTS_FILE, "w") as req_in:
req_in.write("small-fake-a==1.10.0")

custom_executable = tmp_path / "custom_executable"
# a dummy executable on Windows needs to end in `.exe` in order for
# `shutil.which` to find it
executable_name = (
"custom_executable.exe" if os.name == "nt" else "custom_executable"
)
custom_executable = tmp_path / executable_name
custom_executable.write_text("")

custom_executable.chmod(0o700)
Expand Down
12 changes: 9 additions & 3 deletions tests/test_sync.py
Original file line number Diff line number Diff line change
Expand Up @@ -168,13 +168,19 @@ def test_diff_should_not_uninstall(fake_dist):
"pip-tools==1.1.1",
"pip-review==1.1.1",
"pkg-resources==0.0.0",
"setuptools==34.0.0",
"wheel==0.29.0",
"python==3.0",
"distribute==0.1",
"wsgiref==0.1",
"argparse==0.1",
)
# on Python 3.12 and above, `ensurepip` and `venv` do not default to installing
# 'setuptools' -- as such, `pip` changes behavior on many Python 3.12 environments
# to use isolated builds
if sys.version_info < (3, 12):
ignored += (
"setuptools==34.0.0",
"wheel==0.29.0",
"distribute==0.1",
)
installed = [fake_dist(pkg) for pkg in ignored]
reqs = []

Expand Down
6 changes: 5 additions & 1 deletion tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,11 @@ extras =
coverage: coverage
deps =
pipsupported: pip==24.2
piplowest: pip==22.2.*
pipsupported: setuptools <= 75.8.2

piplowest: pip == 22.2.* ; python_version < "3.12"
piplowest: pip == 23.2.* ; python_version >= "3.12"

piplatest: pip
pipmain: https://github.com/pypa/pip/archive/main.zip
setenv =
Expand Down
Loading