from typing import TYPE_CHECKING import pytest from jb.managers import Permission from generalresearchutils.pg_helper import PostgresConfig if TYPE_CHECKING: from jb.managers.hit import HitQuestionManager, HitTypeManager, HitManager from jb.managers.assignment import AssignmentManager from jb.managers.bonus import BonusManager # --- Managers --- @pytest.fixture(scope="session") def hqm(pg_config: PostgresConfig) -> "HitQuestionManager": assert ( pg_config.dsn.path and "/unittest-" in pg_config.dsn.path ), "pg_config must point to a unittest database (dsn path must contain '/unittest-')" from jb.managers.hit import HitQuestionManager return HitQuestionManager( pg_config=pg_config, permissions=[Permission.READ, Permission.CREATE] ) @pytest.fixture(scope="session") def htm(pg_config: PostgresConfig) -> "HitTypeManager": assert ( pg_config.dsn.path and "/unittest-" in pg_config.dsn.path ), "pg_config must point to a unittest database (dsn path must contain '/unittest-')" from jb.managers.hit import HitTypeManager return HitTypeManager( pg_config=pg_config, permissions=[Permission.READ, Permission.CREATE] ) @pytest.fixture(scope="session") def hm(pg_config: PostgresConfig) -> "HitManager": assert ( pg_config.dsn.path and "/unittest-" in pg_config.dsn.path ), "pg_config must point to a unittest database (dsn path must contain '/unittest-')" from jb.managers.hit import HitManager return HitManager( pg_config=pg_config, permissions=[Permission.READ, Permission.CREATE] ) @pytest.fixture(scope="session") def am(pg_config: PostgresConfig) -> "AssignmentManager": assert ( pg_config.dsn.path and "/unittest-" in pg_config.dsn.path ), "pg_config must point to a unittest database (dsn path must contain '/unittest-')" from jb.managers.assignment import AssignmentManager return AssignmentManager( pg_config=pg_config, permissions=[Permission.READ, Permission.CREATE] ) @pytest.fixture(scope="session") def bm(pg_config: PostgresConfig) -> "BonusManager": assert ( pg_config.dsn.path and "/unittest-" in pg_config.dsn.path ), "pg_config must point to a unittest database (dsn path must contain '/unittest-')" from jb.managers.bonus import BonusManager return BonusManager( pg_config=pg_config, permissions=[Permission.READ, Permission.CREATE] )