fix(tests): fix two failing tests - missing DB table and MagicMock IP address

- tests/test_database.py: add user_imap_accounts table to the regression
  test's initial DB setup (migration 022 creates it before rev 026, so it
  must exist for migration 032's ALTER TABLE to succeed)
- tests/test_local_auth.py: configure mock_request.headers.get to return
  None and client=None so get_client_ip() returns "unknown" instead of an
  un-serialisable MagicMock that broke the audit_logs INSERT in
  test_local_login_success and test_local_login_by_email

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-03-12 10:49:49 +00:00
parent 8060a79b9c
commit be6b49c872
2 changed files with 20 additions and 0 deletions
+16
View File
@@ -182,6 +182,22 @@ class TestInitDb:
"UNIQUE (user_id, name))"
)
)
# user_imap_accounts was created by migration 022 and must exist
# before migration 032 (ALTER TABLE ... ADD COLUMN) can run.
conn.execute(
text(
"CREATE TABLE user_imap_accounts ("
"id INTEGER PRIMARY KEY, owner_id VARCHAR NOT NULL, "
"name VARCHAR(255) NOT NULL, host VARCHAR(255) NOT NULL, "
"port INTEGER NOT NULL DEFAULT 993, username VARCHAR(255) NOT NULL, "
"password VARCHAR(1024) NOT NULL, use_ssl BOOLEAN NOT NULL DEFAULT 1, "
"delete_after_process BOOLEAN NOT NULL DEFAULT 0, "
"is_active BOOLEAN NOT NULL DEFAULT 1, "
"last_checked_at DATETIME, last_error TEXT, "
"created_at DATETIME DEFAULT CURRENT_TIMESTAMP, "
"updated_at DATETIME DEFAULT CURRENT_TIMESTAMP)"
)
)
conn.execute(text("CREATE TABLE alembic_version (version_num VARCHAR(32) NOT NULL)"))
conn.execute(text("INSERT INTO alembic_version VALUES ('026_add_scheduled_jobs')"))
+4
View File
@@ -613,6 +613,8 @@ async def test_local_login_success(la_session, active_user):
mock_request = MagicMock(spec=Request)
mock_request.form = AsyncMock(return_value={"username": "activeuser", "password": "password123"})
mock_request.session = {}
mock_request.headers.get.return_value = None
mock_request.client = None
result = await auth(mock_request, db=la_session)
assert result.status_code == 302
@@ -634,6 +636,8 @@ async def test_local_login_by_email(la_session, active_user):
mock_request = MagicMock(spec=Request)
mock_request.form = AsyncMock(return_value={"username": "active@example.com", "password": "password123"})
mock_request.session = {}
mock_request.headers.get.return_value = None
mock_request.client = None
result = await auth(mock_request, db=la_session)
assert result.status_code == 302