import os from fastapi.testclient import TestClient from tensorus.api import app def test_security_headers_default(monkeypatch): monkeypatch.delenv("TENSORUS_X_FRAME_OPTIONS", raising=False) monkeypatch.delenv("TENSORUS_CONTENT_SECURITY_POLICY", raising=False) with TestClient(app) as client: resp = client.get("/") assert resp.headers.get("X-Frame-Options") == "SAMEORIGIN" assert resp.headers.get("Content-Security-Policy") == "default-src 'self'" def test_security_headers_custom(monkeypatch): monkeypatch.setenv("TENSORUS_X_FRAME_OPTIONS", "ALLOW-FROM https://example.com") policy = "default-src 'self'; script-src 'self' https://cdn.example.com" monkeypatch.setenv("TENSORUS_CONTENT_SECURITY_POLICY", policy) with TestClient(app) as client: resp = client.get("/") assert resp.headers["X-Frame-Options"] == "ALLOW-FROM https://example.com" assert resp.headers["Content-Security-Policy"] == policy def test_security_headers_omitted(monkeypatch): monkeypatch.setenv("TENSORUS_X_FRAME_OPTIONS", "NONE") monkeypatch.setenv("TENSORUS_CONTENT_SECURITY_POLICY", "") with TestClient(app) as client: resp = client.get("/") assert "X-Frame-Options" not in resp.headers assert "Content-Security-Policy" not in resp.headers