diff --git a/lib/vagrant/environment.rb b/lib/vagrant/environment.rb index ff75ec948..687c00fb6 100644 --- a/lib/vagrant/environment.rb +++ b/lib/vagrant/environment.rb @@ -158,7 +158,7 @@ module Vagrant if parent parent.multivm? else - vms.length > 1 + vms.length > 1 || vms.keys.first != DEFAULT_VM end end diff --git a/test/vagrant/command/helpers_test.rb b/test/vagrant/command/helpers_test.rb index 19057fb3e..9b6350361 100644 --- a/test/vagrant/command/helpers_test.rb +++ b/test/vagrant/command/helpers_test.rb @@ -39,11 +39,11 @@ class CommandHelpersTest < Test::Unit::TestCase context "without multivm" do setup do - @env.stubs(:vms).returns({ :one => 1 }) + @env.stubs(:vms).returns({ :one => 1, :two => 2 }) end should "raise an exception if a name is specified" do - instance = command(["foo"], @env) + instance = command(["foo"], vagrant_env) assert_raises(Vagrant::Errors::MultiVMEnvironmentRequired) { instance.target_vms } diff --git a/test/vagrant/environment_test.rb b/test/vagrant/environment_test.rb index 76a723c32..9769acd72 100644 --- a/test/vagrant/environment_test.rb +++ b/test/vagrant/environment_test.rb @@ -129,12 +129,16 @@ class EnvironmentTest < Test::Unit::TestCase assert env.multivm? end - should "return false if VM length is 1" do + should "return true if VM length is 1 and a sub-VM is defined" do env = vagrant_env(vagrantfile(<<-vf)) config.vm.define :web vf - assert !env.multivm? + assert env.multivm? + end + + should "return false if only default VM exists" do + assert !vagrant_env.multivm? end end