v1
This commit is contained in:
90
tests/test_database.py
Normal file
90
tests/test_database.py
Normal 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
|
||||
Reference in New Issue
Block a user