aboutsummaryrefslogtreecommitdiff
path: root/tests/managers
diff options
context:
space:
mode:
Diffstat (limited to 'tests/managers')
-rw-r--r--tests/managers/gr/test_business.py19
-rw-r--r--tests/managers/gr/test_team.py15
-rw-r--r--tests/managers/leaderboard.py5
-rw-r--r--tests/managers/network/test_label.py17
-rw-r--r--tests/managers/test_events.py12
-rw-r--r--tests/managers/test_lucid.py6
-rw-r--r--tests/managers/thl/test_buyer.py7
-rw-r--r--tests/managers/thl/test_cashout_method.py19
-rw-r--r--tests/managers/thl/test_category.py7
-rw-r--r--tests/managers/thl/test_contest/test_leaderboard.py19
-rw-r--r--tests/managers/thl/test_contest/test_milestone.py20
-rw-r--r--tests/managers/thl/test_contest/test_raffle.py21
-rw-r--r--tests/managers/thl/test_harmonized_uqa.py7
-rw-r--r--tests/managers/thl/test_ipinfo.py7
-rw-r--r--tests/managers/thl/test_ledger/test_lm_accounts.py10
-rw-r--r--tests/managers/thl/test_ledger/test_lm_tx.py7
-rw-r--r--tests/managers/thl/test_ledger/test_lm_tx_entries.py10
-rw-r--r--tests/managers/thl/test_ledger/test_lm_tx_locks.py15
-rw-r--r--tests/managers/thl/test_ledger/test_lm_tx_metadata.py11
-rw-r--r--tests/managers/thl/test_ledger/test_thl_lm_accounts.py15
-rw-r--r--tests/managers/thl/test_ledger/test_thl_lm_bp_payout.py22
-rw-r--r--tests/managers/thl/test_ledger/test_thl_lm_tx.py28
-rw-r--r--tests/managers/thl/test_ledger/test_thl_lm_tx__user_payouts.py13
-rw-r--r--tests/managers/thl/test_ledger/test_thl_pem.py21
-rw-r--r--tests/managers/thl/test_ledger/test_user_txs.py19
-rw-r--r--tests/managers/thl/test_ledger/test_wallet.py9
-rw-r--r--tests/managers/thl/test_payout.py53
-rw-r--r--tests/managers/thl/test_product.py9
-rw-r--r--tests/managers/thl/test_product_prod.py5
-rw-r--r--tests/managers/thl/test_profiling/test_question.py7
-rw-r--r--tests/managers/thl/test_profiling/test_schema.py9
-rw-r--r--tests/managers/thl/test_profiling/test_user_upk.py6
-rw-r--r--tests/managers/thl/test_session_manager.py15
-rw-r--r--tests/managers/thl/test_survey.py18
-rw-r--r--tests/managers/thl/test_survey_penalty.py7
-rw-r--r--tests/managers/thl/test_task_adjustment.py21
-rw-r--r--tests/managers/thl/test_task_status.py18
-rw-r--r--tests/managers/thl/test_user_manager/test_base.py18
-rw-r--r--tests/managers/thl/test_user_manager/test_mysql.py11
-rw-r--r--tests/managers/thl/test_user_manager/test_redis.py10
-rw-r--r--tests/managers/thl/test_user_manager/test_user_fetch.py8
-rw-r--r--tests/managers/thl/test_user_manager/test_user_metadata.py13
-rw-r--r--tests/managers/thl/test_user_streak.py11
-rw-r--r--tests/managers/thl/test_userhealth.py19
-rw-r--r--tests/managers/thl/test_wall_manager.py13
45 files changed, 402 insertions, 230 deletions
diff --git a/tests/managers/gr/test_business.py b/tests/managers/gr/test_business.py
index ed141b1..1a5d4fa 100644
--- a/tests/managers/gr/test_business.py
+++ b/tests/managers/gr/test_business.py
@@ -1,21 +1,24 @@
+from typing import TYPE_CHECKING
from uuid import uuid4
import pytest
-from generalresearch.managers.gr.business import (
- BusinessAddressManager,
- BusinessBankAccountManager,
- BusinessManager,
-)
-from generalresearch.managers.gr.team import MembershipManager, TeamManager
-from generalresearch.models.gr.authentication import GRUser
from generalresearch.models.gr.business import (
Business,
BusinessAddress,
BusinessBankAccount,
TransferMethod,
)
-from generalresearch.pg_helper import PostgresConfig
+
+if TYPE_CHECKING:
+ from generalresearch.managers.gr.business import (
+ BusinessAddressManager,
+ BusinessBankAccountManager,
+ BusinessManager,
+ )
+ from generalresearch.managers.gr.team import MembershipManager, TeamManager
+ from generalresearch.models.gr.authentication import GRUser
+ from generalresearch.pg_helper import PostgresConfig
class TestBusinessBankAccountManager:
diff --git a/tests/managers/gr/test_team.py b/tests/managers/gr/test_team.py
index ae3e1bb..17e0470 100644
--- a/tests/managers/gr/test_team.py
+++ b/tests/managers/gr/test_team.py
@@ -1,15 +1,18 @@
from __future__ import annotations
from collections.abc import Callable
+from typing import TYPE_CHECKING
from uuid import uuid4
-from generalresearch.managers.gr.authentication import GRUserManager
-from generalresearch.managers.gr.team import MembershipManager, TeamManager
-from generalresearch.models.gr.authentication import GRUser
from generalresearch.models.gr.team import Membership, Team
-from generalresearch.models.thl.product import Product
-from generalresearch.pg_helper import PostgresConfig
-from generalresearch.redis_helper import RedisConfig
+
+if TYPE_CHECKING:
+ from generalresearch.managers.gr.authentication import GRUserManager
+ from generalresearch.managers.gr.team import MembershipManager, TeamManager
+ from generalresearch.models.gr.authentication import GRUser
+ from generalresearch.models.thl.product import Product
+ from generalresearch.pg_helper import PostgresConfig
+ from generalresearch.redis_helper import RedisConfig
class TestMembershipManager:
diff --git a/tests/managers/leaderboard.py b/tests/managers/leaderboard.py
index d97714d..197477b 100644
--- a/tests/managers/leaderboard.py
+++ b/tests/managers/leaderboard.py
@@ -6,6 +6,7 @@ import zoneinfo
from collections.abc import Callable
from datetime import UTC, datetime
from decimal import Decimal
+from typing import TYPE_CHECKING
from uuid import uuid4
import pytest
@@ -26,7 +27,9 @@ from generalresearch.models.thl.product import (
)
from generalresearch.models.thl.session import Session
from generalresearch.models.thl.user import User
-from generalresearch.redis_helper import RedisConfig
+
+if TYPE_CHECKING:
+ from generalresearch.redis_helper import RedisConfig
# random uuid for leaderboard tests
product_id = uuid4().hex
diff --git a/tests/managers/network/test_label.py b/tests/managers/network/test_label.py
index 71efa95..abdd28f 100644
--- a/tests/managers/network/test_label.py
+++ b/tests/managers/network/test_label.py
@@ -1,11 +1,12 @@
import ipaddress
+from datetime import datetime
+from typing import TYPE_CHECKING
import faker
import pytest
from psycopg.errors import UniqueViolation
from pydantic import ValidationError
-from generalresearch.managers.network.label import IPLabelManager
from generalresearch.models.network.label import (
IPLabel,
IPLabelKind,
@@ -14,11 +15,14 @@ from generalresearch.models.network.label import (
)
from generalresearch.models.thl.ipinfo import normalize_ip
+if TYPE_CHECKING:
+ from generalresearch.managers.network.label import IPLabelManager
+
fake = faker.Faker()
@pytest.fixture
-def ip_label(utc_now) -> IPLabel:
+def ip_label(utc_now: datetime) -> IPLabel:
ip = ipaddress.IPv6Network((fake.ipv6(), 64), strict=False)
return IPLabel(
label_kind=IPLabelKind.VPN,
@@ -31,7 +35,7 @@ def ip_label(utc_now) -> IPLabel:
)
-def test_model(utc_now):
+def test_model(utc_now: datetime):
ip = fake.ipv4_public()
lbl = IPLabel(
label_kind=IPLabelKind.VPN,
@@ -142,7 +146,7 @@ def test_filter_network(
assert len(res) == 2
-def test_network(iplabel_manager: IPLabelManager, utc_now):
+def test_network(iplabel_manager: IPLabelManager, utc_now: datetime):
# This is a fully-specific /128 ipv6 address.
# e.g. '51b7:b38d:8717:6c5b:cd3e:f5c3:3aba:17d'
ip = fake.ipv6()
@@ -174,7 +178,10 @@ def test_network(iplabel_manager: IPLabelManager, utc_now):
def test_label_cidr_and_ipinfo(
- iplabel_manager: IPLabelManager, ip_information_factory, ip_geoname, utc_now
+ iplabel_manager: IPLabelManager,
+ ip_information_factory,
+ ip_geoname,
+ utc_now: datetime,
):
# We have network_iplabel.ip as a cidr col and
# thl_ipinformation.ip as a inet col. Make sure we can join appropriately
diff --git a/tests/managers/test_events.py b/tests/managers/test_events.py
index cb32275..8745126 100644
--- a/tests/managers/test_events.py
+++ b/tests/managers/test_events.py
@@ -8,13 +8,13 @@ from datetime import UTC, datetime, timedelta
from decimal import Decimal
from functools import partial
from math import floor
+from typing import TYPE_CHECKING
from uuid import uuid4
import pytest
-from generalresearch.managers.events import EventManager, EventSubscriber
-from generalresearch.managers.thl.product import ProductManager
-from generalresearch.models import Source
+from generalresearch.managers.events import EventSubscriber
+from generalresearch.models.definitions import Source
from generalresearch.models.events import (
AggregateBySource,
EventType,
@@ -25,7 +25,11 @@ from generalresearch.models.legacy.bucket import Bucket
from generalresearch.models.thl.definitions import Status, StatusCode1
from generalresearch.models.thl.session import Session, Wall
from generalresearch.models.thl.user import User
-from generalresearch.redis_helper import RedisConfig
+
+if TYPE_CHECKING:
+ from generalresearch.managers.events import EventManager
+ from generalresearch.managers.thl.product import ProductManager
+ from generalresearch.redis_helper import RedisConfig
# We don't need anything in the db, so not using the db fixtures
diff --git a/tests/managers/test_lucid.py b/tests/managers/test_lucid.py
index 20dca22..6771a0c 100644
--- a/tests/managers/test_lucid.py
+++ b/tests/managers/test_lucid.py
@@ -1,9 +1,13 @@
from __future__ import annotations
+from typing import TYPE_CHECKING
+
import pytest
from generalresearch.managers.lucid.profiling import get_profiling_library
-from generalresearch.pg_helper import PostgresConfig
+
+if TYPE_CHECKING:
+ from generalresearch.pg_helper import PostgresConfig
qids = ["42", "43", "45", "97", "120", "639", "15297"]
diff --git a/tests/managers/thl/test_buyer.py b/tests/managers/thl/test_buyer.py
index 6776ab3..0ab2d52 100644
--- a/tests/managers/thl/test_buyer.py
+++ b/tests/managers/thl/test_buyer.py
@@ -1,9 +1,12 @@
from __future__ import annotations
from collections.abc import Callable
+from typing import TYPE_CHECKING
-from generalresearch.managers.thl.buyer import BuyerManager
-from generalresearch.models import Source
+from generalresearch.models.definitions import Source
+
+if TYPE_CHECKING:
+ from generalresearch.managers.thl.buyer import BuyerManager
class TestBuyer:
diff --git a/tests/managers/thl/test_cashout_method.py b/tests/managers/thl/test_cashout_method.py
index ca85c6b..877d7b2 100644
--- a/tests/managers/thl/test_cashout_method.py
+++ b/tests/managers/thl/test_cashout_method.py
@@ -1,21 +1,26 @@
from __future__ import annotations
from collections.abc import Callable
+from typing import TYPE_CHECKING
import pytest
-from generalresearch.config import GRLBaseSettings
-from generalresearch.managers.thl.cashout_method import (
- CashoutMethodManager,
-)
-from generalresearch.models.thl.user import User
-from generalresearch.models.thl.wallet import PayoutType
from generalresearch.models.thl.wallet.cashout_method import (
CashMailCashoutMethodData,
- CashoutMethod,
PaypalCashoutMethodData,
USDeliveryAddress,
)
+from generalresearch.models.thl.wallet.definitions import PayoutType
+
+if TYPE_CHECKING:
+ from generalresearch.config import GRLBaseSettings
+ from generalresearch.managers.thl.cashout_method import (
+ CashoutMethodManager,
+ )
+ from generalresearch.models.thl.user import User
+ from generalresearch.models.thl.wallet.cashout_method import (
+ CashoutMethod,
+ )
class TestTangoCashoutMethods:
diff --git a/tests/managers/thl/test_category.py b/tests/managers/thl/test_category.py
index ec52aae..4d00643 100644
--- a/tests/managers/thl/test_category.py
+++ b/tests/managers/thl/test_category.py
@@ -1,12 +1,15 @@
from __future__ import annotations
from collections.abc import Callable
+from typing import TYPE_CHECKING
import pytest
-from generalresearch.managers.thl.category import CategoryManager
from generalresearch.models.thl.category import Category
-from generalresearch.pg_helper import PostgresConfig
+
+if TYPE_CHECKING:
+ from generalresearch.managers.thl.category import CategoryManager
+ from generalresearch.pg_helper import PostgresConfig
class TestCategory:
diff --git a/tests/managers/thl/test_contest/test_leaderboard.py b/tests/managers/thl/test_contest/test_leaderboard.py
index 3a63075..d80d512 100644
--- a/tests/managers/thl/test_contest/test_leaderboard.py
+++ b/tests/managers/thl/test_contest/test_leaderboard.py
@@ -1,23 +1,28 @@
from __future__ import annotations
from datetime import UTC, datetime, timedelta
+from typing import TYPE_CHECKING
from zoneinfo import ZoneInfo
from generalresearch.currency import USDCent
-from generalresearch.managers.thl.contest_manager import ContestManager
-from generalresearch.managers.thl.ledger_manager.thl_ledger import ThlLedgerManager
-from generalresearch.managers.thl.user_manager.user_manager import UserManager
from generalresearch.models.thl.contest.definitions import (
ContestEndReason,
ContestStatus,
)
from generalresearch.models.thl.contest.leaderboard import (
LeaderboardContest,
- LeaderboardContestCreate,
)
-from generalresearch.models.thl.product import Product
-from generalresearch.models.thl.user import User
-from generalresearch.redis_helper import RedisConfig
+
+if TYPE_CHECKING:
+ from generalresearch.managers.thl.contest_manager import ContestManager
+ from generalresearch.managers.thl.ledger_manager.thl_ledger import ThlLedgerManager
+ from generalresearch.managers.thl.user_manager.user_manager import UserManager
+ from generalresearch.models.thl.contest.leaderboard import (
+ LeaderboardContestCreate,
+ )
+ from generalresearch.models.thl.product import Product
+ from generalresearch.models.thl.user import User
+ from generalresearch.redis_helper import RedisConfig
class TestLeaderboardContestCRUD:
diff --git a/tests/managers/thl/test_contest/test_milestone.py b/tests/managers/thl/test_contest/test_milestone.py
index e29ba4c..dbb2016 100644
--- a/tests/managers/thl/test_contest/test_milestone.py
+++ b/tests/managers/thl/test_contest/test_milestone.py
@@ -2,9 +2,8 @@ from __future__ import annotations
from collections.abc import Callable
from datetime import UTC, datetime
+from typing import TYPE_CHECKING
-from generalresearch.managers.thl.contest_manager import ContestManager
-from generalresearch.managers.thl.ledger_manager.thl_ledger import ThlLedgerManager
from generalresearch.models.thl.contest.definitions import (
ContestEndReason,
ContestStatus,
@@ -12,12 +11,18 @@ from generalresearch.models.thl.contest.definitions import (
from generalresearch.models.thl.contest.milestone import (
ContestEntryTrigger,
MilestoneContest,
- MilestoneContestCreate,
MilestoneUserView,
)
-from generalresearch.models.thl.contest.raffle import RaffleContest
-from generalresearch.models.thl.product import Product
-from generalresearch.models.thl.user import User
+
+if TYPE_CHECKING:
+ from generalresearch.managers.thl.contest_manager import ContestManager
+ from generalresearch.managers.thl.ledger_manager.thl_ledger import ThlLedgerManager
+ from generalresearch.models.thl.contest.milestone import (
+ MilestoneContestCreate,
+ )
+ from generalresearch.models.thl.contest.raffle import RaffleContest
+ from generalresearch.models.thl.product import Product
+ from generalresearch.models.thl.user import User
class TestMilestoneContest:
@@ -25,8 +30,6 @@ class TestMilestoneContest:
def test_should_end(
self,
contest: MilestoneContest,
- thl_ledger_manager: ThlLedgerManager,
- contest_manager: ContestManager,
):
# contest is active and has no entries
should, msg = contest.should_end()
@@ -53,7 +56,6 @@ class TestMilestoneContestCRUD:
self,
contest_create: MilestoneContestCreate,
product_user_wallet_yes: Product,
- thl_ledger_manager: ThlLedgerManager,
contest_manager: ContestManager,
):
c = contest_manager.create(
diff --git a/tests/managers/thl/test_contest/test_raffle.py b/tests/managers/thl/test_contest/test_raffle.py
index 06d4676..7803952 100644
--- a/tests/managers/thl/test_contest/test_raffle.py
+++ b/tests/managers/thl/test_contest/test_raffle.py
@@ -2,19 +2,17 @@ from __future__ import annotations
from collections.abc import Callable
from datetime import UTC, datetime
+from typing import TYPE_CHECKING
import pytest
from pydantic import ValidationError
from pytest import approx
from generalresearch.currency import USDCent
-from generalresearch.managers.thl.contest_manager import ContestManager
from generalresearch.managers.thl.ledger_manager.exceptions import (
LedgerTransactionConditionFailedError,
)
-from generalresearch.managers.thl.ledger_manager.thl_ledger import ThlLedgerManager
from generalresearch.models.thl.contest import (
- Contest,
ContestEndCondition,
ContestEntryRule,
ContestPrize,
@@ -29,11 +27,20 @@ from generalresearch.models.thl.contest.raffle import (
ContestEntry,
ContestEntryType,
RaffleContest,
- RaffleContestCreate,
- RaffleUserView,
)
-from generalresearch.models.thl.product import Product
-from generalresearch.models.thl.user import User
+
+if TYPE_CHECKING:
+ from generalresearch.managers.thl.contest_manager import ContestManager
+ from generalresearch.managers.thl.ledger_manager.thl_ledger import ThlLedgerManager
+ from generalresearch.models.thl.contest import (
+ Contest,
+ )
+ from generalresearch.models.thl.contest.raffle import (
+ RaffleContestCreate,
+ RaffleUserView,
+ )
+ from generalresearch.models.thl.product import Product
+ from generalresearch.models.thl.user import User
class TestRaffleContest:
diff --git a/tests/managers/thl/test_harmonized_uqa.py b/tests/managers/thl/test_harmonized_uqa.py
index 84eeb56..2fc0ff0 100644
--- a/tests/managers/thl/test_harmonized_uqa.py
+++ b/tests/managers/thl/test_harmonized_uqa.py
@@ -1,15 +1,18 @@
from __future__ import annotations
from datetime import UTC, datetime
+from typing import TYPE_CHECKING
import pytest
-from generalresearch.managers.thl.profiling.uqa import UQAManager
from generalresearch.models.thl.profiling.user_question_answer import (
DUMMY_UQA,
UserQuestionAnswer,
)
-from generalresearch.models.thl.user import User
+
+if TYPE_CHECKING:
+ from generalresearch.managers.thl.profiling.uqa import UQAManager
+ from generalresearch.models.thl.user import User
@pytest.mark.usefixtures("uqa_db_index", "upk_data", "uqa_manager_clear_cache")
diff --git a/tests/managers/thl/test_ipinfo.py b/tests/managers/thl/test_ipinfo.py
index 48b9efd..6954163 100644
--- a/tests/managers/thl/test_ipinfo.py
+++ b/tests/managers/thl/test_ipinfo.py
@@ -1,4 +1,5 @@
from collections.abc import Callable
+from typing import TYPE_CHECKING
import faker
@@ -12,8 +13,10 @@ from generalresearch.models.thl.ipinfo import (
IPGeoname,
IPInformation,
)
-from generalresearch.pg_helper import PostgresConfig
-from generalresearch.redis_helper import RedisConfig
+
+if TYPE_CHECKING:
+ from generalresearch.pg_helper import PostgresConfig
+ from generalresearch.redis_helper import RedisConfig
fake = faker.Faker()
diff --git a/tests/managers/thl/test_ledger/test_lm_accounts.py b/tests/managers/thl/test_ledger/test_lm_accounts.py
index 7b65b2d..f5ed883 100644
--- a/tests/managers/thl/test_ledger/test_lm_accounts.py
+++ b/tests/managers/thl/test_ledger/test_lm_accounts.py
@@ -2,6 +2,7 @@ from __future__ import annotations
from itertools import product as iproduct
from random import randint
+from typing import TYPE_CHECKING
from uuid import uuid4
import pytest
@@ -13,13 +14,18 @@ from generalresearch.managers.thl.ledger_manager.exceptions import (
LedgerAccountDoesntExistError,
)
from generalresearch.managers.thl.ledger_manager.ledger import LedgerManager
-from generalresearch.models.custom_types import AccountType, Direction, UUIDStr
+from generalresearch.models.custom_types import AccountType, Direction
from generalresearch.models.thl.ledger import (
LedgerAccount,
LedgerEntry,
- LedgerTransaction,
)
+if TYPE_CHECKING:
+ from generalresearch.models.custom_types import UUIDStr
+ from generalresearch.models.thl.ledger import (
+ LedgerTransaction,
+ )
+
@pytest.mark.parametrize(
argnames="currency, kind, acct_id",
diff --git a/tests/managers/thl/test_ledger/test_lm_tx.py b/tests/managers/thl/test_ledger/test_lm_tx.py
index ce609d6..445405e 100644
--- a/tests/managers/thl/test_ledger/test_lm_tx.py
+++ b/tests/managers/thl/test_ledger/test_lm_tx.py
@@ -2,6 +2,7 @@ from __future__ import annotations
from decimal import Decimal
from random import randint
+from typing import TYPE_CHECKING
from uuid import uuid4
import pytest
@@ -12,11 +13,15 @@ from generalresearch.managers.thl.ledger_manager.ledger import (
)
from generalresearch.models.thl.ledger import (
Direction,
- LedgerAccount,
LedgerEntry,
LedgerTransaction,
)
+if TYPE_CHECKING:
+ from generalresearch.models.thl.ledger import (
+ LedgerAccount,
+ )
+
class TestLedgerManagerCreateTx:
diff --git a/tests/managers/thl/test_ledger/test_lm_tx_entries.py b/tests/managers/thl/test_ledger/test_lm_tx_entries.py
index 9925b87..03c6e02 100644
--- a/tests/managers/thl/test_ledger/test_lm_tx_entries.py
+++ b/tests/managers/thl/test_ledger/test_lm_tx_entries.py
@@ -1,11 +1,17 @@
from __future__ import annotations
-from generalresearch.managers.thl.ledger_manager.ledger import LedgerManager
+from typing import TYPE_CHECKING
+
from generalresearch.models.thl.ledger import (
LedgerEntry,
- LedgerTransaction,
)
+if TYPE_CHECKING:
+ from generalresearch.managers.thl.ledger_manager.ledger import LedgerManager
+ from generalresearch.models.thl.ledger import (
+ LedgerTransaction,
+ )
+
class TestLedgerEntryManager:
diff --git a/tests/managers/thl/test_ledger/test_lm_tx_locks.py b/tests/managers/thl/test_ledger/test_lm_tx_locks.py
index e603632..9ecc1bc 100644
--- a/tests/managers/thl/test_ledger/test_lm_tx_locks.py
+++ b/tests/managers/thl/test_ledger/test_lm_tx_locks.py
@@ -5,10 +5,10 @@ from collections.abc import Callable, Generator
from datetime import UTC, datetime, timedelta
from decimal import Decimal
from logging import LogCaptureFixture
+from typing import TYPE_CHECKING
import pytest
-from generalresearch.currency import LedgerCurrency
from generalresearch.managers.thl.ledger_manager.conditions import (
generate_condition_mp_payment,
)
@@ -17,11 +17,8 @@ from generalresearch.managers.thl.ledger_manager.exceptions import (
LedgerTransactionCreateLockError,
LedgerTransactionFlagAlreadyExistsError,
)
-from generalresearch.managers.thl.ledger_manager.ledger import LedgerManager
-from generalresearch.managers.thl.ledger_manager.thl_ledger import ThlLedgerManager
-from generalresearch.models import Source
+from generalresearch.models.definitions import Source
from generalresearch.models.thl.ledger import LedgerTransaction
-from generalresearch.models.thl.product import Product
from generalresearch.models.thl.session import (
Session,
Status,
@@ -29,7 +26,13 @@ from generalresearch.models.thl.session import (
Wall,
WallAdjustedStatus,
)
-from generalresearch.models.thl.user import User
+
+if TYPE_CHECKING:
+ from generalresearch.currency import LedgerCurrency
+ from generalresearch.managers.thl.ledger_manager.ledger import LedgerManager
+ from generalresearch.managers.thl.ledger_manager.thl_ledger import ThlLedgerManager
+ from generalresearch.models.thl.product import Product
+ from generalresearch.models.thl.user import User
logger = logging.getLogger("LedgerManager")
diff --git a/tests/managers/thl/test_ledger/test_lm_tx_metadata.py b/tests/managers/thl/test_ledger/test_lm_tx_metadata.py
index f63efa4..3d8cf89 100644
--- a/tests/managers/thl/test_ledger/test_lm_tx_metadata.py
+++ b/tests/managers/thl/test_ledger/test_lm_tx_metadata.py
@@ -1,9 +1,12 @@
from __future__ import annotations
-from generalresearch.managers.thl.ledger_manager.ledger import (
- LedgerManager,
- LedgerTransaction,
-)
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from generalresearch.managers.thl.ledger_manager.ledger import (
+ LedgerManager,
+ LedgerTransaction,
+ )
class TestLedgerMetadataManager:
diff --git a/tests/managers/thl/test_ledger/test_thl_lm_accounts.py b/tests/managers/thl/test_ledger/test_thl_lm_accounts.py
index 60eb71c..adff446 100644
--- a/tests/managers/thl/test_ledger/test_thl_lm_accounts.py
+++ b/tests/managers/thl/test_ledger/test_thl_lm_accounts.py
@@ -1,6 +1,7 @@
from __future__ import annotations
from collections.abc import Callable
+from typing import TYPE_CHECKING
from uuid import uuid4
import pytest
@@ -9,18 +10,20 @@ from generalresearch.currency import LedgerCurrency
from generalresearch.managers.thl.ledger_manager.exceptions import (
LedgerAccountDoesntExistError,
)
-from generalresearch.managers.thl.ledger_manager.ledger import (
- LedgerAccountManager,
- LedgerManager,
-)
-from generalresearch.managers.thl.ledger_manager.thl_ledger import ThlLedgerManager
from generalresearch.models.thl.ledger import (
AccountType,
Direction,
LedgerAccount,
)
from generalresearch.models.thl.product import Product
-from generalresearch.models.thl.user import User
+
+if TYPE_CHECKING:
+ from generalresearch.managers.thl.ledger_manager.ledger import (
+ LedgerAccountManager,
+ LedgerManager,
+ )
+ from generalresearch.managers.thl.ledger_manager.thl_ledger import ThlLedgerManager
+ from generalresearch.models.thl.user import User
class TestThlLedgerManagerAccounts:
diff --git a/tests/managers/thl/test_ledger/test_thl_lm_bp_payout.py b/tests/managers/thl/test_ledger/test_thl_lm_bp_payout.py
index b518453..14c5270 100644
--- a/tests/managers/thl/test_ledger/test_thl_lm_bp_payout.py
+++ b/tests/managers/thl/test_ledger/test_thl_lm_bp_payout.py
@@ -5,6 +5,7 @@ from collections.abc import Callable
from datetime import UTC, datetime, timedelta
from decimal import Decimal
from random import randint
+from typing import TYPE_CHECKING
from uuid import uuid4
import pytest
@@ -12,7 +13,7 @@ import redis
from pydantic import RedisDsn
from redis.lock import Lock
-from generalresearch.currency import LedgerCurrency, USDCent
+from generalresearch.currency import USDCent
from generalresearch.managers.base import Permission
from generalresearch.managers.thl.ledger_manager.exceptions import (
LedgerTransactionConditionFailedError,
@@ -22,24 +23,27 @@ from generalresearch.managers.thl.ledger_manager.exceptions import (
)
from generalresearch.managers.thl.ledger_manager.ledger import LedgerTransaction
from generalresearch.managers.thl.ledger_manager.thl_ledger import ThlLedgerManager
-from generalresearch.managers.thl.payout import (
- BrokerageProductPayoutEventManager,
-)
-from generalresearch.models import Source
+from generalresearch.models.definitions import Source
from generalresearch.models.thl.definitions import PayoutStatus
from generalresearch.models.thl.ledger import Direction, TransactionType
-from generalresearch.models.thl.product import Product
from generalresearch.models.thl.session import (
Session,
Status,
StatusCode1,
Wall,
)
-from generalresearch.models.thl.user import User
-from generalresearch.models.thl.wallet import PayoutType
-from generalresearch.pg_helper import PostgresConfig
+from generalresearch.models.thl.wallet.definitions import PayoutType
from generalresearch.redis_helper import RedisConfig
+if TYPE_CHECKING:
+ from generalresearch.currency import LedgerCurrency
+ from generalresearch.managers.thl.payout import (
+ BrokerageProductPayoutEventManager,
+ )
+ from generalresearch.models.thl.product import Product
+ from generalresearch.models.thl.user import User
+ from generalresearch.pg_helper import PostgresConfig
+
def broken_acquire(self, *args, **kwargs):
raise redis.exceptions.TimeoutError("Simulated timeout during acquire")
diff --git a/tests/managers/thl/test_ledger/test_thl_lm_tx.py b/tests/managers/thl/test_ledger/test_thl_lm_tx.py
index 1860d6d..2e4ab5e 100644
--- a/tests/managers/thl/test_ledger/test_thl_lm_tx.py
+++ b/tests/managers/thl/test_ledger/test_thl_lm_tx.py
@@ -5,26 +5,21 @@ from collections.abc import Callable
from datetime import UTC, datetime, timedelta
from decimal import Decimal
from random import randint
+from typing import TYPE_CHECKING
from uuid import uuid4
import pytest
-from generalresearch.currency import LedgerCurrency, USDCent
+from generalresearch.currency import USDCent
from generalresearch.managers.thl.ledger_manager.ledger import (
- LedgerManager,
LedgerTransaction,
)
-from generalresearch.managers.thl.ledger_manager.thl_ledger import ThlLedgerManager
-from generalresearch.managers.thl.product import ProductManager
-from generalresearch.managers.thl.session import SessionManager
-from generalresearch.managers.thl.wall import WallManager
-from generalresearch.models import Source
+from generalresearch.models.definitions import Source
from generalresearch.models.thl.definitions import (
WALL_ALLOWED_STATUS_STATUS_CODE,
)
from generalresearch.models.thl.ledger import (
Direction,
- LedgerAccount,
TransactionType,
)
from generalresearch.models.thl.payout import UserPayoutEvent
@@ -41,8 +36,21 @@ from generalresearch.models.thl.session import (
Wall,
WallAdjustedStatus,
)
-from generalresearch.models.thl.user import User
-from generalresearch.models.thl.wallet import PayoutType
+from generalresearch.models.thl.wallet.definitions import PayoutType
+
+if TYPE_CHECKING:
+ from generalresearch.currency import LedgerCurrency
+ from generalresearch.managers.thl.ledger_manager.ledger import (
+ LedgerManager,
+ )
+ from generalresearch.managers.thl.ledger_manager.thl_ledger import ThlLedgerManager
+ from generalresearch.managers.thl.product import ProductManager
+ from generalresearch.managers.thl.session import SessionManager
+ from generalresearch.managers.thl.wall import WallManager
+ from generalresearch.models.thl.ledger import (
+ LedgerAccount,
+ )
+ from generalresearch.models.thl.user import User
logger = logging.getLogger("LedgerManager")
diff --git a/tests/managers/thl/test_ledger/test_thl_lm_tx__user_payouts.py b/tests/managers/thl/test_ledger/test_thl_lm_tx__user_payouts.py
index 82dc143..3fd21dc 100644
--- a/tests/managers/thl/test_ledger/test_thl_lm_tx__user_payouts.py
+++ b/tests/managers/thl/test_ledger/test_thl_lm_tx__user_payouts.py
@@ -3,6 +3,7 @@ from __future__ import annotations
import logging
from collections.abc import Callable
from decimal import Decimal
+from typing import TYPE_CHECKING
from uuid import uuid4
import pytest
@@ -11,12 +12,14 @@ from generalresearch.managers.thl.ledger_manager.exceptions import (
LedgerTransactionConditionFailedError,
LedgerTransactionFlagAlreadyExistsError,
)
-from generalresearch.managers.thl.ledger_manager.ledger import LedgerManager
-from generalresearch.managers.thl.ledger_manager.thl_ledger import ThlLedgerManager
from generalresearch.models.thl.payout import UserPayoutEvent
-from generalresearch.models.thl.product import Product
-from generalresearch.models.thl.user import User
-from generalresearch.models.thl.wallet import PayoutType
+from generalresearch.models.thl.wallet.definitions import PayoutType
+
+if TYPE_CHECKING:
+ from generalresearch.managers.thl.ledger_manager.ledger import LedgerManager
+ from generalresearch.managers.thl.ledger_manager.thl_ledger import ThlLedgerManager
+ from generalresearch.models.thl.product import Product
+ from generalresearch.models.thl.user import User
class TestLedgerManagerAMT:
diff --git a/tests/managers/thl/test_ledger/test_thl_pem.py b/tests/managers/thl/test_ledger/test_thl_pem.py
index 29341cf..9dbec48 100644
--- a/tests/managers/thl/test_ledger/test_thl_pem.py
+++ b/tests/managers/thl/test_ledger/test_thl_pem.py
@@ -2,28 +2,31 @@ from __future__ import annotations
from collections.abc import Callable
from random import randint
+from typing import TYPE_CHECKING
from uuid import UUID, uuid4
import pytest
from generalresearch.currency import USDCent
-from generalresearch.managers.thl.ledger_manager.ledger import LedgerManager
-from generalresearch.managers.thl.ledger_manager.thl_ledger import (
- ThlLedgerManager,
-)
-from generalresearch.managers.thl.payout import (
- BrokerageProductPayoutEventManager,
- UserPayoutEventManager,
-)
from generalresearch.models.thl.definitions import PayoutStatus
from generalresearch.models.thl.payout import (
BrokerageProductPayoutEvent,
)
-from generalresearch.models.thl.product import Product
from generalresearch.models.thl.wallet.cashout_method import (
CashoutRequestInfo,
)
+if TYPE_CHECKING:
+ from generalresearch.managers.thl.ledger_manager.ledger import LedgerManager
+ from generalresearch.managers.thl.ledger_manager.thl_ledger import (
+ ThlLedgerManager,
+ )
+ from generalresearch.managers.thl.payout import (
+ BrokerageProductPayoutEventManager,
+ UserPayoutEventManager,
+ )
+ from generalresearch.models.thl.product import Product
+
class TestThlPayoutEventManager:
diff --git a/tests/managers/thl/test_ledger/test_user_txs.py b/tests/managers/thl/test_ledger/test_user_txs.py
index 56dc485..1c08498 100644
--- a/tests/managers/thl/test_ledger/test_user_txs.py
+++ b/tests/managers/thl/test_ledger/test_user_txs.py
@@ -3,12 +3,9 @@ from __future__ import annotations
from collections.abc import Callable
from datetime import UTC, datetime
from decimal import Decimal
+from typing import TYPE_CHECKING
from uuid import uuid4
-from generalresearch.config import GRLBaseSettings
-from generalresearch.managers.thl.ledger_manager.ledger import LedgerManager
-from generalresearch.managers.thl.ledger_manager.thl_ledger import ThlLedgerManager
-from generalresearch.managers.thl.payout import UserPayoutEventManager
from generalresearch.managers.thl.user_compensate import user_compensate
from generalresearch.models.thl.definitions import (
Status,
@@ -18,10 +15,16 @@ from generalresearch.models.thl.ledger import (
UserLedgerTransactionTypesSummary,
UserLedgerTransactionTypeSummary,
)
-from generalresearch.models.thl.product import Product
-from generalresearch.models.thl.session import Session
-from generalresearch.models.thl.user import User
-from generalresearch.models.thl.wallet import PayoutType
+from generalresearch.models.thl.wallet.definitions import PayoutType
+
+if TYPE_CHECKING:
+ from generalresearch.config import GRLBaseSettings
+ from generalresearch.managers.thl.ledger_manager.ledger import LedgerManager
+ from generalresearch.managers.thl.ledger_manager.thl_ledger import ThlLedgerManager
+ from generalresearch.managers.thl.payout import UserPayoutEventManager
+ from generalresearch.models.thl.product import Product
+ from generalresearch.models.thl.session import Session
+ from generalresearch.models.thl.user import User
def test_user_txs(
diff --git a/tests/managers/thl/test_ledger/test_wallet.py b/tests/managers/thl/test_ledger/test_wallet.py
index cad3ea4..1ee9bf9 100644
--- a/tests/managers/thl/test_ledger/test_wallet.py
+++ b/tests/managers/thl/test_ledger/test_wallet.py
@@ -2,12 +2,11 @@ from __future__ import annotations
from collections.abc import Callable
from decimal import Decimal
+from typing import TYPE_CHECKING
from uuid import uuid4
import pytest
-from generalresearch.managers.thl.ledger_manager.thl_ledger import ThlLedgerManager
-from generalresearch.managers.thl.product import ProductManager
from generalresearch.models.thl.product import (
PayoutConfig,
PayoutTransformation,
@@ -15,7 +14,11 @@ from generalresearch.models.thl.product import (
Product,
UserWalletConfig,
)
-from generalresearch.models.thl.user import User
+
+if TYPE_CHECKING:
+ from generalresearch.managers.thl.ledger_manager.thl_ledger import ThlLedgerManager
+ from generalresearch.managers.thl.product import ProductManager
+ from generalresearch.models.thl.user import User
@pytest.fixture()
diff --git a/tests/managers/thl/test_payout.py b/tests/managers/thl/test_payout.py
index 0f3f103..2494de8 100644
--- a/tests/managers/thl/test_payout.py
+++ b/tests/managers/thl/test_payout.py
@@ -6,6 +6,7 @@ from datetime import UTC, datetime, timedelta
from decimal import Decimal
from random import choice as rand_choice
from random import randint
+from typing import TYPE_CHECKING
from uuid import uuid4
import pandas as pd
@@ -13,35 +14,39 @@ import pytest
from dask.distributed import Client as DaskClient
from generalresearch.currency import USDCent
-from generalresearch.incite.base import GRLDatasets
-from generalresearch.incite.collections.thl_web import (
- LedgerDFCollection,
-)
-from generalresearch.incite.mergers.pop_ledger import PopLedgerMerge
-from generalresearch.managers.thl.ledger_manager.ledger import LedgerManager
-from generalresearch.managers.thl.ledger_manager.thl_ledger import ThlLedgerManager
-from generalresearch.managers.thl.payout import (
- BrokerageProductPayoutEventManager,
- BusinessPayoutEventManager,
- PayoutEventManager,
- UserPayoutEventManager,
-)
-from generalresearch.managers.thl.product import ProductManager
-from generalresearch.models.gr.business import Business
from generalresearch.models.thl.definitions import PayoutStatus
from generalresearch.models.thl.finance import BusinessBalances
-from generalresearch.models.thl.ledger import LedgerAccount
from generalresearch.models.thl.payout import (
BrokerageProductPayoutEvent,
BusinessPayoutEvent,
- UserPayoutEvent,
)
-from generalresearch.models.thl.product import Product
-from generalresearch.models.thl.session import Session
-from generalresearch.models.thl.user import User
-from generalresearch.models.thl.wallet import PayoutType
-from generalresearch.pg_helper import PostgresConfig
-from generalresearch.redis_helper import RedisConfig
+from generalresearch.models.thl.wallet.definitions import PayoutType
+
+if TYPE_CHECKING:
+ from generalresearch.incite.base import GRLDatasets
+ from generalresearch.incite.collections.thl_web import (
+ LedgerDFCollection,
+ )
+ from generalresearch.incite.mergers.pop_ledger import PopLedgerMerge
+ from generalresearch.managers.thl.ledger_manager.ledger import LedgerManager
+ from generalresearch.managers.thl.ledger_manager.thl_ledger import ThlLedgerManager
+ from generalresearch.managers.thl.payout import (
+ BrokerageProductPayoutEventManager,
+ BusinessPayoutEventManager,
+ PayoutEventManager,
+ UserPayoutEventManager,
+ )
+ from generalresearch.managers.thl.product import ProductManager
+ from generalresearch.models.gr.business import Business
+ from generalresearch.models.thl.ledger import LedgerAccount
+ from generalresearch.models.thl.payout import (
+ UserPayoutEvent,
+ )
+ from generalresearch.models.thl.product import Product
+ from generalresearch.models.thl.session import Session
+ from generalresearch.models.thl.user import User
+ from generalresearch.pg_helper import PostgresConfig
+ from generalresearch.redis_helper import RedisConfig
logger = logging.getLogger()
@@ -189,7 +194,7 @@ class TestPayout:
utc_now: datetime,
):
from generalresearch.models.thl.definitions import PayoutStatus
- from generalresearch.models.thl.wallet import PayoutType
+ from generalresearch.models.thl.wallet.definitions import PayoutType
user_account = thl_ledger_manager.get_account_or_create_user_wallet(user=user)
bp_account = thl_ledger_manager.get_account_or_create_bp_wallet(product=product)
diff --git a/tests/managers/thl/test_product.py b/tests/managers/thl/test_product.py
index f93ac36..644dc90 100644
--- a/tests/managers/thl/test_product.py
+++ b/tests/managers/thl/test_product.py
@@ -1,13 +1,12 @@
from __future__ import annotations
from collections.abc import Callable
+from typing import TYPE_CHECKING
from uuid import uuid4
import pytest
-from generalresearch.managers.thl.product import ProductManager
-from generalresearch.models import Source
-from generalresearch.models.gr.team import Team
+from generalresearch.models.definitions import Source
from generalresearch.models.thl.product import (
Product,
ProfilingConfig,
@@ -19,6 +18,10 @@ from generalresearch.models.thl.product import (
UserHealthConfig,
)
+if TYPE_CHECKING:
+ from generalresearch.managers.thl.product import ProductManager
+ from generalresearch.models.gr.team import Team
+
class TestProductManagerGetMethods:
def test_get_by_uuid(self, product_manager: ProductManager):
diff --git a/tests/managers/thl/test_product_prod.py b/tests/managers/thl/test_product_prod.py
index 8734210..d584527 100644
--- a/tests/managers/thl/test_product_prod.py
+++ b/tests/managers/thl/test_product_prod.py
@@ -2,13 +2,16 @@ from __future__ import annotations
import logging
from collections.abc import Callable
+from typing import TYPE_CHECKING
from uuid import uuid4
import pytest
-from generalresearch.managers.thl.product import ProductManager
from generalresearch.models.thl.product import Product
+if TYPE_CHECKING:
+ from generalresearch.managers.thl.product import ProductManager
+
logger = logging.getLogger()
diff --git a/tests/managers/thl/test_profiling/test_question.py b/tests/managers/thl/test_profiling/test_question.py
index 97e7365..e4afb87 100644
--- a/tests/managers/thl/test_profiling/test_question.py
+++ b/tests/managers/thl/test_profiling/test_question.py
@@ -1,8 +1,11 @@
from collections.abc import Callable
+from typing import TYPE_CHECKING
from uuid import uuid4
-from generalresearch.managers.thl.profiling.question import QuestionManager
-from generalresearch.models import Source
+from generalresearch.models.definitions import Source
+
+if TYPE_CHECKING:
+ from generalresearch.managers.thl.profiling.question import QuestionManager
class TestQuestionManager:
diff --git a/tests/managers/thl/test_profiling/test_schema.py b/tests/managers/thl/test_profiling/test_schema.py
index b0eae31..feab902 100644
--- a/tests/managers/thl/test_profiling/test_schema.py
+++ b/tests/managers/thl/test_profiling/test_schema.py
@@ -1,10 +1,13 @@
from collections.abc import Callable
+from typing import TYPE_CHECKING
-from generalresearch.managers.thl.profiling.schema import (
- UpkSchemaManager,
-)
from generalresearch.models.thl.profiling.upk_property import PropertyType
+if TYPE_CHECKING:
+ from generalresearch.managers.thl.profiling.schema import (
+ UpkSchemaManager,
+ )
+
class TestUpkSchemaManager:
diff --git a/tests/managers/thl/test_profiling/test_user_upk.py b/tests/managers/thl/test_profiling/test_user_upk.py
index fa10b67..0f3140c 100644
--- a/tests/managers/thl/test_profiling/test_user_upk.py
+++ b/tests/managers/thl/test_profiling/test_user_upk.py
@@ -1,8 +1,10 @@
from collections.abc import Callable
from datetime import UTC, datetime
+from typing import TYPE_CHECKING
-from generalresearch.managers.thl.profiling.user_upk import UserUpkManager
-from generalresearch.models.thl.user import User
+if TYPE_CHECKING:
+ from generalresearch.managers.thl.profiling.user_upk import UserUpkManager
+ from generalresearch.models.thl.user import User
now = datetime.now(tz=UTC)
base = {
diff --git a/tests/managers/thl/test_session_manager.py b/tests/managers/thl/test_session_manager.py
index 05a49c1..30fd9ec 100644
--- a/tests/managers/thl/test_session_manager.py
+++ b/tests/managers/thl/test_session_manager.py
@@ -3,24 +3,27 @@ from __future__ import annotations
from collections.abc import Callable
from datetime import datetime, timedelta
from decimal import Decimal
+from typing import TYPE_CHECKING
from uuid import uuid4
from faker import Faker
-from generalresearch.managers.thl.session import SessionManager
-from generalresearch.models import DeviceType
-from generalresearch.models.gr.business import Business
-from generalresearch.models.gr.team import Team
+from generalresearch.models.definitions import DeviceType
from generalresearch.models.legacy.bucket import Bucket
from generalresearch.models.thl.definitions import (
SessionStatusCode2,
Status,
StatusCode1,
)
-from generalresearch.models.thl.product import Product
from generalresearch.models.thl.session import Session
from generalresearch.models.thl.user import User
-from generalresearch.pg_helper import PostgresConfig
+
+if TYPE_CHECKING:
+ from generalresearch.managers.thl.session import SessionManager
+ from generalresearch.models.gr.business import Business
+ from generalresearch.models.gr.team import Team
+ from generalresearch.models.thl.product import Product
+ from generalresearch.pg_helper import PostgresConfig
fake = Faker()
diff --git a/tests/managers/thl/test_survey.py b/tests/managers/thl/test_survey.py
index c3ab162..e114b70 100644
--- a/tests/managers/thl/test_survey.py
+++ b/tests/managers/thl/test_survey.py
@@ -4,16 +4,11 @@ import uuid
from collections.abc import Callable
from datetime import UTC, datetime
from decimal import Decimal
+from typing import TYPE_CHECKING
import pytest
-from generalresearch.managers.thl.buyer import BuyerManager
-from generalresearch.managers.thl.profiling.question import (
- QuestionManager,
-)
-from generalresearch.managers.thl.profiling.uqa import UQAManager
-from generalresearch.managers.thl.survey import SurveyManager, SurveyStatManager
-from generalresearch.models import Source
+from generalresearch.models.definitions import Source
from generalresearch.models.legacy.bucket import (
DurationSummary,
PayoutSummary,
@@ -30,6 +25,14 @@ from generalresearch.models.thl.survey.model import (
SurveyStat,
)
+if TYPE_CHECKING:
+ from generalresearch.managers.thl.buyer import BuyerManager
+ from generalresearch.managers.thl.profiling.question import (
+ QuestionManager,
+ )
+ from generalresearch.managers.thl.profiling.uqa import UQAManager
+ from generalresearch.managers.thl.survey import SurveyManager, SurveyStatManager
+
@pytest.fixture(scope="session")
def surveys_fixture() -> list[Survey]:
@@ -223,7 +226,6 @@ class TestSurvey:
class TestSurveyStat:
def test(
self,
- delete_buyers_surveys: Callable[..., None],
surveystat_manager,
survey_manager: SurveyManager,
surveys_fixture: list[Survey],
diff --git a/tests/managers/thl/test_survey_penalty.py b/tests/managers/thl/test_survey_penalty.py
index 9c29a0a..04f69d2 100644
--- a/tests/managers/thl/test_survey_penalty.py
+++ b/tests/managers/thl/test_survey_penalty.py
@@ -1,16 +1,19 @@
from __future__ import annotations
import uuid
+from typing import TYPE_CHECKING
import pytest
-from generalresearch.managers.thl.survey_penalty import SurveyPenaltyManager
-from generalresearch.models import Source
+from generalresearch.models.definitions import Source
from generalresearch.models.thl.survey.penalty import (
BPSurveyPenalty,
TeamSurveyPenalty,
)
+if TYPE_CHECKING:
+ from generalresearch.managers.thl.survey_penalty import SurveyPenaltyManager
+
@pytest.fixture
def product_uuid() -> str:
diff --git a/tests/managers/thl/test_task_adjustment.py b/tests/managers/thl/test_task_adjustment.py
index a7324c3..a14401e 100644
--- a/tests/managers/thl/test_task_adjustment.py
+++ b/tests/managers/thl/test_task_adjustment.py
@@ -5,23 +5,26 @@ from collections.abc import Callable
from datetime import UTC, datetime, timedelta
from decimal import Decimal
from random import randint
+from typing import TYPE_CHECKING
import pytest
-from generalresearch.managers.thl.ledger_manager.thl_ledger import ThlLedgerManager
-from generalresearch.managers.thl.session import SessionManager
-from generalresearch.managers.thl.task_adjustment import (
- TaskAdjustmentManager,
-)
-from generalresearch.managers.thl.wall import WallManager
-from generalresearch.models import Source
+from generalresearch.models.definitions import Source
from generalresearch.models.thl.definitions import (
Status,
StatusCode1,
WallAdjustedStatus,
)
-from generalresearch.models.thl.session import Session
-from generalresearch.models.thl.user import User
+
+if TYPE_CHECKING:
+ from generalresearch.managers.thl.ledger_manager.thl_ledger import ThlLedgerManager
+ from generalresearch.managers.thl.session import SessionManager
+ from generalresearch.managers.thl.task_adjustment import (
+ TaskAdjustmentManager,
+ )
+ from generalresearch.managers.thl.wall import WallManager
+ from generalresearch.models.thl.session import Session
+ from generalresearch.models.thl.user import User
@pytest.fixture()
diff --git a/tests/managers/thl/test_task_status.py b/tests/managers/thl/test_task_status.py
index b47f650..9846ce0 100644
--- a/tests/managers/thl/test_task_status.py
+++ b/tests/managers/thl/test_task_status.py
@@ -3,13 +3,11 @@ from __future__ import annotations
from collections.abc import Callable
from datetime import UTC, datetime, timedelta
from decimal import Decimal
+from typing import TYPE_CHECKING
import pytest
-from generalresearch.managers.thl.product import ProductManager
-from generalresearch.managers.thl.session import SessionManager
-from generalresearch.managers.thl.wall import WallManager
-from generalresearch.models import Source
+from generalresearch.models.definitions import Source
from generalresearch.models.thl.definitions import (
Status,
StatusCode1,
@@ -19,12 +17,18 @@ from generalresearch.models.thl.product import (
PayoutConfig,
PayoutTransformation,
PayoutTransformationPercentArgs,
- Product,
UserWalletConfig,
)
-from generalresearch.models.thl.session import Session, WallOut
+from generalresearch.models.thl.session import WallOut
from generalresearch.models.thl.task_status import TaskStatusResponse
-from generalresearch.models.thl.user import User
+
+if TYPE_CHECKING:
+ from generalresearch.managers.thl.product import ProductManager
+ from generalresearch.managers.thl.session import SessionManager
+ from generalresearch.managers.thl.wall import WallManager
+ from generalresearch.models.thl.product import Product
+ from generalresearch.models.thl.session import Session
+ from generalresearch.models.thl.user import User
start1 = datetime(2023, 2, 1, tzinfo=UTC)
finish1 = start1 + timedelta(minutes=5)
diff --git a/tests/managers/thl/test_user_manager/test_base.py b/tests/managers/thl/test_user_manager/test_base.py
index 8cd83ad..4a9750e 100644
--- a/tests/managers/thl/test_user_manager/test_base.py
+++ b/tests/managers/thl/test_user_manager/test_base.py
@@ -1,11 +1,11 @@
import logging
from datetime import UTC, datetime
from random import randint
+from typing import TYPE_CHECKING
from uuid import uuid4
import pytest
-from generalresearch.managers.thl.product import ProductManager
from generalresearch.managers.thl.user_manager import (
UserCreateNotAllowedError,
get_bp_user_create_limit_hourly,
@@ -17,13 +17,17 @@ from generalresearch.managers.thl.user_manager.rate_limit import (
RateLimitItemPerHourConstantKey,
UserManagerLimiter,
)
-from generalresearch.managers.thl.user_manager.user_manager import (
- UserManager,
-)
-from generalresearch.managers.thl.userhealth import AuditLogManager
-from generalresearch.models.thl.product import Product, UserCreateConfig
+from generalresearch.models.thl.product import UserCreateConfig
from generalresearch.models.thl.user import User
-from generalresearch.pg_helper import PostgresConfig
+
+if TYPE_CHECKING:
+ from generalresearch.managers.thl.product import ProductManager
+ from generalresearch.managers.thl.user_manager.user_manager import (
+ UserManager,
+ )
+ from generalresearch.managers.thl.userhealth import AuditLogManager
+ from generalresearch.models.thl.product import Product
+ from generalresearch.pg_helper import PostgresConfig
logger = logging.getLogger()
diff --git a/tests/managers/thl/test_user_manager/test_mysql.py b/tests/managers/thl/test_user_manager/test_mysql.py
index e6f43ef..ed7d458 100644
--- a/tests/managers/thl/test_user_manager/test_mysql.py
+++ b/tests/managers/thl/test_user_manager/test_mysql.py
@@ -1,9 +1,12 @@
from __future__ import annotations
-from generalresearch.managers.thl.user_manager.mysql_user_manager import (
- MysqlUserManager,
-)
-from generalresearch.models.thl.user import User
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from generalresearch.managers.thl.user_manager.mysql_user_manager import (
+ MysqlUserManager,
+ )
+ from generalresearch.models.thl.user import User
class TestUserManagerMysqlNew:
diff --git a/tests/managers/thl/test_user_manager/test_redis.py b/tests/managers/thl/test_user_manager/test_redis.py
index 04071ee..e51aae9 100644
--- a/tests/managers/thl/test_user_manager/test_redis.py
+++ b/tests/managers/thl/test_user_manager/test_redis.py
@@ -1,14 +1,18 @@
from __future__ import annotations
+from typing import TYPE_CHECKING
+
import pytest
-from generalresearch.config import GRLBaseSettings
from generalresearch.managers.base import Permission
from generalresearch.managers.thl.user_manager.redis_user_manager import (
RedisUserManager,
)
-from generalresearch.models.thl.user import User
-from generalresearch.pg_helper import PostgresConfig
+
+if TYPE_CHECKING:
+ from generalresearch.config import GRLBaseSettings
+ from generalresearch.models.thl.user import User
+ from generalresearch.pg_helper import PostgresConfig
class TestUserManagerRedis:
diff --git a/tests/managers/thl/test_user_manager/test_user_fetch.py b/tests/managers/thl/test_user_manager/test_user_fetch.py
index 87d010a..9a279ed 100644
--- a/tests/managers/thl/test_user_manager/test_user_fetch.py
+++ b/tests/managers/thl/test_user_manager/test_user_fetch.py
@@ -1,13 +1,15 @@
from __future__ import annotations
from collections.abc import Callable
+from typing import TYPE_CHECKING
from uuid import uuid4
import pytest
-from generalresearch.managers.thl.user_manager.user_manager import UserManager
-from generalresearch.models.thl.product import Product
-from generalresearch.models.thl.user import User
+if TYPE_CHECKING:
+ from generalresearch.managers.thl.user_manager.user_manager import UserManager
+ from generalresearch.models.thl.product import Product
+ from generalresearch.models.thl.user import User
class TestUserManagerFetch:
diff --git a/tests/managers/thl/test_user_manager/test_user_metadata.py b/tests/managers/thl/test_user_manager/test_user_metadata.py
index 670e38a..eb6a272 100644
--- a/tests/managers/thl/test_user_manager/test_user_metadata.py
+++ b/tests/managers/thl/test_user_manager/test_user_metadata.py
@@ -1,17 +1,20 @@
from __future__ import annotations
from collections.abc import Callable
+from typing import TYPE_CHECKING
from uuid import uuid4
import pytest
-from generalresearch.managers.thl.user_manager.user_metadata_manager import (
- UserMetadataManager,
-)
-from generalresearch.models.thl.product import Product
-from generalresearch.models.thl.user import User
from generalresearch.models.thl.user_profile import UserMetadata
+if TYPE_CHECKING:
+ from generalresearch.managers.thl.user_manager.user_metadata_manager import (
+ UserMetadataManager,
+ )
+ from generalresearch.models.thl.product import Product
+ from generalresearch.models.thl.user import User
+
class TestUserMetadataManager:
diff --git a/tests/managers/thl/test_user_streak.py b/tests/managers/thl/test_user_streak.py
index 61e2947..564a142 100644
--- a/tests/managers/thl/test_user_streak.py
+++ b/tests/managers/thl/test_user_streak.py
@@ -3,17 +3,15 @@ from __future__ import annotations
import copy
from datetime import UTC, date, datetime, timedelta
from decimal import Decimal
+from typing import TYPE_CHECKING
from zoneinfo import ZoneInfo
import pytest
-from generalresearch.managers.thl.session import SessionManager
from generalresearch.managers.thl.user_streak import (
- UserStreakManager,
compute_streaks_from_days,
)
from generalresearch.models.thl.definitions import Status, StatusCode1
-from generalresearch.models.thl.user import User
from generalresearch.models.thl.user_streak import (
StreakFulfillment,
StreakPeriod,
@@ -21,6 +19,13 @@ from generalresearch.models.thl.user_streak import (
UserStreak,
)
+if TYPE_CHECKING:
+ from generalresearch.managers.thl.session import SessionManager
+ from generalresearch.managers.thl.user_streak import (
+ UserStreakManager,
+ )
+ from generalresearch.models.thl.user import User
+
def test_compute_streaks_from_days():
days = [
diff --git a/tests/managers/thl/test_userhealth.py b/tests/managers/thl/test_userhealth.py
index ea54359..ce6c221 100644
--- a/tests/managers/thl/test_userhealth.py
+++ b/tests/managers/thl/test_userhealth.py
@@ -2,6 +2,7 @@ from __future__ import annotations
from collections.abc import Callable
from datetime import UTC, datetime
+from typing import TYPE_CHECKING
from uuid import uuid4
import faker
@@ -12,16 +13,24 @@ from generalresearch.managers.thl.userhealth import (
IPRecordManager,
UserIpHistoryManager,
)
-from generalresearch.models.thl.ipinfo import GeoIPInformation, IPGeoname, IPInformation
-from generalresearch.models.thl.product import Product
-from generalresearch.models.thl.user import User
+from generalresearch.models.thl.ipinfo import (
+ GeoIPInformation,
+)
from generalresearch.models.thl.user_iphistory import (
IPRecord,
UserIPHistory,
)
from generalresearch.models.thl.userhealth import AuditLog, AuditLogLevel
-from generalresearch.pg_helper import PostgresConfig
-from generalresearch.redis_helper import RedisConfig
+
+if TYPE_CHECKING:
+ from generalresearch.models.thl.ipinfo import (
+ IPGeoname,
+ IPInformation,
+ )
+ from generalresearch.models.thl.product import Product
+ from generalresearch.models.thl.user import User
+ from generalresearch.pg_helper import PostgresConfig
+ from generalresearch.redis_helper import RedisConfig
fake = faker.Faker()
diff --git a/tests/managers/thl/test_wall_manager.py b/tests/managers/thl/test_wall_manager.py
index b8a636f..3215de8 100644
--- a/tests/managers/thl/test_wall_manager.py
+++ b/tests/managers/thl/test_wall_manager.py
@@ -3,21 +3,24 @@ from __future__ import annotations
from collections.abc import Callable
from datetime import UTC, datetime, timedelta
from decimal import Decimal
+from typing import TYPE_CHECKING
from uuid import uuid4
import pytest
from pydantic import PositiveInt
-from generalresearch.managers.thl.session import SessionManager
-from generalresearch.managers.thl.wall import WallCacheManager, WallManager
-from generalresearch.models import Source
+from generalresearch.models.definitions import Source
from generalresearch.models.thl.session import (
ReportValue,
- Session,
Status,
StatusCode1,
)
-from generalresearch.models.thl.user import User
+
+if TYPE_CHECKING:
+ from generalresearch.managers.thl.session import SessionManager
+ from generalresearch.managers.thl.wall import WallCacheManager, WallManager
+ from generalresearch.models.thl.session import Session
+ from generalresearch.models.thl.user import User
class TestWallManager: