furtka-gateway/tests/conftest.py
Robert Syrnicki 3a9d18fcd5 Scaffold gateway stack and single-tenant control plane
wg-easy + Traefik docker-compose stack (Phase 1) plus a stdlib-only
control-plane API for box registration, WireGuard peer provisioning via
wg-easy, and per-box route publish/unpublish backed by Traefik's file
provider (Phase 2, single-tenant mode). SQLite holds accounts/boxes/routes
so a later multi-tenant shared instance is the same schema with more rows,
not a reshape.

wg-easy's actual REST API was verified against its source rather than
assumed: it has no bearer-token auth (session-cookie login via
POST /api/auth/password) and no way to accept an externally-generated
public key (it always mints the keypair itself, private key included) —
both corrected from the original plan during implementation.
2026-08-24 11:50:25 +02:00

13 lines
494 B
Python

import pytest
@pytest.fixture
def gateway_paths(tmp_path, monkeypatch):
"""Redirect GATEWAY_STATE_DIR/GATEWAY_DYNAMIC_DIR to tmp_path, the same
env-var-override convention furtka-core's own tests use via FURTKA_*.
"""
state_dir = tmp_path / "state"
dynamic_dir = tmp_path / "dynamic"
monkeypatch.setenv("GATEWAY_STATE_DIR", str(state_dir))
monkeypatch.setenv("GATEWAY_DYNAMIC_DIR", str(dynamic_dir))
return {"state_dir": state_dir, "dynamic_dir": dynamic_dir}