Skip to content

Commit

Permalink
CI: check entry points
Browse files Browse the repository at this point in the history
Fixes: fdd23e8
  • Loading branch information
pajod committed Dec 7, 2023
1 parent c3396b9 commit 611746e
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 2 deletions.
1 change: 1 addition & 0 deletions .github/workflows/tox.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,5 @@ jobs:
python -m pip install --upgrade pip
python -m pip install tox
- run: tox -e run-module
- run: tox -e run-entrypoint
- run: tox -e py
5 changes: 5 additions & 0 deletions appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@ environment:
PYTHON: "C:\\Python38-x64"
- TOXENV: pycodestyle
PYTHON: "C:\\Python38-x64"
# Windows cannot even import the module when they unconditionally import, see below.
#- TOXENV: run-module
# PYTHON: "C:\\Python38-x64"
#- TOXENV: run-entrypoint
# PYTHON: "C:\\Python38-x64"
# Windows is not ready for testing!!!
# Python's fcntl, grp, pwd, os.geteuid(), and socket.AF_UNIX are all Unix-only.
#- TOXENV: py35
Expand Down
8 changes: 8 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,14 @@ testing = [
"pytest-cov",
]

[project.scripts]
# duplicates "python -m gunicorn" handling in __main__.py
gunicorn = "gunicorn.app.wsgiapp:run"

# note the quotes around "paste.server_runner" to escape the dot
[project.entry-points."paste.server_runner"]
main = "gunicorn.app.pasterapp:serve"

[tool.pytest.ini_options]
# # can override these: python -m pytest --override-ini="addopts="
norecursedirs = ["examples", "lib", "local", "src"]
Expand Down
5 changes: 5 additions & 0 deletions requirements_dev.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
-r requirements_test.txt

# setuptools v68.0 fails hard on invalid pyproject.toml
# which a developer would want to know
# otherwise, oldest known-working version is 61.2
setuptools>=68.0

sphinx
sphinx_rtd_theme
9 changes: 7 additions & 2 deletions tox.ini
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[tox]
envlist = py{37,38,39,310,311,py3}, lint, docs-lint, pycodestyle, run-module
envlist = py{37,38,39,310,311,py3}, lint, docs-lint, pycodestyle, run-entrypoint, run-module
skipsdist = false
; Can't set skipsdist and use_develop in tox v4 to true due to https://github.com/tox-dev/tox/issues/2730

Expand All @@ -9,8 +9,13 @@ commands = pytest --cov=gunicorn {posargs}
deps =
-rrequirements_test.txt

[testenv:run-entrypoint]
# entry point: console script (provided by setuptools from pyproject.toml)
commands = python -c 'import subprocess; cmd_out = subprocess.check_output(["gunicorn", "--version"])[:79].decode("utf-8", errors="replace"); print(cmd_out); assert cmd_out.startswith("gunicorn ")'

[testenv:run-module]
commands = python3 -m gunicorn --version
# runpy (provided by module.__main__)
commands = python -c 'import sys,subprocess; cmd_out = subprocess.check_output([sys.executable, "-m", "gunicorn", "--version"])[:79].decode("utf-8", errors="replace"); print(cmd_out); assert cmd_out.startswith("gunicorn ")'

[testenv:lint]
commands =
Expand Down

0 comments on commit 611746e

Please sign in to comment.