Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

black-primer: Print summary after individual failures #2570

Merged
merged 1 commit into from Oct 28, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
6 changes: 5 additions & 1 deletion CHANGES.md
Expand Up @@ -8,13 +8,17 @@
- Add new `--workers` parameter (#2514)
- Fixed feature detection for positional-only arguments in lambdas (#2532)
- Bumped typed-ast version minimum to 1.4.3 for 3.10 compatiblity (#2519)
- Add primer support for --projects (#2555)

### _Blackd_

- Remove dependency on aiohttp-cors (#2500)
- Bump required aiohttp version to 3.7.4 (#2509)

### _Black-Primer_

- Add primer support for --projects (#2555)
- Print primer summary after individual failures (#2570)

### Integrations

- Allow to pass `target_version` in the vim plugin (#1319)
Expand Down
24 changes: 14 additions & 10 deletions src/black_primer/lib.py
Expand Up @@ -88,6 +88,18 @@ def analyze_results(project_count: int, results: Results) -> int:
failed_pct = round(((results.stats["failed"] / project_count) * 100), 2)
success_pct = round(((results.stats["success"] / project_count) * 100), 2)

if results.failed_projects:
click.secho("\nFailed projects:\n", bold=True)

for project_name, project_cpe in results.failed_projects.items():
print(f"## {project_name}:")
print(f" - Returned {project_cpe.returncode}")
if project_cpe.stderr:
print(f" - stderr:\n{project_cpe.stderr.decode('utf8')}")
if project_cpe.stdout:
print(f" - stdout:\n{project_cpe.stdout.decode('utf8')}")
print("")

click.secho("-- primer results 📊 --\n", bold=True)
click.secho(
f"{results.stats['success']} / {project_count} succeeded ({success_pct}%) ✅",
Expand All @@ -110,16 +122,8 @@ def analyze_results(project_count: int, results: Results) -> int:
)

if results.failed_projects:
click.secho("\nFailed projects:\n", bold=True)

for project_name, project_cpe in results.failed_projects.items():
print(f"## {project_name}:")
print(f" - Returned {project_cpe.returncode}")
if project_cpe.stderr:
print(f" - stderr:\n{project_cpe.stderr.decode('utf8')}")
if project_cpe.stdout:
print(f" - stdout:\n{project_cpe.stdout.decode('utf8')}")
print("")
failed = ", ".join(results.failed_projects.keys())
click.secho(f"\nFailed projects: {failed}\n", bold=True)
nipunn1313 marked this conversation as resolved.
Show resolved Hide resolved

return results.stats["failed"]

Expand Down
15 changes: 9 additions & 6 deletions tests/test_primer.py
Expand Up @@ -20,6 +20,14 @@


EXPECTED_ANALYSIS_OUTPUT = """\

Failed projects:

## black:
- Returned 69
- stdout:
Black didn't work

-- primer results 📊 --

68 / 69 succeeded (98.55%) ✅
Expand All @@ -28,12 +36,7 @@
- 0 projects skipped due to Python version
- 0 skipped due to long checkout

Failed projects:

## black:
- Returned 69
- stdout:
Black didn't work
Failed projects: black

"""
FAKE_PROJECT_CONFIG = {
Expand Down