sciagent code + Gitea Actions CI/CD
CI/CD / backend (push) Failing after 2m8s
CI/CD / frontend (push) Failing after 1m40s
CI/CD / deploy (push) Has been skipped

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Thinh Lam
2026-06-30 09:38:30 +07:00
commit 688fac73e9
1167 changed files with 158244 additions and 0 deletions
+47
View File
@@ -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()