check if a box exists before beginning add action
This commit is contained in:
parent
025cede012
commit
c952fdaa24
|
@ -3,10 +3,14 @@ module Vagrant
|
||||||
module Box
|
module Box
|
||||||
class Add < Base
|
class Add < Base
|
||||||
def prepare
|
def prepare
|
||||||
|
if File.exists?(@runner.directory)
|
||||||
|
raise ActionException.new("A box with the name '#{@runner.name}' already exists, please use another name or use `vagrant box remove #{@runner.name}`")
|
||||||
|
end
|
||||||
|
|
||||||
@runner.add_action(Download)
|
@runner.add_action(Download)
|
||||||
@runner.add_action(Unpackage)
|
@runner.add_action(Unpackage)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -3,6 +3,8 @@ require File.join(File.dirname(__FILE__), '..', '..', '..', 'test_helper')
|
||||||
class AddBoxActionTest < Test::Unit::TestCase
|
class AddBoxActionTest < Test::Unit::TestCase
|
||||||
setup do
|
setup do
|
||||||
@runner, @vm, @action = mock_action(Vagrant::Actions::Box::Add)
|
@runner, @vm, @action = mock_action(Vagrant::Actions::Box::Add)
|
||||||
|
@runner.stubs(:directory).returns("foo")
|
||||||
|
File.stubs(:exists?).returns(false)
|
||||||
mock_config
|
mock_config
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -23,4 +25,15 @@ class AddBoxActionTest < Test::Unit::TestCase
|
||||||
@action.prepare
|
@action.prepare
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "providing a name for a base that exists" do
|
||||||
|
should "result in an action exception" do
|
||||||
|
File.expects(:exists?).once.returns(true)
|
||||||
|
@runner.expects(:name).twice.returns('foo')
|
||||||
|
@runner.expects(:add_action).never
|
||||||
|
assert_raise Vagrant::Actions::ActionException do
|
||||||
|
@action.prepare
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue