aboutsummaryrefslogtreecommitdiff
path: root/tests/fixtures/managers.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/fixtures/managers.py')
-rw-r--r--tests/fixtures/managers.py77
1 files changed, 77 insertions, 0 deletions
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]
+ )