@@ -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