sciagent code + Gitea Actions CI/CD
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
"""Unit tests for submit readiness validation (no database)."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import unittest
|
||||
|
||||
from src.initiative_db.submission_readiness import (
|
||||
ApplicationSubmissionNotReadyError,
|
||||
collect_submission_readiness_gaps,
|
||||
)
|
||||
|
||||
from tests.fixtures.minimal_submit_bundle import minimal_tabs_bundle
|
||||
|
||||
|
||||
class SubmissionReadinessTests(unittest.TestCase):
|
||||
def test_minimal_tabs_with_technical_evidence_ok(self) -> None:
|
||||
tabs = minimal_tabs_bundle()
|
||||
gaps = collect_submission_readiness_gaps(
|
||||
tabs,
|
||||
{"research": False, "textbook": False, "technical": True},
|
||||
)
|
||||
self.assertEqual(gaps, [])
|
||||
|
||||
def test_missing_evidence_fails(self) -> None:
|
||||
tabs = minimal_tabs_bundle()
|
||||
gaps = collect_submission_readiness_gaps(
|
||||
tabs,
|
||||
{"research": False, "textbook": False, "technical": False},
|
||||
)
|
||||
self.assertTrue(any("Nhóm 1" in g for g in gaps))
|
||||
|
||||
def test_missing_honesty_flags(self) -> None:
|
||||
tabs = minimal_tabs_bundle()
|
||||
tabs["report"]["honestyConfirmed"] = False
|
||||
gaps = collect_submission_readiness_gaps(
|
||||
tabs,
|
||||
{"research": False, "textbook": False, "technical": True},
|
||||
)
|
||||
self.assertTrue(any("Báo cáo" in g and "cam kết" in g for g in gaps))
|
||||
|
||||
def test_exception_carries_missing(self) -> None:
|
||||
exc = ApplicationSubmissionNotReadyError(["a", "b"])
|
||||
self.assertEqual(exc.missing, ["a", "b"])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user