wiregui/pyproject.toml
Stefano Bertelli 3bf6fabcff
Some checks failed
CI / test (push) Failing after 1m52s
CI / release (push) Has been skipped
CI / docker (push) Has been skipped
feat: IdP provisioning from YAML file + Playwright e2e tests
Add WG_IDP_CONFIG_FILE env var to seed OIDC/SAML identity providers
from a YAML file at startup, enabling GitOps and IaC workflows.
Providers are upserted by id (merge strategy preserves manual additions).

Convert all e2e tests from NiceGUI User fixture to Playwright async API
with --headed and --slowmo flags for visual debugging. Add full OIDC
login flow test against the mock-oidc service.
2026-03-31 14:23:31 -05:00

57 lines
1.3 KiB
TOML

[project]
name = "wiregui"
version = "0.1.0"
description = "WireGuard VPN management platform — Python/NiceGUI rewrite of Wirezone"
readme = "README.md"
license = "AGPL-3.0-or-later"
requires-python = ">=3.13"
dependencies = [
# UI
"nicegui>=2.12",
# ORM & Database
"sqlmodel>=0.0.22",
"asyncpg>=0.30",
"alembic>=1.14",
# Configuration
"pydantic-settings>=2.7",
# Cache
"redis>=5.2",
# Encryption
"cryptography>=44",
# Auth
"bcrypt>=4.0",
"python-jose[cryptography]>=3.3",
"authlib>=1.4",
"pyotp>=2.9",
"webauthn>=2.2",
"python3-saml>=1.16",
# HTTP client
"httpx>=0.28",
# Email
"aiosmtplib>=3.0",
# QR codes
"qrcode[pil]>=8.0",
# YAML config
"pyyaml>=6.0",
# Logging
"loguru>=0.7.3",
]
[dependency-groups]
dev = [
"playwright>=1.58.0",
"pytest>=8.0",
"pytest-asyncio>=0.24",
"pytest-cov>=7.1.0",
"respx>=0.22.0",
]
[tool.pytest.ini_options]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "session"
asyncio_default_test_loop_scope = "session"
testpaths = ["tests"]
# E2E tests run separately: uv run pytest tests/e2e/
# NiceGUI's testing plugin conflicts with unit tests when loaded together
addopts = "--ignore=tests/e2e"
main_file = "wiregui/main.py"