feat: refactor project

This commit is contained in:
Stijnvandenbroek
2026-03-06 14:51:26 +00:00
parent c908d96921
commit 535a09fd75
28 changed files with 1136 additions and 51 deletions

View File

@@ -0,0 +1,53 @@
"""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()