cask/auditor: only audit 10 languages by default on casks with many languages

This commit is contained in:
Bevan Kay 2023-02-28 18:54:27 +11:00
parent 6db7732fa3
commit d1b09a90da
No known key found for this signature in database
GPG Key ID: C55CB024B5314B57
3 changed files with 74 additions and 1 deletions

View File

@ -48,12 +48,22 @@ module Cask
@except = except
end
LANGUAGE_BLOCK_LIMIT = 10
def audit
warnings = Set.new
errors = Set.new
if !language && language_blocks
language_blocks.each_key do |l|
if language_blocks.length > LANGUAGE_BLOCK_LIMIT && !@audit_new_cask
sample_keys = language_blocks.keys.sample(LANGUAGE_BLOCK_LIMIT)
sample_languages = language_blocks.select { |k| sample_keys.include?(k) }
ohai "Auditing a sample of available languages: #{sample_keys.map { |lang| lang[0].to_s }.to_sentence}"
else
sample_languages = language_blocks
end
sample_languages.each_key do |l|
audit = audit_languages(l)
summary = audit.summary(include_passed: output_passed?, include_warnings: output_warnings?)
if summary.present? && output_summary?(audit)

View File

@ -5,6 +5,7 @@ require "cask/auditor"
describe Cask::Cmd::Audit, :cask do
let(:cask) { Cask::Cask.new("cask") }
let(:cask_with_many_languages) { Cask::CaskLoader.load(cask_path("with-many-languages")) }
let(:result) { { warnings: Set.new, errors: Set.new } }
describe "selection of Casks to audit" do
@ -160,4 +161,11 @@ describe Cask::Cmd::Audit, :cask do
described_class.run("casktoken")
end
it "audits a sample of language when cask contains more than 10 languages" do
allow(Cask::CaskLoader).to receive(:load).and_return(cask_with_many_languages)
expect {
described_class.run("with-many-languages")
}.to output(/==> auditing a sample of available languages/im).to_stdout
end
end

View File

@ -0,0 +1,55 @@
cask "with-many-languages" do
version "1.2.3"
language "en", default: true do
sha256 :no_check
"en"
end
language "cs" do
sha256 :no_check
"cs"
end
language "es-AR" do
sha256 :no_check
"es-AR"
end
language "ff" do
sha256 :no_check
"ff"
end
language "fi" do
sha256 :no_check
"fi"
end
language "gn" do
sha256 :no_check
"gn"
end
language "gu" do
sha256 :no_check
"gu"
end
language "ko" do
sha256 :no_check
"ko"
end
language "ru" do
sha256 :no_check
"ru"
end
language "sv" do
sha256 :no_check
"sv"
end
language "th" do
sha256 :no_check
"th"
end
name "Caffeine"
desc "Keep your mac awake"
url "file://#{TEST_FIXTURE_DIR}/cask/caffeine#{version}.zip"
homepage "https://brew.sh/"
app "Caffeine.app"
end