Refactor OsxfuseRequirement spec.
This commit is contained in:
parent
b91628a614
commit
5e2d4d52ba
@ -113,6 +113,7 @@ module Homebrew
|
||||
end
|
||||
|
||||
unless OS.linux?
|
||||
args << "--tag" << "~needs_linux"
|
||||
files = files.reject { |p| p =~ %r{^test/os/linux(/.*|_spec\.rb)$} }
|
||||
end
|
||||
|
||||
|
||||
@ -0,0 +1,15 @@
|
||||
require "requirement"
|
||||
|
||||
class NonBinaryOsxfuseRequirement < Requirement
|
||||
fatal true
|
||||
satisfy(build_env: false) do
|
||||
HOMEBREW_PREFIX.to_s != "/usr/local" || !OsxfuseRequirement.binary_osxfuse_installed?
|
||||
end
|
||||
|
||||
def message
|
||||
<<~EOS
|
||||
osxfuse is already installed from the binary distribution and
|
||||
conflicts with this formula.
|
||||
EOS
|
||||
end
|
||||
end
|
||||
@ -19,15 +19,3 @@ class OsxfuseRequirement < Requirement
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
class NonBinaryOsxfuseRequirement < Requirement
|
||||
fatal true
|
||||
satisfy(build_env: false) { HOMEBREW_PREFIX.to_s != "/usr/local" || !OsxfuseRequirement.binary_osxfuse_installed? }
|
||||
|
||||
def message
|
||||
<<~EOS
|
||||
osxfuse is already installed from the binary distribution and
|
||||
conflicts with this formula.
|
||||
EOS
|
||||
end
|
||||
end
|
||||
|
||||
@ -0,0 +1,3 @@
|
||||
if OS.mac?
|
||||
require "extend/os/mac/requirements/non_binary_osxfuse_requirement"
|
||||
end
|
||||
@ -0,0 +1,7 @@
|
||||
require "requirement"
|
||||
|
||||
class NonBinaryOsxfuseRequirement < Requirement
|
||||
fatal false
|
||||
end
|
||||
|
||||
require "extend/os/requirements/non_binary_osxfuse_requirement"
|
||||
@ -5,8 +5,4 @@ class OsxfuseRequirement < Requirement
|
||||
fatal true
|
||||
end
|
||||
|
||||
class NonBinaryOsxfuseRequirement < Requirement
|
||||
fatal false
|
||||
end
|
||||
|
||||
require "extend/os/requirements/osxfuse_requirement"
|
||||
|
||||
@ -1,9 +0,0 @@
|
||||
require "requirements/osxfuse_requirement"
|
||||
|
||||
describe OsxfuseRequirement do
|
||||
subject { described_class.new([]) }
|
||||
|
||||
describe "#message" do
|
||||
its(:message) { is_expected.to match("libfuse is required to install this formula") }
|
||||
end
|
||||
end
|
||||
@ -1,36 +0,0 @@
|
||||
require "requirements/osxfuse_requirement"
|
||||
|
||||
describe OsxfuseRequirement do
|
||||
subject { described_class.new([]) }
|
||||
|
||||
describe "::binary_osxfuse_installed?" do
|
||||
it "returns false if fuse.h does not exist" do
|
||||
allow(File).to receive(:exist?).and_return(false)
|
||||
expect(described_class).not_to be_binary_osxfuse_installed
|
||||
end
|
||||
|
||||
it "returns false if osxfuse include directory is a symlink" do
|
||||
allow(File).to receive(:exist?).and_return(true)
|
||||
allow(File).to receive(:symlink?).and_return(true)
|
||||
expect(described_class).not_to be_binary_osxfuse_installed
|
||||
end
|
||||
end
|
||||
|
||||
describe "environment" do
|
||||
it "adds the fuse directories to the appropriate paths" do
|
||||
expect(ENV).to receive(:append_path).with("PKG_CONFIG_PATH", any_args)
|
||||
expect(ENV).to receive(:append_path).with("HOMEBREW_LIBRARY_PATHS", any_args)
|
||||
expect(ENV).to receive(:append_path).with("HOMEBREW_INCLUDE_PATHS", any_args)
|
||||
subject.modify_build_environment
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe NonBinaryOsxfuseRequirement do
|
||||
subject { described_class.new([]) }
|
||||
|
||||
describe "#message" do
|
||||
msg = /osxfuse is already installed from the binary distribution/
|
||||
its(:message) { is_expected.to match(msg) }
|
||||
end
|
||||
end
|
||||
@ -0,0 +1,9 @@
|
||||
require "requirements/non_binary_osxfuse_requirement"
|
||||
|
||||
describe NonBinaryOsxfuseRequirement, :needs_macos do
|
||||
subject { described_class.new([]) }
|
||||
|
||||
describe "#message" do
|
||||
its(:message) { is_expected.to match("osxfuse is already installed from the binary distribution") }
|
||||
end
|
||||
end
|
||||
@ -0,0 +1,50 @@
|
||||
require "requirements/osxfuse_requirement"
|
||||
|
||||
describe OsxfuseRequirement do
|
||||
subject(:requirement) { described_class.new([]) }
|
||||
|
||||
describe "::binary_osxfuse_installed?", :needs_macos do
|
||||
alias_matcher :have_binary_osxfuse_installed, :be_binary_osxfuse_installed
|
||||
|
||||
it "returns false if fuse.h does not exist" do
|
||||
allow(File).to receive(:exist?).and_return(false)
|
||||
expect(described_class).not_to have_binary_osxfuse_installed
|
||||
end
|
||||
|
||||
it "returns false if osxfuse include directory is a symlink" do
|
||||
allow(File).to receive(:exist?).and_return(true)
|
||||
allow(File).to receive(:symlink?).and_return(true)
|
||||
expect(described_class).not_to have_binary_osxfuse_installed
|
||||
end
|
||||
end
|
||||
|
||||
describe "#modify_build_environment", :needs_macos do
|
||||
it "adds the fuse directories to PKG_CONFIG_PATH" do
|
||||
allow(ENV).to receive(:append_path)
|
||||
requirement.modify_build_environment
|
||||
expect(ENV).to have_received(:append_path).with("PKG_CONFIG_PATH", any_args)
|
||||
end
|
||||
|
||||
it "adds the fuse directories to HOMEBREW_LIBRARY_PATHS" do
|
||||
allow(ENV).to receive(:append_path)
|
||||
requirement.modify_build_environment
|
||||
expect(ENV).to have_received(:append_path).with("HOMEBREW_LIBRARY_PATHS", any_args)
|
||||
end
|
||||
|
||||
it "adds the fuse directories to HOMEBREW_INCLUDE_PATHS" do
|
||||
allow(ENV).to receive(:append_path)
|
||||
requirement.modify_build_environment
|
||||
expect(ENV).to have_received(:append_path).with("HOMEBREW_INCLUDE_PATHS", any_args)
|
||||
end
|
||||
end
|
||||
|
||||
describe "#message" do
|
||||
it "prompts for installation of 'libfuse' on Linux", :needs_linux do
|
||||
expect(requirement.message).to match("libfuse is required to install this formula")
|
||||
end
|
||||
|
||||
it "prompts for installation of 'osxFuse' on macOS", :needs_macos do
|
||||
expect(requirement.message).to match("osxfuse.github.io")
|
||||
end
|
||||
end
|
||||
end
|
||||
Loading…
x
Reference in New Issue
Block a user