Test Language::Python::Virtualenv
This commit is contained in:
parent
2783adec4a
commit
134d0bb486
88
Library/Homebrew/test/test_language_python.rb
Normal file
88
Library/Homebrew/test/test_language_python.rb
Normal file
@ -0,0 +1,88 @@
|
||||
require "testing_env"
|
||||
require "language/python"
|
||||
require "resource"
|
||||
|
||||
class LanguagePythonTests < Homebrew::TestCase
|
||||
def setup
|
||||
@dir = Pathname.new(mktmpdir)
|
||||
resource = stub("resource", :stage => true)
|
||||
@formula = mock("formula") do
|
||||
stubs(:resource).returns(resource)
|
||||
end
|
||||
@venv = Language::Python::Virtualenv::Virtualenv.new(@formula, @dir, "python")
|
||||
end
|
||||
|
||||
def teardown
|
||||
FileUtils.rm_rf @dir
|
||||
end
|
||||
|
||||
def test_virtualenv_creation
|
||||
@formula.expects(:resource).with("homebrew-virtualenv").returns(
|
||||
mock("resource", :stage => true)
|
||||
)
|
||||
@venv.create
|
||||
end
|
||||
|
||||
# or at least doesn't crash the second time
|
||||
def test_virtualenv_creation_is_idempotent
|
||||
@formula.expects(:resource).with("homebrew-virtualenv").returns(
|
||||
mock("resource", :stage => true)
|
||||
)
|
||||
@venv.create
|
||||
FileUtils.mkdir_p @dir/"bin"
|
||||
FileUtils.touch @dir/"bin/python"
|
||||
@venv.create
|
||||
FileUtils.rm @dir/"bin/python"
|
||||
end
|
||||
|
||||
def test_pip_install_accepts_string
|
||||
@formula.expects(:system).returns(true).with do |*params|
|
||||
params.first == @dir/"bin/pip" && params.last == "foo"
|
||||
end
|
||||
@venv.pip_install "foo"
|
||||
end
|
||||
|
||||
def test_pip_install_accepts_multiline_string
|
||||
@formula.expects(:system).returns(true).with do |*params|
|
||||
params.first == @dir/"bin/pip" && params[-2..-1] == ["foo", "bar"]
|
||||
end
|
||||
@venv.pip_install <<-EOS.undent
|
||||
foo
|
||||
bar
|
||||
EOS
|
||||
end
|
||||
|
||||
def test_pip_install_accepts_array
|
||||
@formula.expects(:system).returns(true).with do |*params|
|
||||
params.first == @dir/"bin/pip" && params.last == "foo"
|
||||
end
|
||||
@formula.expects(:system).returns(true).with do |*params|
|
||||
params.first == @dir/"bin/pip" && params.last == "bar"
|
||||
end
|
||||
@venv.pip_install ["foo", "bar"]
|
||||
end
|
||||
|
||||
def test_pip_install_accepts_resource
|
||||
res = Resource.new "test"
|
||||
res.expects(:stage).yields(nil)
|
||||
@formula.expects(:system).returns(true).with do |*params|
|
||||
params.first == @dir/"bin/pip" && params.last == Pathname.pwd
|
||||
end
|
||||
@venv.pip_install res
|
||||
end
|
||||
|
||||
def test_link_scripts_links_scripts
|
||||
bin = (@dir/"bin")
|
||||
dest = (@dir/"dest")
|
||||
bin.mkpath
|
||||
refute((bin/"kilroy").exist?)
|
||||
refute((dest/"kilroy").exist?)
|
||||
FileUtils.touch bin/"irrelevant"
|
||||
@venv.link_scripts(dest) { FileUtils.touch bin/"kilroy" }
|
||||
assert((bin/"kilroy").exist?)
|
||||
assert((dest/"kilroy").exist?)
|
||||
assert((dest/"kilroy").symlink?)
|
||||
assert_equal((bin/"kilroy").realpath, (dest/"kilroy").realpath)
|
||||
refute((dest/"irrelevant").exist?)
|
||||
end
|
||||
end
|
||||
Loading…
x
Reference in New Issue
Block a user