Skip to content

Commit cf93c05

Browse files
committed
update to Key test patterns by file and test name
1 parent dea0d57 commit cf93c05

1 file changed

Lines changed: 8 additions & 6 deletions

File tree

  • packages/gen-ai/.claude/skills/flake-check/scripts

packages/gen-ai/.claude/skills/flake-check/scripts/scan_prs.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -493,16 +493,18 @@ def main() -> None:
493493
# Build test-level patterns from the shared log fetch.
494494
# --file mode: use only the file-matched tests stored in pr["matched_tests"].
495495
# --deep mode: use all fetched tests across all PRs.
496-
test_index: dict[str, dict] = {}
496+
test_index: dict[tuple[str, str], dict] = {}
497497
for pr in pr_results:
498498
tests = pr.get("matched_tests", []) if args.file else all_pr_tests.get(pr["number"], [])
499499
for t in tests:
500500
name = t.get("name", "")
501501
if not name:
502502
continue
503-
if name not in test_index:
504-
test_index[name] = {"file": t.get("file", ""), "pr_numbers": [], "errors": []}
505-
entry = test_index[name]
503+
file = t.get("file") or ""
504+
key = (file, name)
505+
if key not in test_index:
506+
test_index[key] = {"file": file, "name": name, "pr_numbers": [], "errors": []}
507+
entry = test_index[key]
506508
if pr["number"] not in entry["pr_numbers"]:
507509
entry["pr_numbers"].append(pr["number"])
508510
err = t.get("error", "")
@@ -511,13 +513,13 @@ def main() -> None:
511513

512514
output["test_patterns"] = [
513515
{
514-
"test_name": name,
516+
"test_name": data["name"],
515517
"file": data["file"],
516518
"failure_count": len(data["pr_numbers"]),
517519
"pr_numbers": sorted(data["pr_numbers"], reverse=True),
518520
"errors": data["errors"],
519521
}
520-
for name, data in sorted(test_index.items(), key=lambda kv: -len(kv[1]["pr_numbers"]))
522+
for (_file, _name), data in sorted(test_index.items(), key=lambda kv: -len(kv[1]["pr_numbers"]))
521523
if len(data["pr_numbers"]) >= 2
522524
]
523525

0 commit comments

Comments
 (0)