summaryrefslogtreecommitdiff
path: root/pyproject.toml
diff options
context:
space:
mode:
authorRoberto Bertó <463349+robertoberto@users.noreply.github.com>2026-05-19 06:05:43 +0000
committerRoberto Bertó <463349+robertoberto@users.noreply.github.com>2026-05-19 06:05:43 +0000
commitbfcaffe9c55b687038eab337a718ea0a43f5e668 (patch)
tree10bf25a4d67a3809a185a7a0aef99fbd3da3e535 /pyproject.toml
parentc5a2ae114835791de16c5b982632569377c39bfa (diff)
downloadpyvyos-bfcaffe9c55b687038eab337a718ea0a43f5e668.tar.gz
pyvyos-bfcaffe9c55b687038eab337a718ea0a43f5e668.zip
tests: add live VyOS e2e harness on Proxmox
Adds an opt-in end-to-end harness that runs pyvyos against a real VyOS HTTPS API on a Proxmox VE host. tests/pve/ shell-based VM lifecycle on a remote PVE host: preflight, ensure-template (state-machine over the VMID with manual-install phase 1 and cloud-init phase 2), create/start/stop/destroy, run-e2e. Cloud-init seed ISO is generated on the PVE host itself; nothing local-side beyond ssh is required. .env is gitignored; .env.example documents the full set of variables. tests/e2e/ pytest suite that exercises the public methods most likely to regress on a payload change: show, retrieve_show_config, configure_set / retrieve_return_values / configure_delete round trip, and configure_multiple_op batch. Auto-skipped unless PYVYOS_E2E=1. The cloud-init template now sets 'service https api rest' before the API key. Without that flag VyOS only exposes /info; the other HTTPS routes return 404. README and tests/pve/README document the requirement, both for cloud-init and for the manual-fallback path. Also fixes a pre-existing footgun in pyproject.toml: the pytest-env defaults overwrote VYDEVICE_HOSTNAME from the shell, which made the e2e tests silently aim at the stale 192.168.56.100 fixture host. The entries now use the 'D:' (default) prefix so live runs can override from the environment as expected. Validated against VyOS rolling 2026.05.18-0045: 4 e2e + 57 unit tests pass. This commit does not change pyvyos HTTP payloads, request handling, or response parsing.
Diffstat (limited to 'pyproject.toml')
-rw-r--r--pyproject.toml11
1 files changed, 6 insertions, 5 deletions
diff --git a/pyproject.toml b/pyproject.toml
index b266351..5c3885a 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -28,6 +28,7 @@ classifiers = [
"Typing :: Typed",
]
dependencies = [
+ "pytest>=9.0.3",
"requests>=2.32.0,<3.0",
]
@@ -56,11 +57,11 @@ filterwarnings = [
"ignore::DeprecationWarning:ast",
]
env = [
- "VYDEVICE_APIKEY='api_key'",
- "VYDEVICE_HOSTNAME=192.168.56.100",
- "VYDEVICE_PORT=443",
- "VYDEVICE_PROTOCOL=https",
- "VYDEVICE_VERIFY_SSL=False",
+ "D:VYDEVICE_APIKEY=api_key",
+ "D:VYDEVICE_HOSTNAME=192.168.56.100",
+ "D:VYDEVICE_PORT=443",
+ "D:VYDEVICE_PROTOCOL=https",
+ "D:VYDEVICE_VERIFY_SSL=False",
]
[tool.coverage.run]