aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstuppie2026-09-07 09:57:06 -0600
committerstuppie2026-09-07 09:57:06 -0600
commit967eb761c414e22c7567d0f594ae7a7bc6e3e62c (patch)
tree400e69cc1592713a53ab6b2e086749785b096d95
parentb07720826af57f056aec3818a3646bb296a24bfd (diff)
downloadgeneralresearch-967eb761c414e22c7567d0f594ae7a7bc6e3e62c.tar.gz
generalresearch-967eb761c414e22c7567d0f594ae7a7bc6e3e62c.zip
Leaderboard name and id are optional b/c they get set by validator. can't init the class otherwise. Fix tests. test_leaderboard_manager datetime is not supposed to have a timzeone; that is the point of the test
-rw-r--r--generalresearch/incite/mergers/foundations/enriched_session.py1
-rw-r--r--generalresearch/models/thl/leaderboard.py6
-rw-r--r--tests/managers/leaderboard.py22
-rw-r--r--tests/managers/thl/test_category.py4
-rw-r--r--tests/managers/thl/test_contest/test_leaderboard.py12
5 files changed, 26 insertions, 19 deletions
diff --git a/generalresearch/incite/mergers/foundations/enriched_session.py b/generalresearch/incite/mergers/foundations/enriched_session.py
index e006768..cea6501 100644
--- a/generalresearch/incite/mergers/foundations/enriched_session.py
+++ b/generalresearch/incite/mergers/foundations/enriched_session.py
@@ -185,7 +185,6 @@ class EnrichedSessionMergeItem(MergeCollectionItem):
client,
ddf=ddf,
is_partial=False,
- client_resources=client_resources,
)
diff --git a/generalresearch/models/thl/leaderboard.py b/generalresearch/models/thl/leaderboard.py
index 8c7f1bd..523c696 100644
--- a/generalresearch/models/thl/leaderboard.py
+++ b/generalresearch/models/thl/leaderboard.py
@@ -78,14 +78,16 @@ class Leaderboard(BaseModel):
weekly, and monthly leaderboard.
"""
- id: UUIDStr = Field(
+ id: UUIDStr | None = Field(
description="Unique ID for this leaderboard",
examples=["845b0074ad533df580ebb9c80cc3bce1"],
+ default=None,
)
- name: str = Field(
+ name: str | None = Field(
description="Descriptive name for the leaderboard based on the board_code",
examples=["Number of Completes"],
+ default=None,
)
board_code: LeaderboardCode = Field(
diff --git a/tests/managers/leaderboard.py b/tests/managers/leaderboard.py
index 197477b..fad0b6b 100644
--- a/tests/managers/leaderboard.py
+++ b/tests/managers/leaderboard.py
@@ -83,7 +83,8 @@ def _create_session(
@pytest.fixture(scope="function")
-def setup_leaderboards(thl_redis: RedisConfig) -> Callable[..., None]:
+def setup_leaderboards(thl_redis_config: RedisConfig) -> Callable[..., None]:
+ thl_redis = thl_redis_config.create_redis_client()
def _inner():
complete_count = {
@@ -138,10 +139,10 @@ def setup_leaderboards(thl_redis: RedisConfig) -> Callable[..., None]:
class TestLeaderboards:
-
def test_leaderboard_manager(
- self, setup_leaderboards: Callable[..., None], thl_redis: RedisConfig
+ self, setup_leaderboards: Callable[..., None], thl_redis_config: RedisConfig
):
+ thl_redis = thl_redis_config.create_redis_client()
setup_leaderboards()
country_iso = "us"
@@ -153,7 +154,8 @@ class TestLeaderboards:
freq=freq,
product_id=product_id,
country_iso=country_iso,
- within_time=datetime(2025, 2, 5, 0, 0, 0, tzinfo=UTC),
+ # This is supposed to not have a timezone. @max don't change it
+ within_time=datetime(2025, 2, 5, 0, 0, 0),
)
lb = m.get_leaderboard()
assert lb.period_start_local == datetime(
@@ -182,8 +184,9 @@ class TestLeaderboards:
]
def test_leaderboard_manager_bpuid(
- self, setup_leaderboards: Callable[..., None], thl_redis: RedisConfig
+ self, setup_leaderboards: Callable[..., None], thl_redis_config: RedisConfig
):
+ thl_redis = thl_redis_config.create_redis_client()
setup_leaderboards()
country_iso = "us"
@@ -216,8 +219,9 @@ class TestLeaderboards:
self,
setup_leaderboards: Callable[..., None],
session_factory: Callable[..., Session],
- thl_redis: RedisConfig,
+ thl_redis_config: RedisConfig,
):
+ thl_redis = thl_redis_config.create_redis_client()
setup_leaderboards()
hit_leaderboards(redis_client=thl_redis, session=session_factory())
@@ -265,8 +269,9 @@ class TestLeaderboards:
self,
setup_leaderboards: Callable[..., None],
session_factory: Callable[..., None],
- thl_redis: RedisConfig,
+ thl_redis_config: RedisConfig,
):
+ thl_redis = thl_redis_config.create_redis_client()
setup_leaderboards()
session = session_factory(product_user_id="zzz")
@@ -283,7 +288,8 @@ class TestLeaderboards:
assert lb.row_count == 8
assert LeaderboardRow(bpuid="zzz", value=1, rank=6) in lb.rows
- def test_leaderboard_country(self, thl_redis: RedisConfig):
+ def test_leaderboard_country(self, thl_redis_config: RedisConfig):
+ thl_redis = thl_redis_config.create_redis_client()
m = LeaderboardManager(
redis_client=thl_redis,
board_code=LeaderboardCode.COMPLETE_COUNT,
diff --git a/tests/managers/thl/test_category.py b/tests/managers/thl/test_category.py
index 4d00643..a2805bc 100644
--- a/tests/managers/thl/test_category.py
+++ b/tests/managers/thl/test_category.py
@@ -15,7 +15,7 @@ if TYPE_CHECKING:
class TestCategory:
@pytest.fixture
- def beauty_fitness(self, thl_web_rw: PostgresConfig) -> Category:
+ def beauty_fitness(self) -> Category:
return Category(
uuid="12c1e96be82c4642a07a12a90ce6f59e",
@@ -41,7 +41,7 @@ class TestCategory:
uuid="aacff523c8e246888215611ec3b823c0",
adwords_vertical_id="235",
label="Hair Loss",
- path=f"{hair_care}/Hair Loss",
+ path=f"{hair_care.path}/Hair Loss",
)
@pytest.fixture
diff --git a/tests/managers/thl/test_contest/test_leaderboard.py b/tests/managers/thl/test_contest/test_leaderboard.py
index d80d512..9fd4428 100644
--- a/tests/managers/thl/test_contest/test_leaderboard.py
+++ b/tests/managers/thl/test_contest/test_leaderboard.py
@@ -29,13 +29,13 @@ class TestLeaderboardContestCRUD:
def test_create(
self,
- contest_create: LeaderboardContestCreate,
+ leaderboard_contest_create: LeaderboardContestCreate,
product_user_wallet_yes: Product,
thl_ledger_manager: ThlLedgerManager,
contest_manager: ContestManager,
):
c = contest_manager.create(
- product_id=product_user_wallet_yes.uuid, contest_create=contest_create
+ product_id=product_user_wallet_yes.uuid, contest_create=leaderboard_contest_create
)
c_out = contest_manager.get(c.uuid)
assert c == c_out
@@ -51,13 +51,13 @@ class TestLeaderboardContestCRUD:
def test_enter(
self,
user_with_wallet: User,
- contest_in_db: LeaderboardContest,
+ leaderboard_contest_in_db: LeaderboardContest,
thl_ledger_manager: ThlLedgerManager,
contest_manager: ContestManager,
user_manager: UserManager,
thl_redis: RedisConfig,
):
- contest = contest_in_db
+ contest = leaderboard_contest_in_db
user = user_with_wallet
c: LeaderboardContest = contest_manager.get(contest_uuid=contest.uuid)
@@ -84,14 +84,14 @@ class TestLeaderboardContestCRUD:
def test_contest_ends(
self,
user_with_wallet: User,
- contest_in_db: LeaderboardContest,
+ leaderboard_contest_in_db: LeaderboardContest,
thl_ledger_manager: ThlLedgerManager,
contest_manager: ContestManager,
user_manager: UserManager,
thl_redis: RedisConfig,
):
# The contest should be over. We need to trigger it.
- contest = contest_in_db
+ contest = leaderboard_contest_in_db
contest._redis_client = thl_redis
contest._user_manager = user_manager
user = user_with_wallet