import os
from collections.abc import Generator

import psycopg
import pytest

# テスト実行時にPowerToolsのトレースを無効化
os.environ.setdefault("POWERTOOLS_TRACE_DISABLED", "true")
# テスト環境ではX-Rayソケットの初期化を無効化
os.environ.setdefault("AWS_XRAY_SDK_ENABLED", "false")
# ローカルDB接続情報
os.environ.setdefault("APPLICATION_LOG_LEVEL", "debug")
os.environ.setdefault("STAGE", "test")


@pytest.fixture
def db_connection() -> Generator[psycopg.Connection, None, None]:
    with (
        psycopg.connect(
            host=os.environ["POSTGRES_HOST"],
            port=os.environ["POSTGRES_PORT"],
            user=os.environ["POSTGRES_USER"],
            password=os.environ["POSTGRES_PASSWORD"],
            dbname=os.environ["POSTGRES_DB"],
            autocommit=True,
        ) as connection,
        connection.transaction(force_rollback=True),
    ):
        yield connection
