git: 3acd121ce37c - main - devel/py-tavern: new port
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 21 Sep 2026 05:32:51 UTC
The branch main has been updated by michaelo:
URL: https://cgit.FreeBSD.org/ports/commit/?id=3acd121ce37cf6835528f7304a3ebc52e57f22dc
commit 3acd121ce37cf6835528f7304a3ebc52e57f22dc
Author: Pete Diamond <lazeraman@gmail.com>
AuthorDate: 2026-09-20 02:14:52 +0000
Commit: Michael Osipov <michaelo@FreeBSD.org>
CommitDate: 2026-09-21 05:32:33 +0000
devel/py-tavern: new port
Tavern is a pytest plugin and command-line tool for automated testing of
RESTful APIs. Tests are written in YAML, describing the requests to send
and the responses to expect, so API behaviour can be verified without
writing Python code.
It also supports MQTT, GraphQL and gRPC testing through optional extras.
Co-authored-by: Michael Osipov <michaelo@FreeBSD.org>
PR: 298695
---
devel/Makefile | 1 +
devel/py-tavern/Makefile | 47 +++++++++++++++++++++++++++++++++++++++++++++++
devel/py-tavern/distinfo | 3 +++
devel/py-tavern/pkg-descr | 6 ++++++
4 files changed, 57 insertions(+)
diff --git a/devel/Makefile b/devel/Makefile
index 349290a3f122..709bb825643f 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -6316,6 +6316,7 @@
SUBDIR += py-tasklib
SUBDIR += py-tatsu
SUBDIR += py-tatsu-lts
+ SUBDIR += py-tavern
SUBDIR += py-tblib
SUBDIR += py-tdworkflow
SUBDIR += py-telepath
diff --git a/devel/py-tavern/Makefile b/devel/py-tavern/Makefile
new file mode 100644
index 000000000000..1f3f7870331e
--- /dev/null
+++ b/devel/py-tavern/Makefile
@@ -0,0 +1,47 @@
+PORTNAME= tavern
+DISTVERSION= 3.6.3
+CATEGORIES= devel python
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER= lazeraman@gmail.com
+COMMENT= Command-line tool and pytest plugin for testing RESTful APIs
+WWW= https://github.com/taverntesting/tavern
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}flit-core>=3.2:devel/py-flit-core@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}jmespath>=1:devel/py-jmespath@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}jsonschema>=4:devel/py-jsonschema@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pyjwt>=2.5.0:www/py-pyjwt@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pykwalify>=1.8.0:textproc/py-pykwalify@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytest>=8:devel/py-pytest@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}python-box>=6:devel/py-python-box@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pyyaml>=6.0.1:devel/py-pyyaml@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}requests>=2.22.0:www/py-requests@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}simpleeval>=1.0.3:devel/py-simpleeval@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}stevedore>=4:devel/py-stevedore@${PY_FLAVOR}
+
+USES= python:3.11+
+USE_PYTHON= autoplist concurrent pep517
+
+NO_ARCH= yes
+
+OPTIONS_DEFINE= GRAPHQL GRPC MQTT
+GRAPHQL_DESC= Enables GraphQL support
+GRPC_DESC= Enables gRPC support
+MQTT_DESC= Enables MQTT support
+
+GRAPHQL_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}aiohttp>=0:www/py-aiohttp@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}gql>=4.0.0:devel/py-gql@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}websockets>=0:devel/py-websockets@${PY_FLAVOR}
+GRPC_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}google-api-python-client>=0:www/py-google-api-python-client@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}grpcio-reflection>=0:devel/py-grpcio-reflection@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}grpcio-status>=0:devel/py-grpcio-status@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}grpcio>=0:devel/py-grpcio@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}proto-plus>=0:devel/py-proto-plus@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}protobuf>=5:devel/py-protobuf@${PY_FLAVOR}
+MQTT_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}paho-mqtt>=1.3.1:net/py-paho-mqtt@${PY_FLAVOR}
+
+.include <bsd.port.mk>
diff --git a/devel/py-tavern/distinfo b/devel/py-tavern/distinfo
new file mode 100644
index 000000000000..0b587eeb2379
--- /dev/null
+++ b/devel/py-tavern/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1789705831
+SHA256 (tavern-3.6.3.tar.gz) = 8c110670b8b8da40853ab4cc8fa4b959ea39d6b353a1afd1d0d25a72c334f78a
+SIZE (tavern-3.6.3.tar.gz) = 104241
diff --git a/devel/py-tavern/pkg-descr b/devel/py-tavern/pkg-descr
new file mode 100644
index 000000000000..b95fd1e2ff89
--- /dev/null
+++ b/devel/py-tavern/pkg-descr
@@ -0,0 +1,6 @@
+Tavern is a pytest plugin and command-line tool for automated testing of
+RESTful APIs. Tests are written in YAML, describing the requests to send
+and the responses to expect, so API behaviour can be verified without
+writing Python code.
+
+It also supports MQTT, GraphQL and gRPC testing through optional extras.