brew/Library/Homebrew/test/bottle_publisher_spec.rb
Michka Popoff a70179d8b7 pull: extract bottle publishing code
and add tests
2019-07-03 21:18:17 +02:00

49 lines
1.6 KiB
Ruby

# frozen_string_literal: true
require "bottle_publisher"
describe BottlePublisher do
subject(:bottle_publisher) {
described_class.new(
CoreTap.instance, ["#{CoreTap.instance.name}/hello.rb"], "homebrew", false, false
)
}
let(:tap) { CoreTap.new }
describe "publish_and_check_bottles" do
it "fails if HOMEBREW_DISABLE_LOAD_FORMULA is set to 1" do
ENV["HOMEBREW_DISABLE_LOAD_FORMULA"] = "1"
expect { bottle_publisher.publish_and_check_bottles }
.to raise_error("Need to load formulae to publish them!")
end
it "returns nil because HOMEBREW_BINTRAY_USER and HOMEBREW_BINTRAY_KEY are not set" do
ENV["HOMEBREW_BINTRAY_USER"] = nil
ENV["HOMEBREW_BINTRAY_KEY"] = nil
expect(bottle_publisher.publish_and_check_bottles)
.to eq nil
end
end
describe "verify_bintray_published" do
it "returns nil if no formula has been defined" do
expect(bottle_publisher.verify_bintray_published([]))
.to eq nil
end
it "fails if HOMEBREW_DISABLE_LOAD_FORMULA is set to 1" do
ENV["HOMEBREW_DISABLE_LOAD_FORMULA"] = "1"
stub_formula_loader(formula("foo") { url "foo-1.0" })
expect { bottle_publisher.verify_bintray_published(["foo"]) }
.to raise_error("Need to load formulae to verify their publication!")
end
it "checks if a bottle has been published" do
stub_formula_loader(formula("foo") { url "foo-1.0" })
expect { bottle_publisher.verify_bintray_published(["foo"]) }
.to output("Warning: Cannot publish bottle: Failed reading info for formula foo\n").to_stderr
end
end
end