"""TOTP two-factor: enrollment, two-step login, recovery codes, disable, CLI-style reset.""" import pyotp from tests.conftest import make_user from ten31portal.models import User, UserRole def _enroll(client): """Run the full setup+confirm flow for the signed-in user; return (secret, recovery_codes).""" setup = client.post("/api/auth/totp/setup") assert setup.status_code == 200, setup.text secret = setup.json()["secret"] assert setup.json()["qr_svg"].lstrip().startswith("