aboutsummaryrefslogtreecommitdiff
path: root/test_utils/incite
diff options
context:
space:
mode:
authorMax Nanis2026-03-07 09:51:37 -0500
committerMax Nanis2026-03-07 09:51:37 -0500
commit9833e57ccd2f9ec2090ab1f7da97500a071664b9 (patch)
treed44f8d1725164e1a83ed15d31d8b62b7487ec81e /test_utils/incite
parent91d040211a4ed6e4157896256a762d3854777b5e (diff)
downloadgeneralresearch-9833e57ccd2f9ec2090ab1f7da97500a071664b9.tar.gz
generalresearch-9833e57ccd2f9ec2090ab1f7da97500a071664b9.zip
conftest type annotations.
Diffstat (limited to 'test_utils/incite')
-rw-r--r--test_utils/incite/collections/conftest.py26
-rw-r--r--test_utils/incite/conftest.py72
-rw-r--r--test_utils/incite/mergers/conftest.py57
3 files changed, 85 insertions, 70 deletions
diff --git a/test_utils/incite/collections/conftest.py b/test_utils/incite/collections/conftest.py
index 1b61ed5..cf4f0ed 100644
--- a/test_utils/incite/collections/conftest.py
+++ b/test_utils/incite/collections/conftest.py
@@ -1,5 +1,6 @@
from datetime import timedelta, datetime
from typing import TYPE_CHECKING, Optional, Callable
+from generalresearch.pg_helper import PostgresConfig
import pytest
@@ -25,7 +26,7 @@ def user_collection(
offset: str,
duration: timedelta,
start: datetime,
- thl_web_rr,
+ thl_web_rr: PostgresConfig,
) -> "UserDFCollection":
from generalresearch.incite.collections.thl_web import (
UserDFCollection,
@@ -47,7 +48,7 @@ def wall_collection(
offset: str,
duration: timedelta,
start: datetime,
- thl_web_rr,
+ thl_web_rr: PostgresConfig,
) -> "WallDFCollection":
from generalresearch.incite.collections.thl_web import (
WallDFCollection,
@@ -69,7 +70,7 @@ def session_collection(
offset: str,
duration: timedelta,
start: datetime,
- thl_web_rr,
+ thl_web_rr: PostgresConfig,
) -> "SessionDFCollection":
from generalresearch.incite.collections.thl_web import (
SessionDFCollection,
@@ -153,7 +154,7 @@ def ledger_collection(
offset: str,
duration: timedelta,
start: datetime,
- thl_web_rr,
+ thl_web_rr: PostgresConfig,
) -> "LedgerDFCollection":
from generalresearch.incite.collections.thl_web import (
LedgerDFCollection,
@@ -170,11 +171,12 @@ def ledger_collection(
@pytest.fixture(scope="function")
-def rm_ledger_collection(ledger_collection) -> Callable:
- def _rm_ledger_collection():
+def rm_ledger_collection(ledger_collection: "LedgerDFCollection") -> Callable:
+
+ def _inner():
clear_directory(ledger_collection.archive_path)
- return _rm_ledger_collection
+ return _inner
# --------------------------
@@ -184,12 +186,12 @@ def rm_ledger_collection(ledger_collection) -> Callable:
@pytest.fixture(scope="function")
def df_collection(
- mnt_filepath,
+ mnt_filepath: "GRLDatasets",
df_collection_data_type: "DFCollectionType",
- offset,
- duration,
- utc_90days_ago,
- thl_web_rr,
+ offset: str,
+ duration: timedelta,
+ utc_90days_ago: datetime,
+ thl_web_rr: PostgresConfig,
) -> "DFCollection":
from generalresearch.incite.collections import DFCollection
diff --git a/test_utils/incite/conftest.py b/test_utils/incite/conftest.py
index 759467a..9632ee5 100644
--- a/test_utils/incite/conftest.py
+++ b/test_utils/incite/conftest.py
@@ -1,33 +1,41 @@
-from datetime import datetime, timezone, timedelta
+from datetime import datetime, timedelta, timezone
from os.path import join as pjoin
from pathlib import Path
from random import choice as randchoice
from shutil import rmtree
-from typing import Callable, TYPE_CHECKING, Optional
+from typing import TYPE_CHECKING, Callable, Optional
from uuid import uuid4
import pytest
from _pytest.fixtures import SubRequest
from faker import Faker
-from test_utils.managers.ledger.conftest import session_with_tx_factory
-from test_utils.models.conftest import session_factory
+# from test_utils.managers.ledger.conftest import session_with_tx_factory
+# from test_utils.models.conftest import session_factory
if TYPE_CHECKING:
- from generalresearch.models.thl.user import User
+ from generalresearch.config import GRLSettings
from generalresearch.incite.base import GRLDatasets
- from generalresearch.incite.mergers import MergeType
from generalresearch.incite.collections import (
DFCollection,
- DFCollectionType,
DFCollectionItem,
+ DFCollectionType,
)
+ from generalresearch.incite.mergers import MergeType
+ from generalresearch.models.admin.request import (
+ ReportRequest,
+ ReportType,
+ )
+ from generalresearch.models.thl.product import Product
+ from generalresearch.models.thl.session import Session
+ from generalresearch.models.thl.user import User
+
fake = Faker()
-@pytest.fixture(scope="function")
-def mnt_gr_api_dir(request: SubRequest, settings):
+@pytest.fixture
+def mnt_gr_api_dir(request: SubRequest, settings: "GRLSettings") -> Path:
p = Path(settings.mnt_gr_api_dir)
p.mkdir(parents=True, exist_ok=True)
@@ -49,8 +57,8 @@ def mnt_gr_api_dir(request: SubRequest, settings):
return p
-@pytest.fixture(scope="function")
-def event_report_request(utc_hour_ago, start):
+@pytest.fixture
+def event_report_request(utc_hour_ago: datetime, start: datetime) -> "ReportRequest":
from generalresearch.models.admin.request import (
ReportRequest,
ReportType,
@@ -65,8 +73,8 @@ def event_report_request(utc_hour_ago, start):
)
-@pytest.fixture(scope="function")
-def session_report_request(utc_hour_ago, start):
+@pytest.fixture
+def session_report_request(utc_hour_ago: datetime, start: datetime) -> "ReportRequest":
from generalresearch.models.admin.request import (
ReportRequest,
ReportType,
@@ -81,10 +89,11 @@ def session_report_request(utc_hour_ago, start):
)
-@pytest.fixture(scope="function")
+@pytest.fixture
def mnt_filepath(request: SubRequest) -> "GRLDatasets":
- """Creates a temporary file path for all DFCollections & Mergers parquet
- files.
+ """
+ Creates a temporary file path for all DFCollections &
+ Mergers parquet files.
"""
from generalresearch.incite.base import GRLDatasets, NFSMount
@@ -106,44 +115,45 @@ def mnt_filepath(request: SubRequest) -> "GRLDatasets":
return instance
-@pytest.fixture(scope="function")
-def start(utc_90days_ago) -> "datetime":
+@pytest.fixture
+def start(utc_90days_ago: datetime) -> "datetime":
s = utc_90days_ago.replace(microsecond=0)
return s
-@pytest.fixture(scope="function")
+@pytest.fixture
def offset() -> str:
return "15min"
-@pytest.fixture(scope="function")
+@pytest.fixture
def duration() -> Optional["timedelta"]:
return timedelta(hours=1)
-@pytest.fixture(scope="function")
+@pytest.fixture
def df_collection_data_type() -> "DFCollectionType":
from generalresearch.incite.collections import DFCollectionType
return DFCollectionType.TEST
-@pytest.fixture(scope="function")
+@pytest.fixture
def merge_type() -> "MergeType":
from generalresearch.incite.mergers import MergeType
return MergeType.TEST
-@pytest.fixture(scope="function")
+@pytest.fixture
def incite_item_factory(
- session_factory,
- product,
- user_factory,
- session_with_tx_factory,
-) -> Callable:
- def _incite_item_factory(
+ session_factory: Callable[..., "Session"],
+ product: "Product",
+ user_factory: Callable[..., "User"],
+ session_with_tx_factory: Callable[..., "Session"],
+) -> Callable[..., None]:
+
+ def _inner(
item: "DFCollectionItem",
observations: int = 3,
user: Optional["User"] = None,
@@ -157,7 +167,7 @@ def incite_item_factory(
collection: DFCollection = item._collection
data_type: DFCollectionType = collection.data_type
- for idx in range(5):
+ for _ in range(5):
item_time = fake.date_time_between(
start_date=item.start, end_date=item.finish, tzinfo=timezone.utc
)
@@ -198,4 +208,4 @@ def incite_item_factory(
return None
- return _incite_item_factory
+ return _inner
diff --git a/test_utils/incite/mergers/conftest.py b/test_utils/incite/mergers/conftest.py
index e4e3bdd..010c44f 100644
--- a/test_utils/incite/mergers/conftest.py
+++ b/test_utils/incite/mergers/conftest.py
@@ -1,5 +1,5 @@
-from datetime import timedelta, datetime
-from typing import TYPE_CHECKING, Optional, Callable
+from datetime import datetime, timedelta
+from typing import TYPE_CHECKING, Callable, Optional
import pytest
@@ -7,14 +7,8 @@ from test_utils.conftest import clear_directory
from test_utils.incite.conftest import mnt_filepath
if TYPE_CHECKING:
- from generalresearch.incite.mergers import MergeType
- from generalresearch.incite.mergers.ym_wall_summary import (
- YMWallSummaryMerge,
- YMWallSummaryMergeItem,
- )
- from generalresearch.incite.mergers.pop_ledger import PopLedgerMerge
- from generalresearch.incite.mergers.ym_survey_wall import YMSurveyWallMerge
from generalresearch.incite.base import GRLDatasets
+ from generalresearch.incite.mergers import MergeType
from generalresearch.incite.mergers.foundations.enriched_session import (
EnrichedSessionMerge,
)
@@ -27,9 +21,15 @@ if TYPE_CHECKING:
from generalresearch.incite.mergers.foundations.user_id_product import (
UserIdProductMerge,
)
+ from generalresearch.incite.mergers.pop_ledger import PopLedgerMerge
from generalresearch.incite.mergers.ym_survey_wall import (
+ YMSurveyWallMerge,
YMSurveyWallMergeCollectionItem,
)
+ from generalresearch.incite.mergers.ym_wall_summary import (
+ YMWallSummaryMerge,
+ YMWallSummaryMergeItem,
+ )
# --------------------------
@@ -38,11 +38,12 @@ if TYPE_CHECKING:
@pytest.fixture(scope="function")
-def rm_pop_ledger_merge(pop_ledger_merge) -> Callable:
- def _rm_pop_ledger_merge():
+def rm_pop_ledger_merge(pop_ledger_merge) -> Callable[..., None]:
+
+ def _inner():
clear_directory(pop_ledger_merge.archive_path)
- return _rm_pop_ledger_merge
+ return _inner
@pytest.fixture(scope="function")
@@ -52,8 +53,9 @@ def pop_ledger_merge(
start: datetime,
duration: timedelta,
) -> "PopLedgerMerge":
- from generalresearch.incite.mergers.pop_ledger import PopLedgerMerge
+
from generalresearch.incite.mergers import MergeType
+ from generalresearch.incite.mergers.pop_ledger import PopLedgerMerge
return PopLedgerMerge(
start=start,
@@ -65,9 +67,10 @@ def pop_ledger_merge(
@pytest.fixture(scope="function")
def pop_ledger_merge_item(
- start,
- pop_ledger_merge,
+ start: datetime,
+ pop_ledger_merge: "PopLedgerMerge",
) -> "PopLedgerMergeItem":
+
from generalresearch.incite.mergers.pop_ledger import PopLedgerMergeItem
return PopLedgerMergeItem(
@@ -81,8 +84,8 @@ def ym_survey_wall_merge(
mnt_filepath: "GRLDatasets",
start: datetime,
) -> "YMSurveyWallMerge":
- from generalresearch.incite.mergers.ym_survey_wall import YMSurveyWallMerge
from generalresearch.incite.mergers import MergeType
+ from generalresearch.incite.mergers.ym_survey_wall import YMSurveyWallMerge
return YMSurveyWallMerge(
start=None,
@@ -93,7 +96,7 @@ def ym_survey_wall_merge(
@pytest.fixture(scope="function")
def ym_survey_wall_merge_item(
- start, ym_survey_wall_merge
+ start: datetime, ym_survey_wall_merge: "YMSurveyWallMerge"
) -> "YMSurveyWallMergeCollectionItem":
from generalresearch.incite.mergers.ym_survey_wall import (
YMSurveyWallMergeCollectionItem,
@@ -112,8 +115,8 @@ def ym_wall_summary_merge(
duration: timedelta,
start: datetime,
) -> "YMWallSummaryMerge":
- from generalresearch.incite.mergers.ym_wall_summary import YMWallSummaryMerge
from generalresearch.incite.mergers import MergeType
+ from generalresearch.incite.mergers.ym_wall_summary import YMWallSummaryMerge
return YMWallSummaryMerge(
start=start,
@@ -124,7 +127,7 @@ def ym_wall_summary_merge(
def ym_wall_summary_merge_item(
- start, ym_wall_summary_merge
+ start: datetime, ym_wall_summary_merge: "YMWallSummaryMerge"
) -> "YMWallSummaryMergeItem":
from generalresearch.incite.mergers.ym_wall_summary import (
YMWallSummaryMergeItem,
@@ -148,10 +151,10 @@ def enriched_session_merge(
duration: timedelta,
start: datetime,
) -> "EnrichedSessionMerge":
+ from generalresearch.incite.mergers import MergeType
from generalresearch.incite.mergers.foundations.enriched_session import (
EnrichedSessionMerge,
)
- from generalresearch.incite.mergers import MergeType
return EnrichedSessionMerge(
start=start,
@@ -168,10 +171,10 @@ def enriched_task_adjust_merge(
duration: timedelta,
start: datetime,
) -> "EnrichedTaskAdjustMerge":
+ from generalresearch.incite.mergers import MergeType
from generalresearch.incite.mergers.foundations.enriched_task_adjust import (
EnrichedTaskAdjustMerge,
)
- from generalresearch.incite.mergers import MergeType
return EnrichedTaskAdjustMerge(
start=start,
@@ -207,13 +210,13 @@ def enriched_wall_merge(
def user_id_product_merge(
mnt_filepath: "GRLDatasets",
duration: timedelta,
- offset,
+ offset: str,
start: datetime,
) -> "UserIdProductMerge":
+ from generalresearch.incite.mergers import MergeType
from generalresearch.incite.mergers.foundations.user_id_product import (
UserIdProductMerge,
)
- from generalresearch.incite.mergers import MergeType
return UserIdProductMerge(
start=start,
@@ -230,11 +233,11 @@ def user_id_product_merge(
@pytest.fixture(scope="function")
def merge_collection(
- mnt_filepath,
+ mnt_filepath: "GRLDatasets",
merge_type: "MergeType",
- offset,
- duration,
- start,
+ offset: str,
+ duration: timedelta,
+ start: datetime,
):
from generalresearch.incite.mergers import MergeCollection