From 382bf2334a9c7b8496c92726886e551fcc525bf7 Mon Sep 17 00:00:00 2001 From: Jonas Linter Date: Mon, 29 Sep 2025 14:09:31 +0200 Subject: [PATCH] fixed up the testing function --- output.xml | 2 +- src/alpine_bits_python/main.py | 31 +++++++++++++++++++++++++++---- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/output.xml b/output.xml index a028448..693da90 100644 --- a/output.xml +++ b/output.xml @@ -1,7 +1,7 @@ - + diff --git a/src/alpine_bits_python/main.py b/src/alpine_bits_python/main.py index c5f203d..bd06e9e 100644 --- a/src/alpine_bits_python/main.py +++ b/src/alpine_bits_python/main.py @@ -1,3 +1,4 @@ +import logging from .alpinebits_guestrequests import ResGuest, RoomStay from .generated import alpinebits as ab from io import BytesIO @@ -20,20 +21,40 @@ from .simplified_access import ( # DB and config from .db import ( + Base, Customer as DBCustomer, Reservation as DBReservation, HashedCustomer, - get_async_session, + get_database_url, ) from .config_loader import load_config import hashlib import json import os - +from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession, async_sessionmaker import asyncio from alpine_bits_python import db +# Configure logging +logging.basicConfig(level=logging.INFO) +_LOGGER = logging.getLogger(__name__) + + + +async def setup_db(config): + DATABASE_URL = get_database_url(config) + engine = create_async_engine(DATABASE_URL, echo=True) + AsyncSessionLocal = async_sessionmaker(engine, expire_on_commit=False) + + # Create tables + async with engine.begin() as conn: + await conn.run_sync(Base.metadata.create_all) + _LOGGER.info("Database tables checked/created at startup.") + + return engine, AsyncSessionLocal + + async def main(): print("🚀 Starting AlpineBits XML generation script...") @@ -58,12 +79,14 @@ async def main(): print(f"Deleted existing SQLite DB at {db_path} for clean testing.") # # Ensure DB schema is created (async) - from .db import engine, Base + + + engine, AsyncSessionLocal = await setup_db(config) async with engine.begin() as conn: await conn.run_sync(Base.metadata.create_all) - async for db in get_async_session(): + async with AsyncSessionLocal() as db: # Load data from JSON file json_path = os.path.join( os.path.dirname(__file__),