"""Утилиты по цепочке теста (попытки/версии).""" from __future__ import annotations from sqlalchemy import text def has_any_attempt_for_test(conn, test_id: str) -> bool: """`conn` может быть Connection или Engine — обе поддерживают .execute().""" row = conn.execute( text( """ SELECT EXISTS ( SELECT 1 FROM test_attempts ta INNER JOIN test_versions tv ON ta.test_version_id = tv.id WHERE tv.test_id = :test_id ) AS has_any """ ), {'test_id': test_id}, ).first() return bool(row[0])