Skip to content

Commit 64551f8

Browse files
committed
Simplify non-verbose rule output
Previously, the output resulting from rule violations was always prefaced with the rule ID and result: Rule SD001 result: fail This is necessary in verbose output mode because in that mode the result of every rule applied to the project is printed. This is the only way to identify the rule and result when a rule passes. The situation is different non-verbose mode, where output is only printed when a rule is violated. This means that: - The rule is identified by the rule message - The rule result is implicit So this preface doesn't really serve any purpose in non-verbose mode. It is somewhat cryptic, so may make the output less approachable to the users. Because the rule ID is still sometimes of value as a succinct and unequivocal way to refer to a specific rule, it is printed in a less prominent location at the end of the rule message.
1 parent a8641c3 commit 64551f8

File tree

3 files changed

+7
-3
lines changed

3 files changed

+7
-3
lines changed

Diff for: internal/result/result.go

+5-1
Original file line numberDiff line numberDiff line change
@@ -111,13 +111,17 @@ func (results *Type) Record(lintedProject project.Type, ruleConfiguration ruleco
111111
}
112112

113113
summaryText := ""
114-
if (ruleResult == ruleresult.Fail) || configuration.Verbose() {
114+
if configuration.Verbose() {
115115
summaryText = fmt.Sprintf("Rule %s result: %s", ruleConfiguration.ID, ruleResult)
116116
// Add explanation of rule result if present.
117117
if ruleMessage != "" {
118118
summaryText += fmt.Sprintf("\n%s: %s", ruleLevel, ruleMessage)
119119
}
120120
summaryText += "\n"
121+
} else {
122+
if ruleResult == ruleresult.Fail {
123+
summaryText = fmt.Sprintf("%s: %s (Rule %s)\n", ruleLevel, ruleMessage, ruleConfiguration.ID)
124+
}
121125
}
122126

123127
reportExists, projectReportIndex := results.getProjectReportIndex(lintedProject.Path)

Diff for: internal/result/result_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ func TestRecord(t *testing.T) {
8585
flags.Set("verbose", "false")
8686
require.Nil(t, configuration.Initialize(flags, projectPaths))
8787
summaryText = results.Record(lintedProject, ruleConfiguration, ruleresult.Fail, ruleOutput)
88-
assert.Equal(t, fmt.Sprintf("Rule %s result: %s\n%s: %s\n", ruleConfiguration.ID, ruleresult.Fail, rulelevel.Error, message(ruleConfiguration.MessageTemplate, ruleOutput)), summaryText)
88+
assert.Equal(t, fmt.Sprintf("%s: %s (Rule %s)\n", rulelevel.Error, message(ruleConfiguration.MessageTemplate, ruleOutput), ruleConfiguration.ID), summaryText)
8989
summaryText = results.Record(lintedProject, ruleConfiguration, ruleresult.NotRun, ruleOutput)
9090
assert.Equal(t, "", summaryText, "Non-fail result should not result in output in non-verbose mode")
9191
summaryText = results.Record(lintedProject, ruleConfiguration, ruleresult.Pass, "")

Diff for: test/test_all.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ def test_verbose(run_command):
181181
result = run_command(cmd=["--format", "text", project_path])
182182
assert result.ok
183183
assert "result: pass" not in result.stdout
184-
assert "result: fail" in result.stdout
184+
assert "WARNING:" in result.stdout
185185

186186
result = run_command(cmd=["--format", "text", "--verbose", project_path])
187187
assert result.ok

0 commit comments

Comments
 (0)