aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorstuppie2026-09-04 12:54:13 -0600
committerstuppie2026-09-04 12:54:13 -0600
commitf8f1f07b193845d92c7f6ef8ae95b9696db6330f (patch)
treec27e9d60dd6f71d309ef5c3f992d29500d1cd093 /tests
parent4b705346968e38671ac9601cfa8444c944ecc8bd (diff)
downloadgeneralresearch-f8f1f07b193845d92c7f6ef8ae95b9696db6330f.tar.gz
generalresearch-f8f1f07b193845d92c7f6ef8ae95b9696db6330f.zip
fix a lot of tests
Diffstat (limited to 'tests')
-rw-r--r--tests/conftest.py2
-rw-r--r--tests/models/custom_types/test_dsn.py5
-rw-r--r--tests/models/gr/test_authentication.py63
-rw-r--r--tests/models/gr/test_business.py25
-rw-r--r--tests/models/gr/test_team.py8
-rw-r--r--tests/models/test_finance.py14
-rw-r--r--tests/models/thl/test_contest/test_leaderboard_contest.py8
-rw-r--r--tests/models/thl/test_payout_format.py8
-rw-r--r--tests/models/thl/test_product.py21
9 files changed, 55 insertions, 99 deletions
diff --git a/tests/conftest.py b/tests/conftest.py
index 4777e15..b69d7ea 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -12,7 +12,6 @@ pytest_plugins = [
"test_utils.managers.contest.conftest",
"test_utils.managers.gr.conftest",
"test_utils.managers.ledger.conftest",
- "test_utils.managers.network.conftest",
"test_utils.managers.thl.conftest",
"test_utils.managers.upk.conftest",
# -- Models
@@ -20,7 +19,6 @@ pytest_plugins = [
"test_utils.models.contest.conftest",
"test_utils.models.gr.conftest",
"test_utils.models.ledger.conftest",
- "test_utils.models.network.conftest",
"test_utils.models.thl.conftest",
"test_utils.models.upk.conftest",
# -- Marketplaces
diff --git a/tests/models/custom_types/test_dsn.py b/tests/models/custom_types/test_dsn.py
index 2aae579..eff02d3 100644
--- a/tests/models/custom_types/test_dsn.py
+++ b/tests/models/custom_types/test_dsn.py
@@ -1,14 +1,12 @@
from __future__ import annotations
-from typing import TYPE_CHECKING
from uuid import uuid4
import pytest
from pydantic import BaseModel, Field, MySQLDsn, ValidationError
from pydantic_core import Url
-if TYPE_CHECKING:
- from generalresearch.models.custom_types import DaskDsn, SentryDsn
+from generalresearch.models.custom_types import DaskDsn, SentryDsn
# --- Test Pydantic Models ---
@@ -23,7 +21,6 @@ class SettingsModel(BaseModel):
class TestDaskDsn:
-
def test_base(self):
from dask.distributed import Client
diff --git a/tests/models/gr/test_authentication.py b/tests/models/gr/test_authentication.py
index 059a0a4..881571c 100644
--- a/tests/models/gr/test_authentication.py
+++ b/tests/models/gr/test_authentication.py
@@ -10,7 +10,6 @@ from typing import TYPE_CHECKING
from uuid import uuid4
import pytest
-from redis import Redis
from generalresearch.models.gr.authentication import Claims, GRToken, GRUser
from generalresearch.models.gr.team import Team
@@ -26,7 +25,6 @@ SSO_ISSUER = ""
class TestGRUser:
-
def test_init(self, gr_user: GRUser):
assert isinstance(gr_user, GRUser)
@@ -43,7 +41,7 @@ class TestGRUser:
def test_teams(
self,
gr_user: GRUser,
- membership: Membership,
+ gr_membership: Membership,
gr_db: PostgresConfig,
gr_redis_config: RedisConfig,
):
@@ -60,16 +58,16 @@ class TestGRUser:
self,
gr_user_token: GRToken,
gr_user: GRUser,
- membership: Membership,
+ gr_membership: Membership,
product_factory: Callable[..., Product],
- membership_factory: Callable[..., Membership],
- team: Team,
+ gr_membership_factory: Callable[..., Membership],
+ gr_team: Team,
thl_web_rr: PostgresConfig,
gr_redis_config: RedisConfig,
gr_db: PostgresConfig,
):
- product_factory(team=team)
- membership_factory(team=team, gr_user=gr_user)
+ product_factory(team=gr_team)
+ gr_membership_factory(team=gr_team, gr_user=gr_user)
gr_user.prefetch_teams(
pg_config=gr_db,
@@ -82,8 +80,8 @@ class TestGRUser:
self,
gr_user: GRUser,
product_factory: Callable[..., Product],
- team: Team,
- membership: Membership,
+ gr_team: Team,
+ gr_membership: Membership,
gr_db: PostgresConfig,
thl_web_rr: PostgresConfig,
gr_redis_config: RedisConfig,
@@ -94,15 +92,15 @@ class TestGRUser:
# Create a new Team membership, and then create a Product that
# is part of that team
- membership.prefetch_team(pg_config=gr_db, redis_config=gr_redis_config)
- assert isinstance(membership.team, Team)
+ gr_membership.prefetch_team(pg_config=gr_db, redis_config=gr_redis_config)
+ assert isinstance(gr_membership.team, Team)
- p: Product = product_factory(team=team)
+ p: Product = product_factory(team=gr_team)
assert p.id_int
- assert team.uuid == membership.team.uuid
- assert p.team_id == team.uuid
- assert p.team_uuid == membership.team.uuid
- assert gr_user.id == membership.user_id
+ assert gr_team.uuid == gr_membership.team.uuid
+ assert p.team_id == gr_team.uuid
+ assert p.team_uuid == gr_membership.team.uuid
+ assert gr_user.id == gr_membership.user_id
gr_user.prefetch_products(
pg_config=gr_db,
@@ -115,7 +113,6 @@ class TestGRUser:
class TestGRUserMethods:
-
def test_cache_key(self, gr_user: GRUser):
assert isinstance(gr_user.cache_key, str)
assert ":" in gr_user.cache_key
@@ -124,13 +121,13 @@ class TestGRUserMethods:
def test_to_redis(
self,
gr_user: GRUser,
- team: Team,
+ gr_team: Team,
gr_business: Business,
product_factory: Callable[..., Product],
- membership_factory: Callable[..., Membership],
+ gr_membership_factory: Callable[..., Membership],
):
- product_factory(team=team, business=gr_business)
- membership_factory(team=team, gr_user=gr_user)
+ product_factory(team=gr_team, business=gr_business)
+ gr_membership_factory(team=gr_team, gr_user=gr_user)
res = gr_user.to_redis()
assert isinstance(res, str)
@@ -171,16 +168,16 @@ class TestGRUserMethods:
gr_db: PostgresConfig,
thl_web_rr: PostgresConfig,
product_factory: Callable[..., Product],
- team: Team,
- membership_factory: Callable[..., Membership],
+ gr_team: Team,
+ gr_membership_factory: Callable[..., Membership],
thl_redis_config: RedisConfig,
):
from generalresearch.models.gr.authentication import GRUser
client = gr_redis_config.create_redis_client()
- p1 = product_factory(team=team)
- membership_factory(team=team, gr_user=gr_user)
+ p1 = product_factory(team=gr_team)
+ gr_membership_factory(team=gr_team, gr_user=gr_user)
gr_user.set_cache(
pg_config=gr_db, thl_web_rr=thl_web_rr, redis_config=gr_redis_config
@@ -206,10 +203,10 @@ class TestGRUserMethods:
gr_db: PostgresConfig,
thl_web_rr: PostgresConfig,
product_factory: Callable[..., Product],
- team: Team,
+ gr_team: Team,
gr_redis_config: RedisConfig,
):
- product_factory(team=team)
+ product_factory(team=gr_team)
client = gr_redis_config.create_redis_client()
gr_user.set_cache(
@@ -227,10 +224,10 @@ class TestGRUserMethods:
thl_web_rr: PostgresConfig,
product_factory: Callable[..., Product],
gr_business: Business,
- team: Team,
+ gr_team: Team,
gr_redis_config: RedisConfig,
):
- product_factory(team=team, business=gr_business)
+ product_factory(team=gr_team, business=gr_business)
gr_user.set_cache(
pg_config=gr_db, thl_web_rr=thl_web_rr, redis_config=gr_redis_config
@@ -247,10 +244,10 @@ class TestGRUserMethods:
gr_db: PostgresConfig,
thl_web_rr: PostgresConfig,
product_factory: Callable[..., Product],
- team: Team,
+ gr_team: Team,
gr_redis_config: RedisConfig,
):
- product_factory(team=team)
+ product_factory(team=gr_team)
gr_user.set_cache(
pg_config=gr_db, thl_web_rr=thl_web_rr, redis_config=gr_redis_config
@@ -262,7 +259,6 @@ class TestGRUserMethods:
class TestGRToken:
-
@pytest.fixture
def gr_token(self, gr_user: GRUser):
now = datetime.now(tz=UTC)
@@ -290,7 +286,6 @@ class TestGRToken:
class TestClaims:
-
def test_init(self):
d = {
diff --git a/tests/models/gr/test_business.py b/tests/models/gr/test_business.py
index 030a214..5d0de4f 100644
--- a/tests/models/gr/test_business.py
+++ b/tests/models/gr/test_business.py
@@ -119,11 +119,11 @@ class TestBusiness:
def duration(self) -> timedelta | None:
return None
- def test_init(self, business: Business):
+ def test_init(self, gr_business: Business):
- assert isinstance(business, Business)
- assert isinstance(business.id, int)
- assert isinstance(business.uuid, str)
+ assert isinstance(gr_business, Business)
+ assert isinstance(gr_business.id, int)
+ assert isinstance(gr_business.uuid, str)
def test_str_and_repr(
self,
@@ -208,17 +208,17 @@ class TestBusiness:
def test_addresses(
self,
- business: Business,
+ gr_business: Business,
gr_db: PostgresConfig,
):
from generalresearch.models.gr.business import BusinessAddress
- assert business.addresses is None
+ assert gr_business.addresses is None
- business.prefetch_addresses(pg_config=gr_db)
- assert isinstance(business.addresses, list)
- assert len(business.addresses) == 1
- assert isinstance(business.addresses[0], BusinessAddress)
+ gr_business.prefetch_addresses(pg_config=gr_db)
+ assert isinstance(gr_business.addresses, list)
+ assert len(gr_business.addresses) == 1
+ assert isinstance(gr_business.addresses[0], BusinessAddress)
def test_teams(
self,
@@ -674,8 +674,6 @@ class TestBusinessBalance:
started=start + timedelta(days=2),
)
- payout_event_manager.set_account_lookup_table(thl_lm=thl_ledger_manager)
-
brokerage_product_payout_event_factory(
product=u1.product,
amount=USDCent(5),
@@ -770,7 +768,6 @@ class TestBusinessBalance:
wall_req_cpi=Decimal("2.50"),
started=start + timedelta(days=2),
)
- payout_event_manager.set_account_lookup_table(thl_lm=thl_ledger_manager)
brokerage_product_payout_event_factory(
product=u1.product,
@@ -887,7 +884,6 @@ class TestBusinessBalance:
wall_req_cpi=Decimal(".75"),
started=start + timedelta(days=1),
)
- payout_event_manager.set_account_lookup_table(thl_lm=thl_ledger_manager)
brokerage_product_payout_event_factory(
product=u1.product,
amount=USDCent(71),
@@ -1041,7 +1037,6 @@ class TestBusinessBalance:
wall_req_cpi=Decimal("2.50"),
started=start + timedelta(days=2),
)
- payout_event_manager.set_account_lookup_table(thl_lm=thl_ledger_manager)
brokerage_product_payout_event_factory(
product=u1.product,
diff --git a/tests/models/gr/test_team.py b/tests/models/gr/test_team.py
index 8ebedb6..b5f1781 100644
--- a/tests/models/gr/test_team.py
+++ b/tests/models/gr/test_team.py
@@ -42,7 +42,6 @@ if TYPE_CHECKING:
class TestTeam:
-
def test_init(self, gr_team: Team):
assert isinstance(gr_team, Team)
@@ -54,7 +53,7 @@ class TestTeam:
):
assert gr_team.memberships is None
- gr_team.prefetch_memberships(membership_manager=gr_membership_manager)
+ gr_team.prefetch_memberships(gr_membership_manager=gr_membership_manager)
assert isinstance(gr_team.memberships, list)
assert len(gr_team.memberships) == 0
@@ -67,7 +66,7 @@ class TestTeam:
):
assert gr_team.memberships is None
- gr_team.prefetch_memberships(membership_manager=gr_membership_manager)
+ gr_team.prefetch_memberships(gr_membership_manager=gr_membership_manager)
assert isinstance(gr_team.memberships, list)
assert len(gr_team.memberships) == 1
assert gr_team.memberships[0].user_id == gr_user.id
@@ -75,7 +74,7 @@ class TestTeam:
# Create another new Membership
gr_membership_manager.create(team=gr_team, gr_user=gr_user_factory())
assert len(gr_team.memberships) == 1
- gr_team.prefetch_memberships(membership_manager=gr_membership_manager)
+ gr_team.prefetch_memberships(gr_membership_manager=gr_membership_manager)
assert len(gr_team.memberships) == 2
def test_gr_users(
@@ -146,7 +145,6 @@ class TestTeam:
class TestTeamMethods:
-
def test_cache_key(self, gr_team: Team):
assert isinstance(gr_team.cache_key, str)
assert ":" in gr_team.cache_key
diff --git a/tests/models/test_finance.py b/tests/models/test_finance.py
index 502c596..a1da961 100644
--- a/tests/models/test_finance.py
+++ b/tests/models/test_finance.py
@@ -13,9 +13,6 @@ import pytest
from dask.distributed import Client as DaskClient
# noinspection PyUnresolvedReferences
-from distributed.utils_test import (
- client_no_amm,
-)
from faker import Faker
from generalresearch.incite.schemas.mergers.pop_ledger import (
@@ -26,8 +23,6 @@ from generalresearch.models.thl.finance import (
POPFinancial,
ProductBalances,
)
-from test_utils.incite.collections.conftest import ledger_collection
-from test_utils.incite.mergers.conftest import pop_ledger_merge
if TYPE_CHECKING:
from generalresearch.incite.collections.thl_web import LedgerDFCollection
@@ -43,7 +38,6 @@ fake = Faker()
class TestProductBalanceInitialize:
-
def test_unknown_fields(self):
with pytest.raises(expected_exception=ValueError):
ProductBalances.model_validate(
@@ -251,7 +245,6 @@ class TestProductBalanceInitialize:
class TestBusinessBalanceInitialize:
-
def test_validate_product_ids(self):
instance1 = ProductBalances.model_validate(
{"bp_payment.CREDIT": 500, "bp_adjustment.DEBIT": 40}
@@ -668,9 +661,11 @@ class TestBusinessBalanceInitialize:
),
)
class TestProductFinanceData:
-
def test_base(
self,
+ ledger_collection: LedgerDFCollection,
+ pop_ledger_merge,
+ client_no_amm,
duration: timedelta,
product: Product,
user_factory: Callable[..., User],
@@ -681,9 +676,9 @@ class TestProductFinanceData:
# -- Build & Setup
u: User = user_factory(product=product, created=ledger_collection.start)
+ assert u.product
for item in ledger_collection.items:
-
for _ in range(3):
rand_item_time = fake.date_time_between(
start_date=item.start,
@@ -737,7 +732,6 @@ class TestProductFinanceData:
class TestPOPFinancialData:
-
def test_base(
self,
client_no_amm: DaskClient,
diff --git a/tests/models/thl/test_contest/test_leaderboard_contest.py b/tests/models/thl/test_contest/test_leaderboard_contest.py
index c49776b..f787bdf 100644
--- a/tests/models/thl/test_contest/test_leaderboard_contest.py
+++ b/tests/models/thl/test_contest/test_leaderboard_contest.py
@@ -33,7 +33,7 @@ class TestLeaderboardContest(TestContest):
@pytest.fixture
def leaderboard_contest(
- self, product: Product, thl_redis: Redis, user_manager: UserManager
+ self, product: Product, thl_redis_client: Redis, user_manager: UserManager
) -> LeaderboardContest:
board_key = f"leaderboard:{product.uuid}:us:weekly:2025-05-26:complete_count"
@@ -67,14 +67,14 @@ class TestLeaderboardContest(TestContest):
),
],
)
- c._redis_client = thl_redis
+ c._redis_client = thl_redis_client
c._user_manager = user_manager
return c
def test_init(
self,
leaderboard_contest: LeaderboardContest,
- thl_redis: Redis,
+ thl_redis_client: Redis,
user_1: User,
user_2: User,
):
@@ -82,7 +82,7 @@ class TestLeaderboardContest(TestContest):
assert leaderboard_contest.end_condition.ends_at is not None
lbm = LeaderboardManager(
- redis_client=thl_redis,
+ redis_client=thl_redis_client,
board_code=model.board_code,
country_iso=model.country_iso,
freq=model.freq,
diff --git a/tests/models/thl/test_payout_format.py b/tests/models/thl/test_payout_format.py
index 56eafe3..fe7aea5 100644
--- a/tests/models/thl/test_payout_format.py
+++ b/tests/models/thl/test_payout_format.py
@@ -1,20 +1,14 @@
from __future__ import annotations
-from typing import TYPE_CHECKING
-
import pytest
from pydantic import BaseModel
from generalresearch.models.thl.payout_format import (
PayoutFormatField,
+ PayoutFormatType,
format_payout_format,
)
-if TYPE_CHECKING:
- from generalresearch.models.thl.payout_format import (
- PayoutFormatType,
- )
-
class PayoutFormatTestClass(BaseModel):
payout_format: PayoutFormatType = PayoutFormatField
diff --git a/tests/models/thl/test_product.py b/tests/models/thl/test_product.py
index 223430f..25affcf 100644
--- a/tests/models/thl/test_product.py
+++ b/tests/models/thl/test_product.py
@@ -48,7 +48,6 @@ if TYPE_CHECKING:
class TestProduct:
-
def test_init(self):
# By default, just a Pydantic instance doesn't have an id_int
instance = Product.model_validate(
@@ -70,13 +69,13 @@ class TestProduct:
# By default, just a Pydantic instance doesn't have an id_int
instance = product_factory()
assert isinstance(instance.id_int, int)
+ assert isinstance(instance, Product)
res = instance.model_dump_json()
- assert isinstance(res, Product)
# we json skip & exclude
- res = instance.model_dump()
- assert isinstance(res, Product)
+ p = Product.model_validate_json(res)
+ assert isinstance(p, Product)
def test_redirect_url(self):
p = Product.model_validate(
@@ -150,12 +149,6 @@ class TestProduct:
redirect_url="https://www.google.com/hey",
)
- assert isinstance(p.payout_config.payout_transformation, PayoutTransformation)
- assert isinstance(
- p.payout_config.payout_transformation.kwargs,
- PayoutTransformationPercentArgs,
- )
-
p.payout_config.payout_transformation = PayoutTransformation.model_validate(
{
"f": "payout_transformation_percent",
@@ -598,7 +591,6 @@ class TestGlobalProductConfigFor:
class TestProductFinancials:
-
@pytest.fixture
def start(self) -> datetime:
return datetime(year=2018, month=3, day=14, hour=0, tzinfo=UTC)
@@ -639,7 +631,6 @@ class TestProductFinancials:
u1: User = user_factory(product=p1)
bp_wallet = thl_ledger_manager.get_account_or_create_bp_wallet(product=p1)
thl_ledger_manager.get_account_or_create_user_wallet(user=u1)
- brokerage_product_payout_event_manager.set_account_lookup_table(thl_lm=thl_lm)
assert (
len(
@@ -818,7 +809,6 @@ class TestProductFinancials:
class TestProductBalance:
-
@pytest.fixture
def start(self) -> datetime:
return datetime(year=2018, month=3, day=14, hour=0, tzinfo=UTC)
@@ -867,7 +857,6 @@ class TestProductBalance:
pop_ledger_merge.build(client=client_no_amm, ledger_coll=ledger_collection)
# 2. Payout and build Parquets 2nd time
- payout_event_manager.set_account_lookup_table(thl_lm=thl_ledger_manager)
brokerage_product_payout_event_factory(
product=product,
amount=USDCent(71),
@@ -928,7 +917,6 @@ class TestProductBalance:
# 2. Payout and build Parquets 2nd time but this payout is "now"
# so it hasn't already been archived
- payout_event_manager.set_account_lookup_table(thl_lm=thl_ledger_manager)
brokerage_product_payout_event_factory(
product=product,
amount=USDCent(71),
@@ -947,7 +935,6 @@ class TestProductBalance:
class TestProductPOPFinancial:
-
@pytest.fixture
def start(self) -> datetime:
return datetime(year=2018, month=3, day=14, hour=0, tzinfo=UTC)
@@ -1020,7 +1007,6 @@ class TestProductPOPFinancial:
class TestProductCache:
-
@pytest.fixture
def start(self) -> datetime:
return datetime(year=2018, month=3, day=14, hour=0, tzinfo=UTC)
@@ -1143,7 +1129,6 @@ class TestProductCache:
)
# 2. Payout
- payout_event_manager.set_account_lookup_table(thl_lm=thl_ledger_manager)
brokerage_product_payout_event_factory(
product=product,
amount=USDCent(71),