diff options
| author | Markus Reiter | 2017-02-20 13:02:54 +0100 | 
|---|---|---|
| committer | Markus Reiter | 2017-02-20 13:58:30 +0100 | 
| commit | f33efbe7c46d4a148af00c83dff73c14717ed0d1 (patch) | |
| tree | efcf3e29fd1aaec2d0f30a7e43ee5da87a6182a4 | |
| parent | 398de9cf3ce10988d7863a72a472a09e8252554a (diff) | |
| download | brew-f33efbe7c46d4a148af00c83dff73c14717ed0d1.tar.bz2 | |
Convert LanguageModuleRequirement test to spec.
| -rw-r--r-- | Library/Homebrew/test/language_module_requirement_spec.rb | 49 | ||||
| -rw-r--r-- | Library/Homebrew/test/language_module_requirement_test.rb | 55 | ||||
| -rw-r--r-- | Library/Homebrew/test/spec_helper.rb | 4 | 
3 files changed, 53 insertions, 55 deletions
| diff --git a/Library/Homebrew/test/language_module_requirement_spec.rb b/Library/Homebrew/test/language_module_requirement_spec.rb new file mode 100644 index 000000000..7f2666855 --- /dev/null +++ b/Library/Homebrew/test/language_module_requirement_spec.rb @@ -0,0 +1,49 @@ +require "requirements/language_module_requirement" + +describe LanguageModuleRequirement do +  specify "unique dependencies are not equal" do +    x = described_class.new(:node, "less") +    y = described_class.new(:node, "coffee-script") +    expect(x).not_to eq(y) +    expect(x.hash).not_to eq(y.hash) +  end + +  context "when module and import name differ" do +    subject { described_class.new(:python, mod_name, import_name) } +    let(:mod_name) { "foo" } +    let(:import_name) { "bar" } + +    its(:message) { is_expected.to include(mod_name) } +    its(:the_test) { is_expected.to include("import #{import_name}") } +  end + +  context "when the language is Perl" do +    it "does not satisfy invalid dependencies" do +      expect(described_class.new(:perl, "notapackage")).not_to be_satisfied +    end + +    it "satisfies valid dependencies" do +      expect(described_class.new(:perl, "Env")).to be_satisfied +    end +  end + +  context "when the language is Python", :needs_python do +    it "does not satisfy invalid dependencies" do +      expect(described_class.new(:python, "notapackage")).not_to be_satisfied +    end + +    it "satisfies valid dependencies" do +      expect(described_class.new(:python, "datetime")).to be_satisfied +    end +  end + +  context "when the language is Ruby" do +    it "does not satisfy invalid dependencies" do +      expect(described_class.new(:ruby, "notapackage")).not_to be_satisfied +    end + +    it "satisfies valid dependencies" do +      expect(described_class.new(:ruby, "date")).to be_satisfied +    end +  end +end diff --git a/Library/Homebrew/test/language_module_requirement_test.rb b/Library/Homebrew/test/language_module_requirement_test.rb deleted file mode 100644 index dfa992287..000000000 --- a/Library/Homebrew/test/language_module_requirement_test.rb +++ /dev/null @@ -1,55 +0,0 @@ -require "testing_env" -require "requirements/language_module_requirement" - -class LanguageModuleRequirementTests < Homebrew::TestCase -  parallelize_me! - -  def assert_deps_fail(spec) -    refute_predicate LanguageModuleRequirement.new(*spec.shift.reverse), :satisfied? -  end - -  def assert_deps_pass(spec) -    assert_predicate LanguageModuleRequirement.new(*spec.shift.reverse), :satisfied? -  end - -  def test_unique_deps_are_not_eql -    x = LanguageModuleRequirement.new(:node, "less") -    y = LanguageModuleRequirement.new(:node, "coffee-script") -    refute_eql x, y -    refute_equal x.hash, y.hash -  end - -  def test_differing_module_and_import_name -    mod_name = "foo" -    import_name = "bar" -    l = LanguageModuleRequirement.new(:python, mod_name, import_name) -    assert_includes l.message, mod_name -    assert_includes l.the_test, "import #{import_name}" -  end - -  def test_bad_perl_deps -    assert_deps_fail "notapackage" => :perl -  end - -  def test_good_perl_deps -    assert_deps_pass "Env" => :perl -  end - -  def test_bad_python_deps -    needs_python -    assert_deps_fail "notapackage" => :python -  end - -  def test_good_python_deps -    needs_python -    assert_deps_pass "datetime" => :python -  end - -  def test_bad_ruby_deps -    assert_deps_fail "notapackage" => :ruby -  end - -  def test_good_ruby_deps -    assert_deps_pass "date" => :ruby -  end -end diff --git a/Library/Homebrew/test/spec_helper.rb b/Library/Homebrew/test/spec_helper.rb index 6ffbf5c8e..67e5f555a 100644 --- a/Library/Homebrew/test/spec_helper.rb +++ b/Library/Homebrew/test/spec_helper.rb @@ -33,6 +33,10 @@ RSpec.configure do |config|      if example.metadata[:needs_macos]        skip "not on macOS" unless OS.mac?      end + +    if example.metadata[:needs_python] +      skip "Python not installed." unless which("python") +    end    end    config.around(:each) do |example|      begin | 
