Files
FunASR/tests/test_repository_roadmap_docs.py
2026-09-15 17:47:50 +00:00

47 lines
1.8 KiB
Python

"""Keep completed roadmap milestones separate from unresolved validation."""
from pathlib import Path
import unittest
ROOT = Path(__file__).resolve().parents[1]
GUIDES = (
("repository_roles.md", "### Delivered", "### In progress", "### Next"),
("repository_roles_zh.md", "### \u5df2\u4ea4\u4ed8", "### \u8fdb\u884c\u4e2d", "### \u4e0b\u4e00\u6b65"),
)
class RepositoryRoadmapContract(unittest.TestCase):
def sections(self, guide):
name, delivered, active, following = guide
text = (ROOT / "docs" / name).read_text(encoding="utf-8")
return (text.split(delivered, 1)[1].split(active, 1)[0],
text.split(active, 1)[1].split(following, 1)[0])
def test_native_transformers_merge_is_delivered(self):
for guide in GUIDES:
with self.subTest(guide=guide[0]):
delivered, active = self.sections(guide)
self.assertIn("huggingface/transformers/pull/46180", delivered)
self.assertIn("FunAudioLLM/Fun-ASR-Nano-2512-hf", delivered)
self.assertNotIn("huggingface/transformers/pull/46180", active)
def test_reporter_closed_qwen_workflow_is_delivered(self):
for guide in GUIDES:
with self.subTest(guide=guide[0]):
delivered, active = self.sections(guide)
self.assertIn("FunASR/pull/3592", delivered)
self.assertIn("FunASR/issues/3419", delivered)
self.assertNotIn("FunASR/issues/3419", active)
def test_unresolved_hardware_and_checkpoint_work_stays_open(self):
for guide in GUIDES:
with self.subTest(guide=guide[0]):
_, active = self.sections(guide)
for issue in (3496, 3528, 3479):
self.assertIn(f"FunASR/issues/{issue}", active)
if __name__ == "__main__":
unittest.main()