1
0
Fork 0
Code Issues Pull requests Projects Releases 2 Packages Wiki Activity Actions Pages

Keep reference manifests parser-free

This commit is contained in:
Andraxion 2026-07-29 14:52:05 -04:00
parent 58c0196be5
commit 9cd7c4e424
4 changed files with 368 additions and 67 deletions

View file

@ -132,10 +132,16 @@ class JavaScriptReferenceAdapterTests(unittest.TestCase):
self.assertEqual(4, len(adapter.extracted_paths))
adapter.extracted_paths.clear()
warm = index.build()
with mock.patch.object(
adapter,
"_parse",
wraps=adapter._parse, # pyright: ignore[reportPrivateUsage]
) as parsed:
warm = index.build()
self.assertEqual(4, self.build_metrics(warm)["cache_hits"])
self.assertEqual(0, self.build_metrics(warm)["reparsed_sources"])
self.assertEqual([], adapter.extracted_paths)
parsed.assert_not_called()
shared = root / shared_path
shared.write_text(
@ -143,9 +149,15 @@ class JavaScriptReferenceAdapterTests(unittest.TestCase):
encoding="utf-8",
)
adapter.extracted_paths.clear()
changed = index.build()
with mock.patch.object(
adapter,
"_parse",
wraps=adapter._parse, # pyright: ignore[reportPrivateUsage]
) as parsed:
changed = index.build()
self.assertEqual(4, self.build_metrics(changed)["invalidated_sources"])
self.assertEqual(4, len(adapter.extracted_paths))
self.assertEqual(4, parsed.call_count)
equivalent = project.verify_incremental_equivalence()
self.assertEqual("ok", equivalent["status"])
@ -241,7 +253,8 @@ class JavaScriptReferenceAdapterTests(unittest.TestCase):
),
self.assertRaises(DocForgeError) as captured,
):
adapter.load_manifest()
source = adapter.load_manifest().sources[0]
adapter.extract_source(source)
self.assertEqual("optional_dependency_missing", captured.exception.code)
self.assertEqual(language, captured.exception.details["extra"])
self.assertEqual(