diff options
Diffstat (limited to 'test_utils/incite')
| -rw-r--r-- | test_utils/incite/collections/conftest.py | 26 | ||||
| -rw-r--r-- | test_utils/incite/conftest.py | 72 | ||||
| -rw-r--r-- | test_utils/incite/mergers/conftest.py | 57 |
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 |
