Files
house-elo-ranking/backend/tests/test_config.py
2026-03-06 14:51:26 +00:00

54 lines
1.5 KiB
Python

"""Tests for configuration and SQL loading."""
from app.config import SQL_DIR, Settings, load_sql
class TestSettings:
"""Tests for the Settings class."""
def test_default_values(self):
s = Settings()
assert s.POSTGRES_HOST in ("localhost", s.POSTGRES_HOST)
assert s.POSTGRES_PORT == int(s.POSTGRES_PORT)
assert s.K_FACTOR > 0
assert s.DEFAULT_ELO > 0
def test_database_url_format(self):
s = Settings()
url = s.database_url
assert url.startswith("postgresql+psycopg2://")
assert str(s.POSTGRES_HOST) in url
class TestLoadSql:
"""Tests for the SQL file loader."""
def test_sql_dir_exists(self):
assert SQL_DIR.is_dir()
def test_all_sql_files_exist(self):
expected = [
"listing_select.sql",
"recent_pairs.sql",
"history.sql",
"count_comparisons.sql",
"count_rated.sql",
"count_listings.sql",
"elo_aggregates.sql",
"elo_distribution.sql",
"listing_images.sql",
]
for name in expected:
assert (SQL_DIR / name).is_file(), f"Missing SQL file: {name}"
def test_load_sql_substitutes_schemas(self):
sql = load_sql("listing_select.sql")
# Should not contain any unresolved placeholders
assert "{" not in sql
assert "}" not in sql
def test_load_sql_returns_string(self):
sql = load_sql("count_comparisons.sql")
assert isinstance(sql, str)
assert "count" in sql.lower()