aboutsummaryrefslogtreecommitdiff
path: root/test_utils/models
diff options
context:
space:
mode:
authorMax Nanis2026-03-08 21:57:53 -0400
committerMax Nanis2026-03-08 21:57:53 -0400
commitce291a165fab6b6dc9f053c7b75a699d0fdf389f (patch)
tree7a7b393f432684e13ffe92c40015fb6afc07ceac /test_utils/models
parentb2e56ec3ebc5eb91eb10cc37cc9e02102f441660 (diff)
downloadgeneralresearch-ce291a165fab6b6dc9f053c7b75a699d0fdf389f.tar.gz
generalresearch-ce291a165fab6b6dc9f053c7b75a699d0fdf389f.zip
Simple typing changes, Ruff import formatter. p2
Diffstat (limited to 'test_utils/models')
-rw-r--r--test_utils/models/conftest.py110
1 files changed, 60 insertions, 50 deletions
diff --git a/test_utils/models/conftest.py b/test_utils/models/conftest.py
index dcc3b66..81dc11e 100644
--- a/test_utils/models/conftest.py
+++ b/test_utils/models/conftest.py
@@ -5,7 +5,6 @@ from random import randint
from typing import TYPE_CHECKING, Callable, Dict, List, Optional
from uuid import uuid4
-import pytest
from pydantic import AwareDatetime, PositiveInt
from generalresearch.models import Source
@@ -14,6 +13,7 @@ from generalresearch.models.thl.definitions import (
Status,
)
from generalresearch.models.thl.survey.model import Buyer, Survey
+from generalresearch.pg_helper import PostgresConfig
from test_utils.managers.conftest import (
business_address_manager,
business_manager,
@@ -28,6 +28,7 @@ from test_utils.managers.conftest import (
if TYPE_CHECKING:
from generalresearch.currency import USDCent
+ from generalresearch.managers.thl.session import SessionManager
from generalresearch.models.gr.authentication import GRToken, GRUser
from generalresearch.models.gr.business import (
Business,
@@ -53,7 +54,7 @@ if TYPE_CHECKING:
@pytest.fixture(scope="function")
-def user(request, product_manager, user_manager, thl_web_rr) -> "User":
+def user(request, product_manager, user_manager, thl_web_rr: PostgresConfig) -> "User":
product = getattr(request, "product", None)
if product is None:
@@ -74,25 +75,29 @@ def user_with_wallet(
@pytest.fixture
-def user_with_wallet_amt(request, user_factory, product_amt_true: "Product") -> "User":
+def user_with_wallet_amt(
+ request, user_factory: Callable[..., "User"], product_amt_true: "Product"
+) -> "User":
# A user on a product with user wallet enabled, on AMT, but they have no money
return user_factory(product=product_amt_true)
@pytest.fixture(scope="function")
-def user_factory(user_manager, thl_web_rr) -> Callable:
- def _create_user(product: "Product", created: Optional[datetime] = None):
+def user_factory(user_manager, thl_web_rr: PostgresConfig) -> Callable[..., "User"]:
+
+ def _inner(product: "Product", created: Optional[datetime] = None):
u = user_manager.create_dummy(product=product, created=created)
u.prefetch_product(pg_config=thl_web_rr)
return u
- return _create_user
+ return _inner
@pytest.fixture(scope="function")
-def wall_factory(wall_manager) -> Callable:
- def _create_wall(
+def wall_factory(wall_manager) -> Callable[..., "Wall"]:
+
+ def _inner(
session: "Session", wall_status: "Status", req_cpi: Optional[Decimal] = None
):
@@ -126,10 +131,10 @@ def wall_factory(wall_manager) -> Callable:
return wall
- return _create_wall
+ return _inner
-@pytest.fixture(scope="function")
+@pytest.fixture
def wall(session, user, wall_manager) -> Optional["Wall"]:
from generalresearch.models.thl.task_status import StatusCode1
@@ -143,9 +148,12 @@ def wall(session, user, wall_manager) -> Optional["Wall"]:
return wall
-@pytest.fixture(scope="function")
+@pytest.fixture
def session_factory(
- wall_factory, session_manager, wall_manager, utc_hour_ago
+ wall_factory,
+ session_manager: "SessionManager",
+ wall_manager,
+ utc_hour_ago: datetime,
) -> Callable[..., "Session"]:
from generalresearch.models.thl.session import Source
@@ -208,11 +216,13 @@ def session_factory(
@pytest.fixture(scope="function")
def finished_session_factory(
- session_factory, session_manager, utc_hour_ago
-) -> Callable:
+ session_factory: Callable[..., "Session"],
+ session_manager: "SessionManager",
+ utc_hour_ago: datetime,
+) -> Callable[..., "Session"]:
from generalresearch.models.thl.session import Source
- def _create_finished_session(
+ def _inner(
user: "User",
# Wall details
wall_count: int = 5,
@@ -246,11 +256,11 @@ def finished_session_factory(
)
return s
- return _create_finished_session
+ return _inner
@pytest.fixture(scope="function")
-def session(user, session_manager, wall_manager) -> "Session":
+def session(user, session_manager: "SessionManager", wall_manager) -> "Session":
from generalresearch.models.thl.session import Session, Wall
session: Session = session_manager.create_dummy(user=user, country_iso="us")
@@ -294,7 +304,7 @@ def product_factory(product_manager) -> Callable:
return _create_product
-@pytest.fixture(scope="function")
+@pytest.fixture
def payout_config(request) -> "PayoutConfig":
from generalresearch.models.thl.product import (
PayoutConfig,
@@ -315,7 +325,7 @@ def payout_config(request) -> "PayoutConfig":
)
-@pytest.fixture(scope="function")
+@pytest.fixture
def product_user_wallet_yes(payout_config, product_manager) -> "Product":
from generalresearch.managers.thl.product import ProductManager
from generalresearch.models.thl.product import UserWalletConfig
@@ -326,7 +336,7 @@ def product_user_wallet_yes(payout_config, product_manager) -> "Product":
)
-@pytest.fixture(scope="function")
+@pytest.fixture
def product_user_wallet_no(product_manager) -> "Product":
from generalresearch.managers.thl.product import ProductManager
from generalresearch.models.thl.product import UserWalletConfig
@@ -337,7 +347,7 @@ def product_user_wallet_no(product_manager) -> "Product":
)
-@pytest.fixture(scope="function")
+@pytest.fixture
def product_amt_true(product_manager, payout_config) -> "Product":
from generalresearch.models.thl.product import UserWalletConfig
@@ -347,7 +357,7 @@ def product_amt_true(product_manager, payout_config) -> "Product":
)
-@pytest.fixture(scope="function")
+@pytest.fixture
def bp_payout_factory(
thl_lm, product_manager, business_payout_event_manager
) -> Callable:
@@ -380,7 +390,7 @@ def bp_payout_factory(
# === GR ===
-@pytest.fixture(scope="function")
+@pytest.fixture
def business(request, business_manager) -> "Business":
from generalresearch.managers.gr.business import BusinessManager
@@ -388,7 +398,7 @@ def business(request, business_manager) -> "Business":
return business_manager.create_dummy()
-@pytest.fixture(scope="function")
+@pytest.fixture
def business_address(request, business, business_address_manager) -> "BusinessAddress":
from generalresearch.managers.gr.business import BusinessAddressManager
@@ -396,7 +406,7 @@ def business_address(request, business, business_address_manager) -> "BusinessAd
return business_address_manager.create_dummy(business_id=business.id)
-@pytest.fixture(scope="function")
+@pytest.fixture
def business_bank_account(
request, business, business_bank_account_manager
) -> "BusinessBankAccount":
@@ -406,7 +416,7 @@ def business_bank_account(
return business_bank_account_manager.create_dummy(business_id=business.id)
-@pytest.fixture(scope="function")
+@pytest.fixture
def team(request, team_manager) -> "Team":
from generalresearch.managers.gr.team import TeamManager
@@ -414,7 +424,7 @@ def team(request, team_manager) -> "Team":
return team_manager.create_dummy()
-@pytest.fixture(scope="function")
+@pytest.fixture
def gr_user(gr_um) -> "GRUser":
from generalresearch.managers.gr.authentication import GRUserManager
@@ -422,7 +432,7 @@ def gr_user(gr_um) -> "GRUser":
return gr_um.create_dummy()
-@pytest.fixture(scope="function")
+@pytest.fixture
def gr_user_cache(gr_user, gr_db, thl_web_rr, gr_redis_config):
gr_user.set_cache(
pg_config=gr_db, thl_web_rr=thl_web_rr, redis_config=gr_redis_config
@@ -430,12 +440,12 @@ def gr_user_cache(gr_user, gr_db, thl_web_rr, gr_redis_config):
return gr_user
-@pytest.fixture(scope="function")
-def gr_user_factory(gr_um) -> Callable:
- def _create_gr_user():
+@pytest.fixture
+def gr_user_factory(gr_um) -> Callable[..., "GRUser"]:
+ def _inner():
return gr_um.create_dummy()
- return _create_gr_user
+ return _inner
@pytest.fixture()
@@ -447,7 +457,7 @@ def gr_user_token(gr_user, gr_tm, gr_db) -> "GRToken":
@pytest.fixture()
-def gr_user_token_header(gr_user_token) -> Dict:
+def gr_user_token_header(gr_user_token: "GRToken") -> Dict[str, str]:
return gr_user_token.auth_header
@@ -461,41 +471,41 @@ def membership(request, team, gr_user, team_manager) -> "Membership":
@pytest.fixture(scope="function")
def membership_factory(
team: "Team", gr_user: "GRUser", membership_manager, team_manager, gr_um
-) -> Callable:
+) -> Callable[..., "Membership"]:
from generalresearch.managers.gr.team import MembershipManager
membership_manager: MembershipManager
- def _create_membership(**kwargs):
+ def _inner(**kwargs) -> "Membership":
_team = kwargs.get("team", team_manager.create_dummy())
_gr_user = kwargs.get("gr_user", gr_um.create_dummy())
return membership_manager.create(team=_team, gr_user=_gr_user)
- return _create_membership
+ return _inner
-@pytest.fixture(scope="function")
-def audit_log(audit_log_manager, user) -> "AuditLog":
+@pytest.fixture
+def audit_log(audit_log_manager, user: "User") -> "AuditLog":
from generalresearch.managers.thl.userhealth import AuditLogManager
audit_log_manager: AuditLogManager
return audit_log_manager.create_dummy(user_id=user.user_id)
-@pytest.fixture(scope="function")
-def audit_log_factory(audit_log_manager) -> Callable:
+@pytest.fixture
+def audit_log_factory(audit_log_manager) -> Callable[..., "AuditLog"]:
from generalresearch.managers.thl.userhealth import AuditLogManager
audit_log_manager: AuditLogManager
- def _create_audit_log(
+ def _inner(
user_id: PositiveInt,
level: Optional["AuditLogLevel"] = None,
event_type: Optional[str] = None,
event_msg: Optional[str] = None,
event_value: Optional[float] = None,
- ):
+ ) -> "AuditLog":
return audit_log_manager.create_dummy(
user_id=user_id,
level=level,
@@ -504,10 +514,10 @@ def audit_log_factory(audit_log_manager) -> Callable:
event_value=event_value,
)
- return _create_audit_log
+ return _inner
-@pytest.fixture(scope="function")
+@pytest.fixture
def ip_geoname(ip_geoname_manager) -> "IPGeoname":
from generalresearch.managers.thl.ipinfo import IPGeonameManager
@@ -515,7 +525,7 @@ def ip_geoname(ip_geoname_manager) -> "IPGeoname":
return ip_geoname_manager.create_dummy()
-@pytest.fixture(scope="function")
+@pytest.fixture
def ip_information(ip_information_manager, ip_geoname) -> "IPInformation":
from generalresearch.managers.thl.ipinfo import IPInformationManager
@@ -525,7 +535,7 @@ def ip_information(ip_information_manager, ip_geoname) -> "IPInformation":
)
-@pytest.fixture(scope="function")
+@pytest.fixture
def ip_information_factory(ip_information_manager) -> Callable:
from generalresearch.managers.thl.ipinfo import IPInformationManager
@@ -542,8 +552,8 @@ def ip_information_factory(ip_information_manager) -> Callable:
return _create_ip_info
-@pytest.fixture(scope="function")
-def ip_record(ip_record_manager, ip_geoname, user) -> "IPRecord":
+@pytest.fixture
+def ip_record(ip_record_manager, ip_geoname, user: "User") -> "IPRecord":
from generalresearch.managers.thl.userhealth import IPRecordManager
ip_record_manager: IPRecordManager
@@ -551,8 +561,8 @@ def ip_record(ip_record_manager, ip_geoname, user) -> "IPRecord":
return ip_record_manager.create_dummy(user_id=user.user_id)
-@pytest.fixture(scope="function")
-def ip_record_factory(ip_record_manager, user) -> Callable:
+@pytest.fixture
+def ip_record_factory(ip_record_manager, user: "User") -> Callable:
from generalresearch.managers.thl.userhealth import IPRecordManager
ip_record_manager: IPRecordManager