from pathlib import Path from openultrasast.cpg.backend import CpgResult from openultrasast.model.regions import ScanRegion from openultrasast.model.scan import ScanBudget, scan_repository def test_polyglot_graph_inputs_and_single_scope(tmp_path: Path) -> None: sources = { "api.php": "", str(root / "a.php")]}], }, ) graph = build_partitions(tmp_path, build, None) try: result = graph.run_batch("taint", {"q": {"file": "a.php"}}) assert result["__census__"][0]["files"] == 0 assert "partition_file_census_incomplete" in graph.execution_diagnostics() finally: graph.cleanup() def test_named_census_accepts_exact_paths_for_every_query_kind(tmp_path): from openultrasast.model.partitions import build_partitions (tmp_path / "app.php").write_text("", str(root / "app.php")]}], }, ) graph = build_partitions(tmp_path, build, None) try: for kind in ("taint", "dominance", "config"): assert graph.run_batch(kind, {"q": {"file": "app.php"}})["__census__"][0]["files"] == 2 assert not graph.execution_diagnostics() finally: graph.cleanup() def test_unnamed_sharded_census_remains_explicitly_incomplete(tmp_path): from openultrasast.model.partitions import build_partitions (tmp_path / "app.php").write_text("