requirements: enable userpaths by default during evaluation

This commit is contained in:
Jack Nagel 2013-01-22 14:11:21 -06:00
parent aed70e50e8
commit b9e5f1229b
2 changed files with 24 additions and 21 deletions

View File

@ -224,7 +224,6 @@ class Requirement
def satisfy(options={}, &block) def satisfy(options={}, &block)
if block_given? if block_given?
options[:userpaths] = true if env.userpaths?
@satisfied ||= Requirement::Satisfier.new(options, &block) @satisfied ||= Requirement::Satisfier.new(options, &block)
else else
@satisfied ||= options @satisfied ||= options
@ -243,7 +242,7 @@ class Requirement
if @options[:build_env] if @options[:build_env]
require 'superenv' require 'superenv'
ENV.with_build_environment do ENV.with_build_environment do
ENV.userpaths! if @options[:userpaths] ENV.userpaths!
yield @proc yield @proc
end end
else else

View File

@ -45,29 +45,33 @@ class RequirementTests < Test::Unit::TestCase
assert !req.satisfied? assert !req.satisfied?
end end
def test_satisfy_with_userpaths_from_env
ENV.expects(:with_build_environment).yields.returns(true)
ENV.expects(:userpaths!)
req = Class.new(Requirement) do
env :userpaths
satisfy(:build_env => true) { true }
end.new
assert req.satisfied?
end
def test_satisfy_with_userpaths_from_options
ENV.expects(:with_build_environment).yields.returns(true)
ENV.expects(:userpaths!)
req = Class.new(Requirement) do
satisfy(:build_env => true, :userpaths => true) { true }
end.new
assert req.satisfied?
end
def test_satisfy_with_boolean def test_satisfy_with_boolean
req = Class.new(Requirement) do req = Class.new(Requirement) do
satisfy true satisfy true
end.new end.new
assert req.satisfied? assert req.satisfied?
end end
def test_satisfy_sets_up_build_env_by_default
req = Class.new(Requirement) do
env :userpaths
satisfy { true }
end.new
ENV.expects(:with_build_environment).yields.returns(true)
ENV.expects(:userpaths!)
assert req.satisfied?
end
def test_satisfy_build_env_can_be_disabled
req = Class.new(Requirement) do
satisfy(:build_env => false) { true }
end.new
ENV.expects(:with_build_environment).never
ENV.expects(:userpaths!).never
assert req.satisfied?
end
end end