Skip to content

Commit 2897034

Browse files
committed
update
1 parent 8e84143 commit 2897034

File tree

1 file changed

+49
-39
lines changed

1 file changed

+49
-39
lines changed

utils/consolidated_test_report.py

Lines changed: 49 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import re
66
from datetime import date, datetime
77

8-
# Removed HF Hub imports
98
from slack_sdk import WebClient
109
from tabulate import tabulate
1110

@@ -20,7 +19,6 @@
2019
help="Directory containing test reports (will search recursively in all subdirectories)",
2120
)
2221
parser.add_argument("--output_file", default=None, help="Path to save the consolidated report (markdown format)")
23-
# Removed HF dataset related arguments
2422

2523

2624
def parse_stats_file(file_path):
@@ -524,7 +522,7 @@ def generate_report(consolidated_data):
524522

525523

526524
def create_slack_payload(consolidated_data):
527-
"""Create a Slack message payload from consolidated data."""
525+
"""Create a concise Slack message payload from consolidated data."""
528526
total = consolidated_data["total_stats"]
529527
success_rate = f"{(total['passed'] / total['tests'] * 100):.2f}%" if total["tests"] > 0 else "N/A"
530528

@@ -536,51 +534,68 @@ def create_slack_payload(consolidated_data):
536534
else:
537535
emoji = "❌"
538536

537+
# Create a more compact summary section
538+
summary = f"{emoji} *Diffusers Nightly Tests:* {success_rate} success ({total['passed']}/{total['tests']} tests"
539+
if total["skipped"] > 0:
540+
summary += f", {total['skipped']} skipped"
541+
summary += ")"
542+
539543
payload = [
540-
{"type": "header", "text": {"type": "plain_text", "text": f"{emoji} Diffusers Nightly Test Report"}},
541-
{
542-
"type": "section",
543-
"fields": [
544-
{"type": "mrkdwn", "text": f"*Total Tests:* {total['tests']}"},
545-
{"type": "mrkdwn", "text": f"*Passed:* {total['passed']}"},
546-
{"type": "mrkdwn", "text": f"*Failed:* {total['failed']}"},
547-
{"type": "mrkdwn", "text": f"*Skipped:* {total['skipped']}"},
548-
{"type": "mrkdwn", "text": f"*Success Rate:* {success_rate}"},
549-
],
550-
},
544+
{"type": "section", "text": {"type": "mrkdwn", "text": summary}},
551545
]
552546

553-
# Removed comparison section
554-
555-
# Add failed test suites summary
547+
# Add failed test suites summary (compact version)
556548
failed_suites = [
557549
(name, data) for name, data in consolidated_data["test_suites"].items() if data["stats"]["failed"] > 0
558550
]
559551

560552
if failed_suites:
561-
message = "*Failed Test Suites:*\n"
562-
for suite_name, suite_data in failed_suites:
563-
message += f"• {suite_name}: {suite_data['stats']['failed']} failed tests\n"
564-
565-
if len(message) > MAX_LEN_MESSAGE:
566-
message = message[:MAX_LEN_MESSAGE] + "..."
553+
# If many failed suites, just show the count and top few
554+
if len(failed_suites) > 5:
555+
message = f"*Failed Test Suites ({len(failed_suites)}):* "
556+
# Show only first 3 with counts
557+
for i, (suite_name, suite_data) in enumerate(failed_suites[:3]):
558+
short_name = suite_name.split("/")[-1] if "/" in suite_name else suite_name
559+
message += f"{short_name} ({suite_data['stats']['failed']}), "
560+
message += "..."
561+
else:
562+
# Show all failed suites if 5 or fewer
563+
message = "*Failed Suites:* "
564+
for suite_name, suite_data in failed_suites:
565+
short_name = suite_name.split("/")[-1] if "/" in suite_name else suite_name
566+
message += f"{short_name} ({suite_data['stats']['failed']}), "
567+
message = message.rstrip(", ")
567568

568569
payload.append({"type": "section", "text": {"type": "mrkdwn", "text": message}})
569570

570-
# Add slowest tests summary
571+
# Add slowest tests summary (more concise)
571572
slowest_tests = consolidated_data.get("slowest_tests", [])
572573
if slowest_tests:
573574
# Filter out "< 0.05 secs were omitted" entries
574575
filtered_tests = [test for test in slowest_tests if "secs were omitted" not in test["test"]]
575576

576-
# Take top 5 for Slack message to avoid clutter
577-
top5_slowest = filtered_tests[:5]
577+
# Take only top 3 for a more concise message
578+
top_slowest = filtered_tests[:3]
579+
580+
if top_slowest:
581+
slowest_message = "*Slowest Tests:* "
582+
for i, test in enumerate(top_slowest, 1):
583+
# Extract just the test name without the full path
584+
if "::" in test["test"]:
585+
parts = test["test"].split("::")
586+
if len(parts) >= 3:
587+
# Format: test_method (TestClass) - duration
588+
test_name = f"{parts[-1]} ({parts[-2]})"
589+
else:
590+
test_name = parts[-1]
591+
else:
592+
test_name = test["test"].split("/")[-1] if "/" in test["test"] else test["test"]
578593

579-
if top5_slowest:
580-
slowest_message = "*Top 5 Slowest Tests:*\n"
581-
for i, test in enumerate(top5_slowest, 1):
582-
test_name = test["test"].split("::")[-1] if "::" in test["test"] else test["test"]
583-
slowest_message += f"{i}. `{test_name}` - {test['duration']:.2f}s ({test['suite']})\n"
594+
# Add duration and make comma-separated instead of numbered list
595+
if i < len(top_slowest):
596+
slowest_message += f"`{test_name}` ({test['duration']:.1f}s), "
597+
else:
598+
slowest_message += f"`{test_name}` ({test['duration']:.1f}s)"
584599

585600
payload.append({"type": "section", "text": {"type": "mrkdwn", "text": slowest_message}})
586601

@@ -592,20 +607,20 @@ def create_slack_payload(consolidated_data):
592607
"text": {"type": "mrkdwn", "text": "*For more details:*"},
593608
"accessory": {
594609
"type": "button",
595-
"text": {"type": "plain_text", "text": "Check Action results", "emoji": True},
610+
"text": {"type": "plain_text", "text": "View full report", "emoji": True},
596611
"url": f"https://github.com/huggingface/diffusers/actions/runs/{os.environ['GITHUB_RUN_ID']}",
597612
},
598613
}
599614
)
600615

601-
# Add date
616+
# Add date in more compact form
602617
payload.append(
603618
{
604619
"type": "context",
605620
"elements": [
606621
{
607622
"type": "plain_text",
608-
"text": f"Nightly test results for {date.today()}",
623+
"text": f"Results for {date.today()}",
609624
},
610625
],
611626
}
@@ -614,9 +629,6 @@ def create_slack_payload(consolidated_data):
614629
return payload
615630

616631

617-
# Removed HF dataset related functions
618-
619-
620632
def main(args):
621633
# Make sure reports directory exists
622634
if not os.path.isdir(args.reports_dir):
@@ -630,8 +642,6 @@ def main(args):
630642
if consolidated_data["total_stats"]["tests"] == 0:
631643
print(f"Warning: No test results found in '{args.reports_dir}' or its subdirectories.")
632644

633-
# Removed comparison section
634-
635645
# Generate markdown report
636646
report = generate_report(consolidated_data)
637647

0 commit comments

Comments
 (0)