[BuildLibrary / OverlayLibrary] further simplifications

This commit is contained in:
Jan Petykiewicz 2026-06-19 23:11:23 -07:00
commit 1723212424
3 changed files with 105 additions and 133 deletions

View file

@ -50,13 +50,13 @@ def test_build_library_tracks_helper_provenance_and_tree_merge_renames() -> None
_built, report = builder.build()
helpers = [
prov for prov in report.provenance.values()
(name, prov) for name, prov in report.provenance.items()
if prov.owner_declared_name == "top" and prov.kind == "helper"
]
assert "top" in _owned_by(report, "top")
assert len(helpers) == 2
assert any(prov.renamed_from == "_helper" for prov in helpers)
assert any(name != prov.requested_name for name, prov in helpers)
def test_build_library_requires_build_session_for_reads_and_freezes_after_build() -> None:
@ -152,6 +152,25 @@ def test_build_library_allows_helper_writes_via_pather() -> None:
assert helper_prov.owner_declared_name == "top"
def test_build_library_contains_tracks_active_session_names() -> None:
builder = BuildLibrary()
builder["leaf"] = Pattern()
builder.add_source(Library({"src": Pattern()}))
def make_top(lib: BuildLibrary) -> Pattern:
assert "leaf" in lib
assert "src" in lib
assert "_helper" not in lib
lib["_helper"] = Pattern()
assert "_helper" in lib
return Pattern()
builder.cells.top = cell(make_top)(builder)
built, _report = builder.build()
assert "_helper" in built
def test_build_library_preserves_source_cells_and_records_source_provenance() -> None:
source = Library({"src": Pattern()})
builder = BuildLibrary()
@ -184,7 +203,7 @@ def test_build_library_add_source_can_rename_every_source_cell() -> None:
"parent": "mapped_parent",
}
assert "mapped_child" in built["mapped_parent"].refs
assert report.provenance["mapped_child"].source_name == "child"
assert report.provenance["mapped_child"].requested_name == "child"
def test_build_library_rejects_source_cells_added_after_add_source() -> None:
@ -236,7 +255,7 @@ def test_build_library_can_rename_imported_source_cells_during_authoring() -> No
assert "renamed_child" in built
assert "child" not in built
assert "renamed_child" in built["parent"].refs
assert report.provenance["renamed_child"].source_name == "child"
assert report.provenance["renamed_child"].requested_name == "child"
def test_build_library_rejects_move_references_for_source_rename() -> None:
@ -276,7 +295,6 @@ def test_build_library_helper_rename_updates_provenance_owner() -> None:
prov = report.provenance["final_helper"]
assert prov.kind == "helper"
assert prov.requested_name == "_helper"
assert prov.renamed_from == "_helper"
def test_build_library_helper_delete_removes_provenance_and_ownership() -> None:
@ -314,7 +332,6 @@ def test_build_library_helper_rename_after_auto_rename_preserves_requested_name(
assert "final_helper" in built
prov = report.provenance["final_helper"]
assert prov.requested_name == "_helper"
assert prov.renamed_from == "_helper"
def test_build_library_rejects_renaming_declared_or_source_cells_during_build() -> None: