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:
@@ -182,6 +182,22 @@ class TestInitDb:
|
|||||||
"UNIQUE (user_id, name))"
|
"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("CREATE TABLE alembic_version (version_num VARCHAR(32) NOT NULL)"))
|
||||||
conn.execute(text("INSERT INTO alembic_version VALUES ('026_add_scheduled_jobs')"))
|
conn.execute(text("INSERT INTO alembic_version VALUES ('026_add_scheduled_jobs')"))
|
||||||
|
|
||||||
|
|||||||
@@ -613,6 +613,8 @@ async def test_local_login_success(la_session, active_user):
|
|||||||
mock_request = MagicMock(spec=Request)
|
mock_request = MagicMock(spec=Request)
|
||||||
mock_request.form = AsyncMock(return_value={"username": "activeuser", "password": "password123"})
|
mock_request.form = AsyncMock(return_value={"username": "activeuser", "password": "password123"})
|
||||||
mock_request.session = {}
|
mock_request.session = {}
|
||||||
|
mock_request.headers.get.return_value = None
|
||||||
|
mock_request.client = None
|
||||||
|
|
||||||
result = await auth(mock_request, db=la_session)
|
result = await auth(mock_request, db=la_session)
|
||||||
assert result.status_code == 302
|
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 = MagicMock(spec=Request)
|
||||||
mock_request.form = AsyncMock(return_value={"username": "active@example.com", "password": "password123"})
|
mock_request.form = AsyncMock(return_value={"username": "active@example.com", "password": "password123"})
|
||||||
mock_request.session = {}
|
mock_request.session = {}
|
||||||
|
mock_request.headers.get.return_value = None
|
||||||
|
mock_request.client = None
|
||||||
|
|
||||||
result = await auth(mock_request, db=la_session)
|
result = await auth(mock_request, db=la_session)
|
||||||
assert result.status_code == 302
|
assert result.status_code == 302
|
||||||
|
|||||||
Reference in New Issue
Block a user