Skip to content

Commit e6d4c59

Browse files
authored
Ensure tags are escaped when printed (#2096)
As rich uses [] for markup, we need to escape them when printing. Fix fixes bug which prevented display of custom/extended rule tags, like `schema[galaxy]`.
1 parent 6ffd7a8 commit e6d4c59

8 files changed

Lines changed: 32 additions & 32 deletions

File tree

.github/workflows/tox.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ jobs:
156156
WSLENV: FORCE_COLOR:PYTEST_REQPASS:TOXENV:TOX_PARALLEL_NO_SPINNER
157157
# Number of expected test passes, safety measure for accidental skip of
158158
# tests. Update value if you add/remove tests.
159-
PYTEST_REQPASS: 609
159+
PYTEST_REQPASS: 610
160160

161161
steps:
162162
- name: Activate WSL1

src/ansiblelint/formatters/__init__.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ def format(self, match: "MatchError") -> str:
5959
_id = getattr(match.rule, "id", "000")
6060
result = f"[error_code]{_id}[/][dim]:[/] [error_title]{self.escape(match.message)}[/]"
6161
if match.tag:
62-
result += f" [dim][error_code]({match.tag})[/][/]"
62+
result += f" [dim][error_code]({self.escape(match.tag)})[/][/]"
6363
result += (
6464
"\n"
6565
f"[filename]{self._format_path(match.filename or '')}[/]:{match.position}"
@@ -90,10 +90,10 @@ def format(self, match: "MatchError") -> str:
9090
)
9191

9292
if not options.quiet:
93-
result += f" [dim]{match.message}[/]"
93+
result += f": [dim]{match.message}[/]"
9494

9595
if match.tag:
96-
result += f" [dim][error_code]({match.tag})[/][/]"
96+
result += f" [dim][error_code]({self.escape(match.tag)})[/][/]"
9797
return result
9898

9999

test/eco/colsystem.result

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ warn_list: # or 'skip_list' to silence them completely
1313

1414

1515
STDOUT:
16-
.ansible-lint:1: load-failure [Errno 2] No such file or directory: '~/.cache/ansible-lint-eco/colsystem/tests/ansible-lint.yml' (filenotfounderror)
17-
playbooks/molecule/sudo/molecule.yml:17: yaml line too long (576 > 160 characters) (line-length)
18-
roles/firewalld/defaults/main.yml:11: yaml missing starting space in comment (comments)
19-
roles/firewalld/defaults/main.yml:28: yaml missing starting space in comment (comments)
16+
.ansible-lint:1: load-failure: [Errno 2] No such file or directory: '~/.cache/ansible-lint-eco/colsystem/tests/ansible-lint.yml' (filenotfounderror)
17+
playbooks/molecule/sudo/molecule.yml:17: yaml: line too long (576 > 160 characters) (line-length)
18+
roles/firewalld/defaults/main.yml:11: yaml: missing starting space in comment (comments)
19+
roles/firewalld/defaults/main.yml:28: yaml: missing starting space in comment (comments)

test/eco/debops.result

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,5 @@ warn_list: # or 'skip_list' to silence them completely
1313

1414

1515
STDOUT:
16-
ansible/roles/rspamd/defaults/main.yml:318: var-spacing Variables should have spaces before and after: { var_name }.
17-
roles/rspamd/defaults/main.yml:318: var-spacing Variables should have spaces before and after: { var_name }.
16+
ansible/roles/rspamd/defaults/main.yml:318: var-spacing: Variables should have spaces before and after: { var_name }.
17+
roles/rspamd/defaults/main.yml:318: var-spacing: Variables should have spaces before and after: { var_name }.

test/eco/hardening.result

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ WARNING Listing 4 violation(s) that are fatal
99

1010

1111
STDOUT:
12-
defaults/main/sshd.yml:20: yaml line too long (143 > 120 characters) (line-length)
13-
tasks/auditd.yml:21: yaml line too long (122 > 120 characters) (line-length)
14-
tasks/packagemgmt.yml:164: yaml line too long (129 > 120 characters) (line-length)
15-
tasks/packagemgmt.yml:192: yaml line too long (162 > 120 characters) (line-length)
12+
defaults/main/sshd.yml:20: yaml: line too long (143 > 120 characters) (line-length)
13+
tasks/auditd.yml:21: yaml: line too long (122 > 120 characters) (line-length)
14+
tasks/packagemgmt.yml:164: yaml: line too long (129 > 120 characters) (line-length)
15+
tasks/packagemgmt.yml:192: yaml: line too long (162 > 120 characters) (line-length)

test/eco/mysql.result

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@ warn_list: # or 'skip_list' to silence them completely
1313

1414

1515
STDOUT:
16-
molecule/default/converge.yml:7:7: internal-error the role 'geerlingguy.mysql' was not found in ~/.cache/ansible-lint-eco/mysql/molecule/default/roles:~/.cache/ansible-compat/430005/roles:~/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles:~/.cache/ansible-lint-eco/mysql/molecule/default
16+
molecule/default/converge.yml:7:7: internal-error: the role 'geerlingguy.mysql' was not found in ~/.cache/ansible-lint-eco/mysql/molecule/default/roles:~/.cache/ansible-compat/430005/roles:~/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles:~/.cache/ansible-lint-eco/mysql/molecule/default

test/eco/zuul-jobs.result

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,19 @@ warn_list: # or 'skip_list' to silence them completely
2121

2222

2323
STDOUT:
24-
roles/emit-job-header/tasks/main.yaml:26: ignore-errors Use failed_when and specify error conditions instead of using ignore_errors.
25-
roles/ensure-chart-testing/tasks/main.yaml:27: risky-file-permissions File permissions unset or incorrect.
26-
roles/ensure-dhall/tasks/main.yaml:15: risky-file-permissions File permissions unset or incorrect.
27-
roles/ensure-go/tasks/install-go.yaml:12: risky-file-permissions File permissions unset or incorrect.
28-
roles/ensure-packer/tasks/install-packer.yaml:21: risky-file-permissions File permissions unset or incorrect.
29-
roles/ensure-pip/tasks/Debian.yaml:17: ignore-errors Use failed_when and specify error conditions instead of using ignore_errors.
30-
roles/ensure-pip/tasks/source.yaml:7: risky-file-permissions File permissions unset or incorrect.
31-
roles/ensure-terraform/tasks/install-terraform.yaml:32: risky-file-permissions File permissions unset or incorrect.
32-
roles/phoronix-combine-results/tasks/fetch-result.yaml:8: risky-file-permissions File permissions unset or incorrect.
33-
test-playbooks/registry/roles/ensure-registry-cert/tasks/main.yaml:1: risky-file-permissions File permissions unset or incorrect.
34-
test-playbooks/registry/roles/ensure-registry-cert/tasks/main.yaml:6: risky-file-permissions File permissions unset or incorrect.
35-
test-playbooks/registry/roles/run-test-intermediate-registry/tasks/main.yaml:1: no-loop-var-prefix Role loop_var should use configured prefix.
36-
test-playbooks/registry/roles/run-test-intermediate-registry/tasks/main.yaml:1: risky-file-permissions File permissions unset or incorrect.
37-
test-playbooks/registry/roles/run-test-intermediate-registry/tasks/main.yaml:17: risky-file-permissions File permissions unset or incorrect.
38-
test-playbooks/registry/roles/run-test-intermediate-registry/tasks/main.yaml:25: risky-file-permissions File permissions unset or incorrect.
39-
test-playbooks/registry/roles/run-test-intermediate-registry/tasks/main.yaml:30: risky-file-permissions File permissions unset or incorrect.
24+
roles/emit-job-header/tasks/main.yaml:26: ignore-errors: Use failed_when and specify error conditions instead of using ignore_errors.
25+
roles/ensure-chart-testing/tasks/main.yaml:27: risky-file-permissions: File permissions unset or incorrect.
26+
roles/ensure-dhall/tasks/main.yaml:15: risky-file-permissions: File permissions unset or incorrect.
27+
roles/ensure-go/tasks/install-go.yaml:12: risky-file-permissions: File permissions unset or incorrect.
28+
roles/ensure-packer/tasks/install-packer.yaml:21: risky-file-permissions: File permissions unset or incorrect.
29+
roles/ensure-pip/tasks/Debian.yaml:17: ignore-errors: Use failed_when and specify error conditions instead of using ignore_errors.
30+
roles/ensure-pip/tasks/source.yaml:7: risky-file-permissions: File permissions unset or incorrect.
31+
roles/ensure-terraform/tasks/install-terraform.yaml:32: risky-file-permissions: File permissions unset or incorrect.
32+
roles/phoronix-combine-results/tasks/fetch-result.yaml:8: risky-file-permissions: File permissions unset or incorrect.
33+
test-playbooks/registry/roles/ensure-registry-cert/tasks/main.yaml:1: risky-file-permissions: File permissions unset or incorrect.
34+
test-playbooks/registry/roles/ensure-registry-cert/tasks/main.yaml:6: risky-file-permissions: File permissions unset or incorrect.
35+
test-playbooks/registry/roles/run-test-intermediate-registry/tasks/main.yaml:1: no-loop-var-prefix: Role loop_var should use configured prefix.
36+
test-playbooks/registry/roles/run-test-intermediate-registry/tasks/main.yaml:1: risky-file-permissions: File permissions unset or incorrect.
37+
test-playbooks/registry/roles/run-test-intermediate-registry/tasks/main.yaml:17: risky-file-permissions: File permissions unset or incorrect.
38+
test-playbooks/registry/roles/run-test-intermediate-registry/tasks/main.yaml:25: risky-file-permissions: File permissions unset or incorrect.
39+
test-playbooks/registry/roles/run-test-intermediate-registry/tasks/main.yaml:30: risky-file-permissions: File permissions unset or incorrect.

test/test_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ def test_cli_auto_detect(capfd: CaptureFixture[str]) -> None:
260260
# An expected rule match from our examples
261261
assert (
262262
"examples/playbooks/empty_playbook.yml:1: "
263-
"syntax-check Empty playbook, nothing to do" in out
263+
"syntax-check: Empty playbook, nothing to do" in out
264264
)
265265
# assures that our ansible-lint config exclude was effective in excluding github files
266266
assert "Identified: .github/" not in out

0 commit comments

Comments
 (0)