style: Fix npe and add test for corrected offense results

This commit is contained in:
Gautham Goli 2018-08-28 23:09:44 +05:30
parent b707d2a232
commit 32bc5535b6
No known key found for this signature in database
GPG Key ID: 6A9ABBC284468364
3 changed files with 26 additions and 2 deletions

View File

@ -130,7 +130,7 @@ module Homebrew
formula_count += 1 formula_count += 1
problem_count += fa.problems.size problem_count += fa.problems.size
problem_lines = format_problem_lines(fa.problems) problem_lines = format_problem_lines(fa.problems)
corrected_problem_count = options.fetch(:style_offenses, []).count(&:corrected?) corrected_problem_count = options[:style_offenses].count(&:corrected?)
new_formula_problem_lines = format_problem_lines(fa.new_formula_problems) new_formula_problem_lines = format_problem_lines(fa.new_formula_problems)
if args.display_filename? if args.display_filename?
puts problem_lines.map { |s| "#{f.path}: #{s}" } puts problem_lines.map { |s| "#{f.path}: #{s}" }

View File

@ -119,7 +119,7 @@ module Homebrew
end end
def file_offenses(path) def file_offenses(path)
@file_offenses[path.to_s] @file_offenses.fetch(path.to_s, [])
end end
end end

View File

@ -30,6 +30,30 @@ describe "brew style" do
expect(rubocop_result.file_offenses(formula.realpath.to_s).map(&:message)) expect(rubocop_result.file_offenses(formula.realpath.to_s).map(&:message))
.to include("Extra empty line detected at class body beginning.") .to include("Extra empty line detected at class body beginning.")
end end
it "corrected offense output format" do
formula = dir/"my-formula-2.rb"
formula.write <<~EOS
class MyFormula2 < Formula
desc "Test formula"
homepage "https://foo.org"
url "https://foo.org/foo-1.7.5.tgz"
sha256 "cc692fb9dee0cc288757e708fc1a3b6b56ca1210ca181053a371cb11746969da"
depends_on "foo"
depends_on "bar-config" => :build
test do
assert_equal 5, 5
end
end
EOS
options = { fix: true, only_cops: ["NewFormulaAudit/DependencyOrder"], realpath: true }
rubocop_result = Homebrew::Style.check_style_json([formula], options)
offense_string = rubocop_result.file_offenses(formula.realpath).first.to_s
expect(offense_string).to match(/\[Corrected\]/)
end
end end
describe "Homebrew::check_style_and_print" do describe "Homebrew::check_style_and_print" do