Skip to content

Commit 84d1272

Browse files
committed
more fixes to tests
1 parent 1b23646 commit 84d1272

File tree

4 files changed

+70
-30
lines changed

4 files changed

+70
-30
lines changed

cli/commands/comment_ratio.py

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,25 @@ def comment_code_ratio_stats(
3434
results = analyze_comment_code_ratio(content)
3535

3636
if output_format == "json":
37-
console.print(json.dumps(results, indent=2))
37+
# Clean the results to ensure valid JSON
38+
cleaned_results = {
39+
"summary_stats": {
40+
"total_lines_in_file": results.get("summary_stats", {}).get("total_lines_in_file", 0),
41+
"code_lines": results.get("summary_stats", {}).get("code_lines", 0),
42+
"comment_only_lines": results.get("summary_stats", {}).get("comment_only_lines", 0),
43+
"empty_or_whitespace_lines": results.get("summary_stats", {}).get("empty_or_whitespace_lines", 0),
44+
"comment_to_code_plus_comment_ratio": results.get("summary_stats", {}).get("comment_to_code_plus_comment_ratio", 0)
45+
},
46+
"line_by_line_analysis": [
47+
{
48+
"original_line_number": line.get("original_line_number", 0),
49+
"type": line.get("type", ""),
50+
"line_content": line.get("line_content", "").replace("\n", " ").replace("\r", "")
51+
}
52+
for line in results.get("line_by_line_analysis", [])
53+
]
54+
}
55+
console.print(json.dumps(cleaned_results, indent=2))
3856
elif output_format == "console":
3957
console.print(f"\n[bold cyan]{get_translation('comment_code_ratio_analysis_for')} [green]{file_path}[/green]:[/bold cyan]")
4058
summary = results.get("summary_stats", {})
@@ -56,11 +74,15 @@ def comment_code_ratio_stats(
5674
table_details.add_column(get_translation('line_type'), style="dim")
5775
table_details.add_column(get_translation('content_col'))
5876
for line_data in line_details:
59-
table_details.add_row(
60-
str(line_data["original_line_number"]),
61-
get_translation(line_data["type"]),
62-
line_data["line_content"] if len(line_data["line_content"]) < 70 else line_data["line_content"][:67] + "..."
63-
)
77+
if isinstance(line_data, dict):
78+
content = line_data.get("line_content", "")
79+
if len(content) > 70:
80+
content = content[:67] + "..."
81+
table_details.add_row(
82+
str(line_data.get("original_line_number", "")),
83+
get_translation(line_data.get("type", "")),
84+
content
85+
)
6486
console.print(table_details)
6587
else:
6688
console.print(f"[bold red]{get_translation('error_invalid_format')}: {output_format}. {get_translation('valid_formats_are')} console, json.[/bold red]")

cli/commands/dependencies.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,14 @@ def dependency_stats(
3535

3636
if output_format == "json":
3737
# The analyzer returns a list of imports or an error dict
38-
console.print(json.dumps(results, indent=2))
38+
if isinstance(results, dict) and "error" in results:
39+
console.print(json.dumps({"error": results["error"]}, indent=2))
40+
else:
41+
console.print(json.dumps(sorted(results) if isinstance(results, list) else [], indent=2))
3942
elif output_format == "console":
4043
console.print(f"\n[bold cyan]{get_translation('dependency_analysis_for')} [green]{file_path}[/green]:[/bold cyan]")
4144
if isinstance(results, dict) and "error" in results:
42-
console.print(f"[bold red]Error analyzing dependencies: {results['error']}[/bold red]")
45+
console.print(f"[bold red]{get_translation('error_analyzing_dependencies')}: {results['error']}[/bold red]")
4346
elif isinstance(results, list):
4447
if results:
4548
table = Table(title=get_translation('dependencies_found'))
@@ -50,8 +53,7 @@ def dependency_stats(
5053
else:
5154
console.print(get_translation("no_dependencies_found"))
5255
else:
53-
console.print(f"[bold red]{get_translation('error_unexpected_result')}[/bold red]")
54-
56+
console.print(f"[bold red]{get_translation('error_unexpected_result')}[/bold red]")
5557
else:
5658
console.print(f"[bold red]{get_translation('error_invalid_format')}: {output_format}. {get_translation('valid_formats_are')} console, json.[/bold red]")
5759
raise typer.Exit(code=1)

cli/commands/indentation.py

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,18 @@ def indentation_stats(
3434
results = analyze_indentation_levels(content)
3535

3636
if output_format == "json":
37-
console.print(json.dumps(results, indent=2))
37+
# Clean the results to ensure valid JSON
38+
cleaned_results = [
39+
{
40+
"original_line_number": line.get("original_line_number", 0),
41+
"line_content": line.get("line_content", "").replace("\n", " ").replace("\r", ""),
42+
"stripped_line_content": line.get("stripped_line_content", "").replace("\n", " ").replace("\r", ""),
43+
"indent_level": line.get("indent_level", 0),
44+
"is_empty_or_whitespace_only": line.get("is_empty_or_whitespace_only", True)
45+
}
46+
for line in results
47+
]
48+
console.print(json.dumps(cleaned_results, indent=2))
3849
elif output_format == "console":
3950
console.print(f"\n[bold cyan]{get_translation('indentation_analysis_for')} [green]{file_path}[/green]:[/bold cyan]")
4051

@@ -44,18 +55,22 @@ def indentation_stats(
4455
table.add_column(get_translation("content_col"))
4556

4657
for line_data in results:
47-
if not line_data["is_empty_or_whitespace_only"]:
48-
table.add_row(
49-
str(line_data["original_line_number"]),
50-
str(line_data["indent_level"]),
51-
line_data["stripped_line_content"] if len(line_data["stripped_line_content"]) < 70 else line_data["stripped_line_content"][:67] + "..."
52-
)
53-
else:
54-
table.add_row(
55-
str(line_data["original_line_number"]),
56-
"-",
57-
f"[dim i]({get_translation('empty_line')})[/dim i]"
58-
)
58+
if isinstance(line_data, dict):
59+
if not line_data.get("is_empty_or_whitespace_only", True):
60+
content = line_data.get("stripped_line_content", "")
61+
if len(content) > 70:
62+
content = content[:67] + "..."
63+
table.add_row(
64+
str(line_data.get("original_line_number", "")),
65+
str(line_data.get("indent_level", 0)),
66+
content
67+
)
68+
else:
69+
table.add_row(
70+
str(line_data.get("original_line_number", "")),
71+
"-",
72+
f"[dim i]({get_translation('empty_line')})[/dim i]"
73+
)
5974
console.print(table)
6075
else:
6176
console.print(f"[bold red]{get_translation('error_invalid_format')}: {output_format}. {get_translation('valid_formats_are')} console, json.[/bold red]")

cli/commands/visibility.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,14 @@ def visibility_stats(
5858
details_table.add_column(get_translation('type'))
5959
details_table.add_column(get_translation('visibility'))
6060
details_table.add_column(get_translation('line_num'), justify="right")
61-
for item in details:
62-
details_table.add_row(
63-
item.get("name"),
64-
get_translation(item.get("type")),
65-
get_translation(item.get("visibility")),
66-
str(item.get("lineno"))
67-
)
61+
for detail in details:
62+
if isinstance(detail, dict):
63+
details_table.add_row(
64+
detail.get("name", ""),
65+
get_translation(detail.get("type", "")),
66+
get_translation(detail.get("visibility", "")),
67+
str(detail.get("lineno", ""))
68+
)
6869
console.print(details_table)
6970
else:
7071
console.print(get_translation("no_elements_found_for_visibility"))

0 commit comments

Comments
 (0)