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