test/dev-cmd/style_spec: fix flaky test
This commit is contained in:
		
							parent
							
								
									4af3037a18
								
							
						
					
					
						commit
						9a8a4cff9f
					
				@ -12,7 +12,7 @@ RSpec/ExampleLength:
 | 
			
		||||
  Exclude:
 | 
			
		||||
    - 'rubocops/patches_spec.rb'
 | 
			
		||||
 | 
			
		||||
# Offense count: 37
 | 
			
		||||
# Offense count: 41
 | 
			
		||||
# Configuration parameters: CustomTransform, IgnoreMethods.
 | 
			
		||||
RSpec/FilePath:
 | 
			
		||||
  Exclude:
 | 
			
		||||
@ -53,6 +53,7 @@ RSpec/FilePath:
 | 
			
		||||
    - 'rubocops/formula_desc_spec.rb'
 | 
			
		||||
    - 'search_spec.rb'
 | 
			
		||||
    - 'string_spec.rb'
 | 
			
		||||
    - 'style_spec.rb'
 | 
			
		||||
    - 'system_command_result_spec.rb'
 | 
			
		||||
    - 'unpack_strategy/p7zip_spec.rb'
 | 
			
		||||
    - 'utils/github_spec.rb'
 | 
			
		||||
 | 
			
		||||
@ -5,80 +5,3 @@ require "cmd/shared_examples/args_parse"
 | 
			
		||||
describe "Homebrew.style_args" do
 | 
			
		||||
  it_behaves_like "parseable arguments"
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
describe "brew style" do
 | 
			
		||||
  around do |example|
 | 
			
		||||
    FileUtils.ln_s HOMEBREW_LIBRARY_PATH, HOMEBREW_LIBRARY/"Homebrew"
 | 
			
		||||
    FileUtils.ln_s HOMEBREW_LIBRARY_PATH.parent/".rubocop.yml", HOMEBREW_LIBRARY/".rubocop.yml"
 | 
			
		||||
    FileUtils.ln_s HOMEBREW_LIBRARY_PATH.parent/".rubocop_shared.yml", HOMEBREW_LIBRARY/".rubocop_shared.yml"
 | 
			
		||||
 | 
			
		||||
    example.run
 | 
			
		||||
  ensure
 | 
			
		||||
    FileUtils.rm_f HOMEBREW_LIBRARY/"Homebrew"
 | 
			
		||||
    FileUtils.rm_f HOMEBREW_LIBRARY/".rubocop.yml"
 | 
			
		||||
    FileUtils.rm_f HOMEBREW_LIBRARY/".rubocop_shared.yml"
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  before do
 | 
			
		||||
    allow(Homebrew).to receive(:install_bundler_gems!)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  describe "Homebrew::check_style_json" do
 | 
			
		||||
    let(:dir) { mktmpdir }
 | 
			
		||||
 | 
			
		||||
    it "returns RubocopResults when RuboCop reports offenses" do
 | 
			
		||||
      formula = dir/"my-formula.rb"
 | 
			
		||||
 | 
			
		||||
      formula.write <<~'EOS'
 | 
			
		||||
        class MyFormula < Formula
 | 
			
		||||
 | 
			
		||||
        end
 | 
			
		||||
      EOS
 | 
			
		||||
 | 
			
		||||
      rubocop_result = Homebrew::Style.check_style_json([formula])
 | 
			
		||||
 | 
			
		||||
      expect(rubocop_result.file_offenses(formula.realpath.to_s).map(&:message))
 | 
			
		||||
        .to include("Extra empty line detected at class body beginning.")
 | 
			
		||||
    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
 | 
			
		||||
      rubocop_result = Homebrew::Style.check_style_json(
 | 
			
		||||
        [formula],
 | 
			
		||||
        fix: true, only_cops: ["FormulaAudit/DependencyOrder"],
 | 
			
		||||
      )
 | 
			
		||||
      offense_string = rubocop_result.file_offenses(formula.realpath).first.to_s
 | 
			
		||||
      expect(offense_string).to match(/\[Corrected\]/)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  describe "Homebrew::check_style_and_print" do
 | 
			
		||||
    let(:dir) { mktmpdir }
 | 
			
		||||
 | 
			
		||||
    it "returns false for conforming file with only audit-level violations" do
 | 
			
		||||
      # This file is known to use non-rocket hashes and other things that trigger audit,
 | 
			
		||||
      # but not regular, cop violations
 | 
			
		||||
      target_file = HOMEBREW_LIBRARY_PATH/"utils.rb"
 | 
			
		||||
 | 
			
		||||
      rubocop_result = Homebrew::Style.check_style_and_print([target_file])
 | 
			
		||||
 | 
			
		||||
      expect(rubocop_result).to eq true
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										80
									
								
								Library/Homebrew/test/style_spec.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								Library/Homebrew/test/style_spec.rb
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,80 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
require "style"
 | 
			
		||||
 | 
			
		||||
describe Homebrew::Style do
 | 
			
		||||
  around do |example|
 | 
			
		||||
    FileUtils.ln_s HOMEBREW_LIBRARY_PATH, HOMEBREW_LIBRARY/"Homebrew"
 | 
			
		||||
    FileUtils.ln_s HOMEBREW_LIBRARY_PATH.parent/".rubocop.yml", HOMEBREW_LIBRARY/".rubocop.yml"
 | 
			
		||||
    FileUtils.ln_s HOMEBREW_LIBRARY_PATH.parent/".rubocop_shared.yml", HOMEBREW_LIBRARY/".rubocop_shared.yml"
 | 
			
		||||
 | 
			
		||||
    example.run
 | 
			
		||||
  ensure
 | 
			
		||||
    FileUtils.rm_f HOMEBREW_LIBRARY/"Homebrew"
 | 
			
		||||
    FileUtils.rm_f HOMEBREW_LIBRARY/".rubocop.yml"
 | 
			
		||||
    FileUtils.rm_f HOMEBREW_LIBRARY/".rubocop_shared.yml"
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  before do
 | 
			
		||||
    allow(Homebrew).to receive(:install_bundler_gems!)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  describe ".check_style_json" do
 | 
			
		||||
    let(:dir) { mktmpdir }
 | 
			
		||||
 | 
			
		||||
    it "returns RubocopResults when RuboCop reports offenses" do
 | 
			
		||||
      formula = dir/"my-formula.rb"
 | 
			
		||||
 | 
			
		||||
      formula.write <<~'EOS'
 | 
			
		||||
        class MyFormula < Formula
 | 
			
		||||
 | 
			
		||||
        end
 | 
			
		||||
      EOS
 | 
			
		||||
 | 
			
		||||
      rubocop_result = described_class.check_style_json([formula])
 | 
			
		||||
 | 
			
		||||
      expect(rubocop_result.file_offenses(formula.realpath.to_s).map(&:message))
 | 
			
		||||
        .to include("Extra empty line detected at class body beginning.")
 | 
			
		||||
    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
 | 
			
		||||
      rubocop_result = described_class.check_style_json(
 | 
			
		||||
        [formula],
 | 
			
		||||
        fix: true, only_cops: ["FormulaAudit/DependencyOrder"],
 | 
			
		||||
      )
 | 
			
		||||
      offense_string = rubocop_result.file_offenses(formula.realpath).first.to_s
 | 
			
		||||
      expect(offense_string).to match(/\[Corrected\]/)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  describe ".check_style_and_print" do
 | 
			
		||||
    let(:dir) { mktmpdir }
 | 
			
		||||
 | 
			
		||||
    it "returns false for conforming file with only audit-level violations" do
 | 
			
		||||
      # This file is known to use non-rocket hashes and other things that trigger audit,
 | 
			
		||||
      # but not regular, cop violations
 | 
			
		||||
      target_file = HOMEBREW_LIBRARY_PATH/"utils.rb"
 | 
			
		||||
 | 
			
		||||
      rubocop_result = described_class.check_style_and_print([target_file])
 | 
			
		||||
 | 
			
		||||
      expect(rubocop_result).to eq true
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user