blob: 62e435270cbde84b7655acccecd4d8d1883bff1a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
# handle testing with pytest
#
# Feature: pytest
# Usage: USES=pytest[:4]
#
# It implies USES=python:test automatically if no USES=python has been
# specified yet
#
# It provides the following additional variables to set by the ports:
#
# PYTEST_ARGS additional args to pytest (defaults to empty).
# PYTEST_IGNORED_TESTS lists of `pytest -k` patterns of tests to ignore
# (defaults to empty). For tests which are not
# expected to pass, such as ones requiring a database
# access.
# PYTEST_BROKEN_TESTS lists of `pytest -k` patterns of tests to ignore
# (defaults to empty). For broken tests which require
# fixing.
#
# The following variables may be set by the user:
#
# PYTEST_ENABLE_IGNORED_TESTS enable tests which are otherwise ignored by
# PYTEST_IGNORED_TESTS.
# PYTEST_ENABLE_BROKEN_TESTS enable tests which are otherwise ignored by
# PYTEST_BROKEN_TESTS.
# PYTEST_ENABLE_ALL_TESTS enable tests which are otherwise ignored by
# PYTEST_IGNORED_TESTS and PYTEST_BROKEN_TESTS.
#
# MAINTAINER: amdmi3@FreeBSD.org
.if !defined(_INCLUDE_USES_PYTEST_MK)
_INCLUDE_USES_PYTEST_MK= yes
. if !${USES:Mpython*}
python_ARGS= test
. include "${USESDIR}/python.mk"
. endif
. if empty(pytest_ARGS)
TEST_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}pytest>=0:devel/py-pytest@${PY_FLAVOR}
. elif ${pytest_ARGS} == "4"
TEST_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}pytest4>=0:devel/py-pytest4@${PY_FLAVOR}
. else
IGNORE= Incorrect 'USES+=pytest:${pytest_ARGS}' expecting 'USES+=pytest[:4]'
. endif
PYTEST_IGNORED_TESTS?= # empty
PYTEST_BROKEN_TESTS?= # empty
PYTEST_ARGS?= # empty
_PYTEST_ALL_IGNORED_TESTS?= # empty
. if !defined(PYTEST_ENABLE_IGNORED_TESTS) && !defined(PYTEST_ENABLE_ALL_TESTS)
_PYTEST_ALL_IGNORED_TESTS+= ${PYTEST_IGNORED_TESTS}
. endif
. if !defined(PYTEST_ENABLE_BROKEN_TESTS) && !defined(PYTEST_ENABLE_ALL_TESTS)
_PYTEST_ALL_IGNORED_TESTS+= ${PYTEST_BROKEN_TESTS}
. endif
_PYTEST_FILTER_EXPRESSION= ${_PYTEST_ALL_IGNORED_TESTS:C/^(.)/and not \1/:tW:C/^and //}
. if !target(do-test)
do-test:
@cd ${TEST_WRKSRC} && ${SETENV} ${TEST_ENV} ${PYTHON_CMD} -m pytest \
-k '${_PYTEST_FILTER_EXPRESSION}' \
-v -rs -o addopts= \
${PYTEST_ARGS}
. endif
.endif
|