OpenEEGBench / backend /tests /test_submissions.py
bruAristimunha's picture
feat: OpenEEGBench submission flow (arena runs the eval)
4db3be0
Raw
History Blame Contribute Delete
3.8 kB
from datetime import datetime, timezone
from app.services.submissions import (
validate_submission,
build_request_entry,
count_user_submissions_this_month,
monthly_quota_exceeded,
)
def _valid_payload(**overrides):
p = {
"model_cls": "braindecode.models.BIOT",
"model_name": "BIOT-frozen",
"organization": "braindecode",
"hub_repo": "braindecode/biot-weights",
"finetuning_strategies": ["frozen"],
"heads": ["linear_head"],
"datasets": ["bcic2a", "physionet"],
"n_seeds": 3,
"visibility": "Public",
}
p.update(overrides)
return p
def test_valid_payload_has_no_errors():
assert validate_submission(_valid_payload()) == []
def test_model_cls_required():
errs = validate_submission(_valid_payload(model_cls=""))
assert any("model_cls" in e for e in errs)
def test_model_cls_must_be_dotted_path():
errs = validate_submission(_valid_payload(model_cls="notdotted"))
assert any("dotted import path" in e for e in errs)
def test_weights_source_required():
errs = validate_submission(_valid_payload(hub_repo="", checkpoint_url=""))
assert any("weights source" in e for e in errs)
def test_only_one_weights_source():
errs = validate_submission(_valid_payload(checkpoint_url="https://x/w.pth"))
assert any("only one weights source" in e for e in errs)
def test_peft_strategy_requires_target_modules():
errs = validate_submission(_valid_payload(finetuning_strategies=["lora"]))
assert any("peft_target_modules" in e for e in errs)
def test_ia3_requires_ff_modules():
errs = validate_submission(_valid_payload(
finetuning_strategies=["ia3"], peft_target_modules=["to_q"]))
assert any("peft_ff_modules" in e for e in errs)
def test_unknown_strategy_rejected():
errs = validate_submission(_valid_payload(finetuning_strategies=["magic"]))
assert any("finetuning strategies" in e for e in errs)
def test_unknown_dataset_rejected():
errs = validate_submission(_valid_payload(datasets=["not_a_dataset"]))
assert any("datasets" in e for e in errs)
def test_bad_email_rejected():
errs = validate_submission(_valid_payload(contact_email="nope"))
assert any("email" in e for e in errs)
def test_n_seeds_must_be_positive_int():
errs = validate_submission(_valid_payload(n_seeds=0))
assert any("n_seeds" in e for e in errs)
def test_build_request_entry_shape():
now = datetime(2026, 6, 15, 12, 0, 0, tzinfo=timezone.utc)
entry = build_request_entry(_valid_payload(), "alice", now=now)
assert entry["framework"] == "open-eeg-bench"
assert entry["status"] == "PENDING"
assert entry["submitter"] == "alice"
assert entry["submitted_time"] == "2026-06-15T12:00:00Z"
assert entry["benchmark_kwargs"]["model_cls"] == "braindecode.models.BIOT"
assert entry["benchmark_kwargs"]["hub_repo"] == "braindecode/biot-weights"
assert entry["benchmark_kwargs"]["checkpoint_url"] is None
assert entry["benchmark_kwargs"]["finetuning_strategies"] == ["frozen"]
def test_monthly_count_and_quota():
entries = [
{"submitter": "alice", "submitted_time": "2026-06-01T00:00:00Z"},
{"submitter": "alice", "submitted_time": "2026-06-09T00:00:00Z"},
{"submitter": "bob", "submitted_time": "2026-06-09T00:00:00Z"},
{"submitter": "alice", "submitted_time": "2026-05-30T00:00:00Z"},
]
now = datetime(2026, 6, 15, tzinfo=timezone.utc)
assert count_user_submissions_this_month(entries, "alice", now=now) == 2
assert monthly_quota_exceeded(entries, "alice", now=now) is False
five = entries + [{"submitter": "alice", "submitted_time": "2026-06-1%dT00:00:00Z" % d} for d in range(3, 6)]
assert monthly_quota_exceeded(five, "alice", now=now) is True