Skip to content

Commit

Permalink
devel/py-pytest4: preserve 4.x version of devel/py-pytest
Browse files Browse the repository at this point in the history
- Preserve 4.x version of pytest for the ports which are not
  compatible with pytest 6.x. This is a prerequisite for updating
  pytest.

PR:		256624
Approved by:	maintainer timeout (python@, many months)
  • Loading branch information
AMDmi3 committed Mar 18, 2022
1 parent 061c21c commit 7db0553
Show file tree
Hide file tree
Showing 6 changed files with 90 additions and 0 deletions.
1 change: 1 addition & 0 deletions devel/Makefile
Expand Up @@ -5115,6 +5115,7 @@
SUBDIR += py-pytest-virtualenv
SUBDIR += py-pytest-xdist
SUBDIR += py-pytest-xprocess
SUBDIR += py-pytest4
SUBDIR += py-python-Levenshtein
SUBDIR += py-python-application
SUBDIR += py-python-bugzilla
Expand Down
2 changes: 2 additions & 0 deletions devel/py-pytest/Makefile
Expand Up @@ -11,6 +11,8 @@ COMMENT= Simple powerful testing with Python
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE

CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}pytest4

BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools_scm>=0:devel/py-setuptools_scm@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}atomicwrites>=1.0:devel/py-atomicwrites@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}attrs>=17.4.0:devel/py-attrs@${PY_FLAVOR} \
Expand Down
61 changes: 61 additions & 0 deletions devel/py-pytest4/Makefile
@@ -0,0 +1,61 @@
PORTNAME= pytest
PORTVERSION= 4.6.11
PORTEPOCH= 1
CATEGORIES= devel python
MASTER_SITES= CHEESESHOP
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
PKGNAMESUFFIX= 4

MAINTAINER= python@FreeBSD.org
COMMENT= Simple powerful testing with Python (legacy version 4)

LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE

CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}pytest

BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools_scm>=0:devel/py-setuptools_scm@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}atomicwrites>=1.0:devel/py-atomicwrites@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}attrs>=17.4.0:devel/py-attrs@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}more-itertools>=4.0.0:devel/py-more-itertools@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}packaging>=0:devel/py-packaging@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pluggy>=0.12<1.0:devel/py-pluggy@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}py>=1.5.0:devel/py-py@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}six>=1.10.0:devel/py-six@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}wcwidth>=0:devel/py-wcwidth@${PY_FLAVOR}
TEST_DEPENDS= bash:shells/bash \
lsof:sysutils/lsof \
${PYTHON_PKGNAMEPREFIX}argcomplete>=0:devel/py-argcomplete@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}decorator>=0:devel/py-decorator@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}hypothesis>=3.56:devel/py-hypothesis@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}Jinja2>=0:devel/py-Jinja2@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}mock>=0:devel/py-mock@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}nose>=0:devel/py-nose@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}numpy>=0,1:math/py-numpy@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pexpect>=0:misc/py-pexpect@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pytest>=0:devel/py-pytest@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pytest-xdist>=1.13:devel/py-pytest-xdist@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests>=0:www/py-requests@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}twisted>=0:devel/py-twisted@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}unittest2>=0:devel/py-unittest2@${PY_FLAVOR}

USES= python:3.6+
USE_PYTHON= autoplist concurrent distutils

NO_ARCH= yes

.include <bsd.port.pre.mk>

.if ${PYTHON_REL} < 30800
RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}importlib-metadata>=0.12:devel/py-importlib-metadata@${PY_FLAVOR}
.endif

post-patch:
@${REINPLACE_CMD} -e 's|%%PYTHON_CMD%%|${PYTHON_CMD}|' ${WRKSRC}/testing/test_parseopt.py

# test_cache_failure_warns fails
# https://github.com/pytest-dev/pytest/issues/1845
do-test:
cd ${WRKSRC} && ${PYTHON_CMD} -m pytest -v -rs -k 'not test_cache_failure_warns'

.include <bsd.port.post.mk>
3 changes: 3 additions & 0 deletions devel/py-pytest4/distinfo
@@ -0,0 +1,3 @@
TIMESTAMP = 1620405525
SHA256 (pytest-4.6.11.tar.gz) = 50fa82392f2120cc3ec2ca0a75ee615be4c479e66669789771f1758332be4353
SIZE (pytest-4.6.11.tar.gz) = 952305
11 changes: 11 additions & 0 deletions devel/py-pytest4/files/patch-testing-test_parseopt.py
@@ -0,0 +1,11 @@
--- testing/test_parseopt.py.orig 2020-06-05 12:09:03 UTC
+++ testing/test_parseopt.py
@@ -305,7 +305,7 @@ def test_argcomplete(testdir, monkeypatch):
# redirect output from argcomplete to stdin and stderr is not trivial
# http://stackoverflow.com/q/12589419/1307905
# so we use bash
- fp.write('COMP_WORDBREAKS="$COMP_WORDBREAKS" python -m pytest 8>&1 9>&2')
+ fp.write('COMP_WORDBREAKS="$COMP_WORDBREAKS" %%PYTHON_CMD%% -m pytest 8>&1 9>&2')
# alternative would be exteneded Testdir.{run(),_run(),popen()} to be able
# to handle a keyword argument env that replaces os.environ in popen or
# extends the copy, advantage: could not forget to restore
12 changes: 12 additions & 0 deletions devel/py-pytest4/pkg-descr
@@ -0,0 +1,12 @@
The pytest testing tool makes it easy to write small tests, yet scales to
support complex functional testing.

Features:

* Detailed info on failing assert statements
* Auto-discovery of test modules and functions
* Modular fixtures to manage small or parametrized long-lived test resources
* Can run unittest (or trial), nose test suites out of the box
* Rich plugin architecture, with over 315+ external plugins

WWW: https://docs.pytest.org/en/latest/

0 comments on commit 7db0553

Please sign in to comment.