feat: fundar plataforma mais humana
This commit is contained in:
55
tests/test_quality_questions_playbooks.py
Normal file
55
tests/test_quality_questions_playbooks.py
Normal file
@@ -0,0 +1,55 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
from mais_humana.catalog import get_platform
|
||||
from mais_humana.matrix import build_matrix, build_platform_report
|
||||
from mais_humana.playbooks import build_playbooks, playbooks_markdown
|
||||
from mais_humana.quality import evaluate_platform_quality, quality_to_markdown
|
||||
from mais_humana.questions import questions_for_report, unanswered_questions
|
||||
from mais_humana.scanner import scan_platform
|
||||
from tests.helpers import make_tmp
|
||||
|
||||
|
||||
class QualityQuestionsPlaybookTests(unittest.TestCase):
|
||||
def make_minimal_report(self, root: Path):
|
||||
repo = root / "tudo-para-ia-docs-plataform"
|
||||
repo.mkdir()
|
||||
(repo / "README.md").write_text("docs contract evidence help runbook", encoding="utf-8")
|
||||
(repo / "package.json").write_text(json.dumps({"scripts": {"test": "node --test"}}), encoding="utf-8")
|
||||
scan = scan_platform(root, get_platform("docs"))
|
||||
cells = build_matrix((scan,))
|
||||
return build_platform_report(scan, cells)
|
||||
|
||||
def test_quality_report_flags_known_blocker_and_missing_git(self) -> None:
|
||||
tmp = make_tmp()
|
||||
report = self.make_minimal_report(tmp)
|
||||
quality = evaluate_platform_quality(report)
|
||||
self.assertGreaterEqual(quality.blocker_count, 1)
|
||||
markdown = quality_to_markdown((quality,))
|
||||
self.assertIn("known_blockers", markdown)
|
||||
self.assertIn("git_ready", markdown)
|
||||
|
||||
def test_questions_are_generated_for_profiles(self) -> None:
|
||||
tmp = make_tmp()
|
||||
report = self.make_minimal_report(tmp)
|
||||
questions = questions_for_report(report, max_per_profile=1)
|
||||
self.assertGreaterEqual(len(questions), 12)
|
||||
weak = unanswered_questions(questions)
|
||||
self.assertLessEqual(len(weak), len(questions))
|
||||
self.assertTrue(all(question.answer for question in questions))
|
||||
|
||||
def test_playbooks_turn_recommendations_into_steps(self) -> None:
|
||||
tmp = make_tmp()
|
||||
report = self.make_minimal_report(tmp)
|
||||
playbooks = build_playbooks((report,))
|
||||
self.assertGreaterEqual(len(playbooks), 12)
|
||||
text = playbooks_markdown(playbooks)
|
||||
self.assertIn("Playbooks humanos", text)
|
||||
self.assertIn("Playbook humano", text)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user