Files
2026-02-23 13:25:17 +10:30

1.2 KiB

Manual TOTP Reset for Testing

Since Bob has TOTP enabled, you have two options to run the full test:

Option 1: Restart Flask Server (Easiest)

The Flask server running on port 8888 uses an in-memory SQLite database. Simply restart it to clear all data:

# Stop the server (Ctrl+C in the terminal)
# Then restart it
cd gatehouse-api
.venv/bin/flask run --debug --port 8888

Then run the test:

.venv/bin/python test_totp_full.py

Option 2: Use the TOTP Secret

If you have the secret from the previous enrollment (check .totp_test_data.json if it exists):

  1. Edit test_totp_full.py
  2. Update the test_data initialization:
test_data = {
    "secret": "YOUR_SECRET_HERE",  # From previous enrollment
    "backup_codes": ["CODE1", "CODE2", ...],  # From previous enrollment
    "last_run": None
}
  1. Run the test

Option 3: Database Direct Access (if file-based DB)

If using PostgreSQL or file-based SQLite:

DELETE FROM authentication_methods 
WHERE user_id = (SELECT id FROM users WHERE email = 'bob@acme-corp.com') 
  AND method_type = 'totp';

The test will then run through the complete flow and save the new secret/codes to .totp_test_data.json for subsequent runs.