report.json has the expected top-level fields and values.
(self)
| 2662 | return ExtractionReport(**defaults) |
| 2663 | |
| 2664 | def test_report_schema(self) -> None: |
| 2665 | """report.json has the expected top-level fields and values.""" |
| 2666 | |
| 2667 | report = self._make_report() |
| 2668 | _write_report(self._run_dir, report) |
| 2669 | |
| 2670 | data = self._read_report() |
| 2671 | self.assertEqual(data["version"], 1) |
| 2672 | self.assertEqual(data["command"], "extract") |
| 2673 | self.assertEqual(data["timestamp"], "2026-03-30T12:00:00+00:00") |
| 2674 | self.assertEqual(data["config"]["mode"], "llm") |
| 2675 | self.assertEqual(data["config"]["model"], "openai/test-model") |
| 2676 | self.assertEqual(data["elapsed_seconds"], 1.0) |
| 2677 | self.assertEqual(data["summary"]["succeeded"], 1) |
| 2678 | self.assertEqual(data["summary"]["failed"], 0) |
| 2679 | self.assertEqual(data["db_before"], {"manpages": 10, "mappings": 50}) |
| 2680 | self.assertEqual(data["db_after"], {"manpages": 11, "mappings": 55}) |
| 2681 | |
| 2682 | def test_none_fields_excluded(self) -> None: |
| 2683 | """Fields set to None are omitted from the JSON (exclude_none).""" |
nothing calls this directly
no test coverage detected