From 0bf32fadd85d5938ae29d489efdd82e2cd137300 Mon Sep 17 00:00:00 2001 From: Max Nanis Date: Thu, 26 Feb 2026 15:51:49 -0500 Subject: Passing Managers into flow tasks for better pytest usage. Conftests broken out into seperate fixture files. Extensive type hinting. --- tests/fixtures/managers.py | 77 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 tests/fixtures/managers.py (limited to 'tests/fixtures/managers.py') diff --git a/tests/fixtures/managers.py b/tests/fixtures/managers.py new file mode 100644 index 0000000..6bc2e51 --- /dev/null +++ b/tests/fixtures/managers.py @@ -0,0 +1,77 @@ +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] + ) -- cgit v1.2.3