v1
Some checks failed
CI / test (3.11) (push) Failing after 5m36s
CI / build-image (push) Has been skipped

This commit is contained in:
2025-10-22 16:48:55 +02:00
commit 4cefd4e3ab
53 changed files with 5837 additions and 0 deletions

90
tests/test_database.py Normal file
View File

@@ -0,0 +1,90 @@
import sqlite3
import importlib
import pytest
server_app_module = importlib.import_module("server.app")
# Expose app and init_db from the imported module
app = server_app_module.app
init_db = server_app_module.init_db
@pytest.fixture
def client():
with app.test_client() as client:
yield client
def test_is_postgres_enabled():
"""Test postgres detection logic."""
from server.database import is_postgres_enabled, set_postgres_override
# Test override functionality
set_postgres_override(True)
assert is_postgres_enabled()
set_postgres_override(False)
assert not is_postgres_enabled()
set_postgres_override(None) # Reset to default
def test_db_cursor_context_manager():
"""Test database cursor context manager."""
from server.database import db_cursor
with db_cursor() as (conn, cur):
assert conn is not None
assert cur is not None
# Test that we can execute a query
cur.execute("SELECT 1")
result = cur.fetchone()
assert result[0] == 1
def test_get_app_settings_empty():
"""Test getting app settings when none exist."""
from server.database import get_app_settings
settings = get_app_settings()
assert isinstance(settings, dict)
assert len(settings) == 0
def test_update_app_setting():
"""Test updating app settings."""
from server.database import update_app_setting, get_app_settings
# Update a setting
update_app_setting("test_key", "test_value")
# Verify it was saved
settings = get_app_settings()
assert settings["test_key"] == "test_value"
def test_delete_app_setting():
"""Test deleting app settings."""
from server.database import update_app_setting, delete_app_setting, get_app_settings
# Add a setting
update_app_setting("delete_test", "to_delete")
# Delete it
delete_app_setting("delete_test")
# Verify it's gone
settings = get_app_settings()
assert "delete_test" not in settings
def test_get_contacts_pagination():
"""Test contact pagination."""
from server.database import get_contacts
# Get first page
submissions, total = get_contacts(page=1, per_page=10)
assert isinstance(submissions, list)
assert isinstance(total, int)
assert total >= 0