Merge pull request #2221 from reitermarkus/spec-formula_validation
Convert `formula_validation` test to spec.
This commit is contained in:
commit
d2c9424cff
94
Library/Homebrew/test/formula_validation_spec.rb
Normal file
94
Library/Homebrew/test/formula_validation_spec.rb
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
require "formula"
|
||||||
|
|
||||||
|
describe Formula do
|
||||||
|
describe "::new" do
|
||||||
|
matcher :fail_with_invalid do |attr|
|
||||||
|
match do |actual|
|
||||||
|
expect {
|
||||||
|
begin
|
||||||
|
actual.call
|
||||||
|
rescue => e
|
||||||
|
expect(e.attr).to eq(attr)
|
||||||
|
raise e
|
||||||
|
end
|
||||||
|
}.to raise_error(FormulaValidationError)
|
||||||
|
end
|
||||||
|
|
||||||
|
def supports_block_expectations?
|
||||||
|
true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
it "cant override the `brew` method" do
|
||||||
|
expect {
|
||||||
|
formula do
|
||||||
|
def brew; end
|
||||||
|
end
|
||||||
|
}.to raise_error(RuntimeError, /You cannot override Formula#brew/)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "validates the `name`" do
|
||||||
|
expect {
|
||||||
|
formula "name with spaces" do
|
||||||
|
url "foo"
|
||||||
|
version "1.0"
|
||||||
|
end
|
||||||
|
}.to fail_with_invalid :name
|
||||||
|
end
|
||||||
|
|
||||||
|
it "validates the `url`" do
|
||||||
|
expect {
|
||||||
|
formula do
|
||||||
|
url ""
|
||||||
|
version "1"
|
||||||
|
end
|
||||||
|
}.to fail_with_invalid :url
|
||||||
|
end
|
||||||
|
|
||||||
|
it "validates the `version`" do
|
||||||
|
expect {
|
||||||
|
formula do
|
||||||
|
url "foo"
|
||||||
|
version "version with spaces"
|
||||||
|
end
|
||||||
|
}.to fail_with_invalid :version
|
||||||
|
|
||||||
|
expect {
|
||||||
|
formula do
|
||||||
|
url "foo"
|
||||||
|
version ""
|
||||||
|
end
|
||||||
|
}.to fail_with_invalid :version
|
||||||
|
|
||||||
|
expect {
|
||||||
|
formula do
|
||||||
|
url "foo"
|
||||||
|
version nil
|
||||||
|
end
|
||||||
|
}.to fail_with_invalid :version
|
||||||
|
end
|
||||||
|
|
||||||
|
specify "devel-only is valid" do
|
||||||
|
f = formula do
|
||||||
|
devel do
|
||||||
|
url "foo"
|
||||||
|
version "1.0"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
expect(f).to be_devel
|
||||||
|
end
|
||||||
|
|
||||||
|
specify "head-only is valid" do
|
||||||
|
f = formula do
|
||||||
|
head "foo"
|
||||||
|
end
|
||||||
|
|
||||||
|
expect(f).to be_head
|
||||||
|
end
|
||||||
|
|
||||||
|
it "fails when Formula is empty" do
|
||||||
|
expect { formula {} }.to raise_error(FormulaSpecificationError)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@ -1,75 +0,0 @@
|
|||||||
require "testing_env"
|
|
||||||
require "formula"
|
|
||||||
|
|
||||||
class FormulaValidationTests < Homebrew::TestCase
|
|
||||||
def assert_invalid(attr, &block)
|
|
||||||
e = assert_raises(FormulaValidationError, &block)
|
|
||||||
assert_equal attr, e.attr
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_cant_override_brew
|
|
||||||
e = assert_raises(RuntimeError) { formula { def brew; end } }
|
|
||||||
assert_match(/You cannot override Formula#brew/, e.message)
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_validates_name
|
|
||||||
assert_invalid :name do
|
|
||||||
formula "name with spaces" do
|
|
||||||
url "foo"
|
|
||||||
version "1.0"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_validates_url
|
|
||||||
assert_invalid :url do
|
|
||||||
formula do
|
|
||||||
url ""
|
|
||||||
version "1"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_validates_version
|
|
||||||
assert_invalid :version do
|
|
||||||
formula do
|
|
||||||
url "foo"
|
|
||||||
version "version with spaces"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
assert_invalid :version do
|
|
||||||
formula do
|
|
||||||
url "foo"
|
|
||||||
version ""
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
assert_invalid :version do
|
|
||||||
formula do
|
|
||||||
url "foo"
|
|
||||||
version nil
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_devel_only_valid
|
|
||||||
f = formula do
|
|
||||||
devel do
|
|
||||||
url "foo"
|
|
||||||
version "1.0"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
assert_predicate f, :devel?
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_head_only_valid
|
|
||||||
f = formula { head "foo" }
|
|
||||||
assert_predicate f, :head?
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_empty_formula_invalid
|
|
||||||
assert_raises(FormulaSpecificationError) { formula {} }
|
|
||||||
end
|
|
||||||
end
|
|
||||||
Loading…
x
Reference in New Issue
Block a user