diff options
| author | stuppie | 2026-09-07 09:57:06 -0600 |
|---|---|---|
| committer | stuppie | 2026-09-07 09:57:06 -0600 |
| commit | 967eb761c414e22c7567d0f594ae7a7bc6e3e62c (patch) | |
| tree | 400e69cc1592713a53ab6b2e086749785b096d95 | |
| parent | b07720826af57f056aec3818a3646bb296a24bfd (diff) | |
| download | generalresearch-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.py | 1 | ||||
| -rw-r--r-- | generalresearch/models/thl/leaderboard.py | 6 | ||||
| -rw-r--r-- | tests/managers/leaderboard.py | 22 | ||||
| -rw-r--r-- | tests/managers/thl/test_category.py | 4 | ||||
| -rw-r--r-- | tests/managers/thl/test_contest/test_leaderboard.py | 12 |
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 |
