Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions src/libkernelbot/leaderboard_db.py
Original file line number Diff line number Diff line change
Expand Up @@ -890,7 +890,6 @@ def get_leaderboard_submissions(
WHERE sr.submission_id = s.id
AND sr.secret
AND sr.runner = r.runner
AND sr.mode = r.mode
AND sr.passed = FALSE
)
ORDER BY r.score ASC
Expand Down Expand Up @@ -920,7 +919,6 @@ def get_leaderboard_submissions(
WHERE sr.submission_id = s.id
AND sr.secret
AND sr.runner = r.runner
AND sr.mode = r.mode
AND sr.passed = FALSE
)
ORDER BY s.user_id, r.score ASC
Expand Down Expand Up @@ -1272,7 +1270,6 @@ def get_user_submissions(
WHERE sr.submission_id = r.submission_id
AND sr.secret
AND sr.runner = r.runner
AND sr.mode = r.mode
AND sr.passed = FALSE
)
"""
Expand Down Expand Up @@ -1419,7 +1416,6 @@ def get_leaderboard_submission_count(
WHERE sr.submission_id = s.id
AND sr.secret
AND sr.runner = r.runner
AND sr.mode = r.mode
AND sr.passed = FALSE
)
"""
Expand All @@ -1441,7 +1437,6 @@ def get_leaderboard_submission_count(
WHERE sr.submission_id = s.id
AND sr.secret
AND sr.runner = r.runner
AND sr.mode = r.mode
AND sr.passed = FALSE
)
"""
Expand Down
34 changes: 34 additions & 0 deletions tests/test_leaderboard_db.py
Original file line number Diff line number Diff line change
Expand Up @@ -410,6 +410,40 @@ def test_failed_secret_run_hides_submission_from_rankings(database, submit_leade
assert db.get_leaderboard_submission_count("submit-leaderboard", "A100", "5") == 0


def test_failed_secret_benchmark_hides_public_leaderboard_score(database, submit_leaderboard):
submit_time = datetime.datetime.now(tz=datetime.timezone.utc)
failed_secret = dataclasses.replace(sample_run_result(), passed=False)

with database as db:
hacked = db.create_submission(
"submit-leaderboard", "fast.py", 5, "fast", submit_time, user_name="user5"
)
_create_submission_run(db, hacked, mode="leaderboard", runner="A100", score=1.0)
_create_submission_run(
db,
hacked,
mode="benchmark",
secret=True,
runner="A100",
score=None,
result=failed_secret,
)
db.mark_submission_done(hacked)

valid = db.create_submission(
"submit-leaderboard", "valid.py", 6, "valid", submit_time, user_name="user6"
)
_create_submission_run(db, valid, mode="leaderboard", runner="A100", score=2.0)
_create_submission_run(db, valid, mode="benchmark", secret=True, runner="A100")
db.mark_submission_done(valid)

with database as db:
ranked = db.get_leaderboard_submissions("submit-leaderboard", "A100")
assert [row["submission_id"] for row in ranked] == [valid]
assert db.get_leaderboard_submission_count("submit-leaderboard", "A100") == 1
assert db.get_leaderboard_submission_count("submit-leaderboard", "A100", "5") == 0


def test_failed_secret_run_hides_user_submission_scores(database, submit_leaderboard):
submit_time = datetime.datetime.now(tz=datetime.timezone.utc)
failed_secret = dataclasses.replace(sample_run_result(), passed=False)
Expand Down
Loading