pleschev-vagrant-hostmaster 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +21 -0
- data/Gemfile +4 -0
- data/LICENSE +22 -0
- data/README.md +108 -0
- data/Rakefile +11 -0
- data/lib/vagrant/hostmaster.rb +15 -0
- data/lib/vagrant/hostmaster/command/base.rb +32 -0
- data/lib/vagrant/hostmaster/command/list.rb +8 -0
- data/lib/vagrant/hostmaster/command/remove.rb +8 -0
- data/lib/vagrant/hostmaster/command/root.rb +68 -0
- data/lib/vagrant/hostmaster/command/update.rb +8 -0
- data/lib/vagrant/hostmaster/config.rb +11 -0
- data/lib/vagrant/hostmaster/middleware/remove.rb +21 -0
- data/lib/vagrant/hostmaster/middleware/update.rb +21 -0
- data/lib/vagrant/hostmaster/version.rb +5 -0
- data/lib/vagrant/hostmaster/vm.rb +165 -0
- data/lib/vagrant_init.rb +1 -0
- data/test/vagrant/hostmaster/command_tests/list_test.rb +43 -0
- data/test/vagrant/hostmaster/command_tests/remove_test.rb +43 -0
- data/test/vagrant/hostmaster/command_tests/root_test.rb +49 -0
- data/test/vagrant/hostmaster/command_tests/update_test.rb +43 -0
- data/test/vagrant/hostmaster/config_test.rb +29 -0
- data/test/vagrant/hostmaster/middleware_tests/remove_test.rb +40 -0
- data/test/vagrant/hostmaster/middleware_tests/update_test.rb +38 -0
- data/test/vagrant/hostmaster/multiple_vm_test.rb +88 -0
- data/test/vagrant/hostmaster/simple_vm_test.rb +78 -0
- data/test/vagrant/hostmaster/test_helpers.rb +137 -0
- data/test/vagrant/hostmaster/ui/capture.rb +35 -0
- data/vagrant-hostmaster.gemspec +22 -0
- metadata +163 -0
data/lib/vagrant_init.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'vagrant/hostmaster'
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'mocha'
|
3
|
+
require 'vagrant/hostmaster'
|
4
|
+
require 'vagrant/hostmaster/command/list'
|
5
|
+
|
6
|
+
module Vagrant
|
7
|
+
module Hostmaster
|
8
|
+
module CommandTests
|
9
|
+
class ListTest < Test::Unit::TestCase
|
10
|
+
include Vagrant::TestHelpers
|
11
|
+
|
12
|
+
def setup
|
13
|
+
@env = vagrant_env
|
14
|
+
@vm = @env.vms.values.first
|
15
|
+
@vm.stubs(:state).returns(:running)
|
16
|
+
@command = Vagrant::Hostmaster::Command::List.new([], @env)
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_not_created
|
20
|
+
@vm.stubs(:state).returns(:not_created)
|
21
|
+
Vagrant::Hostmaster::Command::List.expects(:new).with([], @env).returns(@command)
|
22
|
+
Vagrant::Hostmaster::VM.expects(:new).never
|
23
|
+
@env.cli('hosts', 'list')
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_not_running
|
27
|
+
@vm.stubs(:state).returns(:poweroff)
|
28
|
+
Vagrant::Hostmaster::Command::List.expects(:new).with([], @env).returns(@command)
|
29
|
+
Vagrant::Hostmaster::VM.expects(:new).never
|
30
|
+
@env.cli('hosts', 'list')
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_list
|
34
|
+
Vagrant::Hostmaster::Command::List.stubs(:new).with([], @env).returns(@command)
|
35
|
+
vm = Vagrant::Hostmaster::VM.new(@vm)
|
36
|
+
Vagrant::Hostmaster::VM.expects(:new).with(@vm).returns(vm)
|
37
|
+
vm.expects(:list).with()
|
38
|
+
@env.cli('hosts', 'list')
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'mocha'
|
3
|
+
require 'vagrant/hostmaster'
|
4
|
+
require 'vagrant/hostmaster/command/remove'
|
5
|
+
|
6
|
+
module Vagrant
|
7
|
+
module Hostmaster
|
8
|
+
module CommandTests
|
9
|
+
class RemoveTest < Test::Unit::TestCase
|
10
|
+
include Vagrant::TestHelpers
|
11
|
+
|
12
|
+
def setup
|
13
|
+
@env = vagrant_env
|
14
|
+
@vm = @env.vms.values.first
|
15
|
+
@vm.stubs(:state).returns(:running)
|
16
|
+
@command = Vagrant::Hostmaster::Command::Remove.new([], @env)
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_not_created
|
20
|
+
@vm.stubs(:state).returns(:not_created)
|
21
|
+
Vagrant::Hostmaster::Command::Remove.expects(:new).with([], @env).returns(@command)
|
22
|
+
Vagrant::Hostmaster::VM.expects(:new).never
|
23
|
+
@env.cli('hosts', 'remove')
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_not_running
|
27
|
+
@vm.stubs(:state).returns(:poweroff)
|
28
|
+
Vagrant::Hostmaster::Command::Remove.expects(:new).with([], @env).returns(@command)
|
29
|
+
Vagrant::Hostmaster::VM.expects(:new).never
|
30
|
+
@env.cli('hosts', 'remove')
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_remove
|
34
|
+
Vagrant::Hostmaster::Command::Remove.stubs(:new).with([], @env).returns(@command)
|
35
|
+
vm = Vagrant::Hostmaster::VM.new(@vm)
|
36
|
+
Vagrant::Hostmaster::VM.expects(:new).with(@vm).returns(vm)
|
37
|
+
vm.expects(:remove).with()
|
38
|
+
@env.cli('hosts', 'remove')
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'mocha'
|
3
|
+
require 'vagrant/hostmaster'
|
4
|
+
require 'vagrant/hostmaster/command/list'
|
5
|
+
require 'vagrant/hostmaster/command/remove'
|
6
|
+
require 'vagrant/hostmaster/command/update'
|
7
|
+
|
8
|
+
module Vagrant
|
9
|
+
module Hostmaster
|
10
|
+
module CommandTests
|
11
|
+
class RootTest < Test::Unit::TestCase
|
12
|
+
include Vagrant::TestHelpers
|
13
|
+
|
14
|
+
def setup
|
15
|
+
@env = vagrant_env
|
16
|
+
@vm = @env.vms.values.first
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_no_command
|
20
|
+
command = Vagrant::Hostmaster::Command::Root.new([], @env)
|
21
|
+
Vagrant::Hostmaster::Command::Root.expects(:new).with([], @env).returns(command)
|
22
|
+
command.expects(:help)
|
23
|
+
@env.cli('hosts')
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_list
|
27
|
+
command = Vagrant::Hostmaster::Command::List.new([], @env)
|
28
|
+
Vagrant::Hostmaster::Command::List.expects(:new).with([], @env).returns(command)
|
29
|
+
command.expects(:execute).with()
|
30
|
+
@env.cli('hosts', 'list')
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_remove
|
34
|
+
command = Vagrant::Hostmaster::Command::Remove.new([], @env)
|
35
|
+
Vagrant::Hostmaster::Command::Remove.expects(:new).with([], @env).returns(command)
|
36
|
+
command.expects(:execute).with()
|
37
|
+
@env.cli('hosts', 'remove')
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_update
|
41
|
+
command = Vagrant::Hostmaster::Command::Update.new([], @env)
|
42
|
+
Vagrant::Hostmaster::Command::Update.expects(:new).with([], @env).returns(command)
|
43
|
+
command.expects(:execute).with()
|
44
|
+
@env.cli('hosts', 'update')
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'mocha'
|
3
|
+
require 'vagrant/hostmaster'
|
4
|
+
require 'vagrant/hostmaster/command/update'
|
5
|
+
|
6
|
+
module Vagrant
|
7
|
+
module Hostmaster
|
8
|
+
module CommandTests
|
9
|
+
class UpdateTest < Test::Unit::TestCase
|
10
|
+
include Vagrant::TestHelpers
|
11
|
+
|
12
|
+
def setup
|
13
|
+
@env = vagrant_env
|
14
|
+
@vm = @env.vms.values.first
|
15
|
+
@vm.stubs(:state).returns(:running)
|
16
|
+
@command = Vagrant::Hostmaster::Command::Update.new([], @env)
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_not_created
|
20
|
+
@vm.stubs(:state).returns(:not_created)
|
21
|
+
Vagrant::Hostmaster::Command::Update.expects(:new).with([], @env).returns(@command)
|
22
|
+
Vagrant::Hostmaster::VM.expects(:new).never
|
23
|
+
@env.cli('hosts', 'update')
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_not_running
|
27
|
+
@vm.stubs(:state).returns(:poweroff)
|
28
|
+
Vagrant::Hostmaster::Command::Update.expects(:new).with([], @env).returns(@command)
|
29
|
+
Vagrant::Hostmaster::VM.expects(:new).never
|
30
|
+
@env.cli('hosts', 'update')
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_update
|
34
|
+
Vagrant::Hostmaster::Command::Update.stubs(:new).with([], @env).returns(@command)
|
35
|
+
vm = Vagrant::Hostmaster::VM.new(@vm)
|
36
|
+
Vagrant::Hostmaster::VM.expects(:new).with(@vm).returns(vm)
|
37
|
+
vm.expects(:update).with()
|
38
|
+
@env.cli('hosts', 'update')
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require "mocha"
|
3
|
+
require 'vagrant/hostmaster'
|
4
|
+
|
5
|
+
module Vagrant
|
6
|
+
module Hostmaster
|
7
|
+
class ConfigTest < Test::Unit::TestCase
|
8
|
+
include Vagrant::TestHelpers
|
9
|
+
|
10
|
+
def setup
|
11
|
+
@config = Vagrant::Hostmaster::Config.new
|
12
|
+
@errors = Vagrant::Config::ErrorRecorder.new
|
13
|
+
@env = vagrant_env
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_default_valid
|
17
|
+
@config.validate(@env, @errors)
|
18
|
+
assert @errors.errors.empty?, "Default configuration should not have any errors."
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_valid
|
22
|
+
@config.name = 'hostmaster.dev'
|
23
|
+
@config.aliases = %w(www.hostmaster.dev)
|
24
|
+
@config.validate(@env, @errors)
|
25
|
+
assert @errors.errors.empty?, "Configuration should not have any errors."
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require "mocha"
|
3
|
+
require 'vagrant/hostmaster'
|
4
|
+
|
5
|
+
module Vagrant
|
6
|
+
module Hostmaster
|
7
|
+
module MiddlewareTests
|
8
|
+
class RemoveTest < Test::Unit::TestCase
|
9
|
+
include Vagrant::TestHelpers
|
10
|
+
|
11
|
+
def setup
|
12
|
+
@app, @env = action_env(vagrant_env.vms.values.first.env)
|
13
|
+
@env['vm'].stubs(:state).returns(:running)
|
14
|
+
@middleware = Vagrant::Hostmaster::Middleware::Remove.new(@app, @env)
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_not_created
|
18
|
+
@env['vm'].stubs(:state).returns(:not_created)
|
19
|
+
Vagrant::Hostmaster::VM.expects(:new).never
|
20
|
+
@middleware.call(@env)
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_not_running
|
24
|
+
@env['vm'].stubs(:state).returns(:poweroff)
|
25
|
+
vm = Vagrant::Hostmaster::VM.new(@env['vm'])
|
26
|
+
Vagrant::Hostmaster::VM.expects(:new).with(@env['vm']).returns(vm)
|
27
|
+
vm.expects(:remove).with(:guests => false)
|
28
|
+
@middleware.call(@env)
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_remove
|
32
|
+
vm = Vagrant::Hostmaster::VM.new(@env['vm'])
|
33
|
+
Vagrant::Hostmaster::VM.expects(:new).with(@env['vm']).returns(vm)
|
34
|
+
vm.expects(:remove).with(:guests => false)
|
35
|
+
@middleware.call(@env)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require "mocha"
|
3
|
+
require 'vagrant/hostmaster'
|
4
|
+
|
5
|
+
module Vagrant
|
6
|
+
module Hostmaster
|
7
|
+
module MiddlewareTests
|
8
|
+
class UpdateTest < Test::Unit::TestCase
|
9
|
+
include Vagrant::TestHelpers
|
10
|
+
|
11
|
+
def setup
|
12
|
+
@app, @env = action_env(vagrant_env.vms.values.first.env)
|
13
|
+
@env['vm'].stubs(:state).returns(:running)
|
14
|
+
@middleware = Vagrant::Hostmaster::Middleware::Update.new(@app, @env)
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_not_created
|
18
|
+
@env['vm'].stubs(:state).returns(:not_created)
|
19
|
+
Vagrant::Hostmaster::VM.expects(:new).never
|
20
|
+
@middleware.call(@env)
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_not_running
|
24
|
+
@env['vm'].stubs(:state).returns(:poweroff)
|
25
|
+
Vagrant::Hostmaster::VM.expects(:new).never
|
26
|
+
@middleware.call(@env)
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_update
|
30
|
+
vm = Vagrant::Hostmaster::VM.new(@env['vm'])
|
31
|
+
Vagrant::Hostmaster::VM.expects(:new).with(@env['vm']).returns(vm)
|
32
|
+
vm.expects(:update).with()
|
33
|
+
@middleware.call(@env)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,88 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require "mocha"
|
3
|
+
require 'vagrant/hostmaster'
|
4
|
+
require 'vagrant/hostmaster/test_helpers'
|
5
|
+
|
6
|
+
module Vagrant
|
7
|
+
module Hostmaster
|
8
|
+
class MultipleVMTest < Test::Unit::TestCase
|
9
|
+
include Vagrant::TestHelpers
|
10
|
+
include Vagrant::Hostmaster::TestHelpers
|
11
|
+
|
12
|
+
def setup
|
13
|
+
super
|
14
|
+
|
15
|
+
# TODO: test both windows and non-windows
|
16
|
+
Util::Platform.stubs(:windows?).returns(false)
|
17
|
+
@hosts_file = Tempfile.new('hosts')
|
18
|
+
hostmaster_box :one, 'one.hostmaster.dev', '10.0.0.100', '11111111-1111-1111-1111-111111111111'
|
19
|
+
hostmaster_box :two, 'two.hostmaster.dev', '10.0.0.200', '22222222-2222-2222-2222-222222222222'
|
20
|
+
@vms = hostmaster_vms(hostmaster_env)
|
21
|
+
end
|
22
|
+
|
23
|
+
def teardown
|
24
|
+
@hosts_file.unlink
|
25
|
+
clean_paths
|
26
|
+
super
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_add
|
30
|
+
Vagrant::Hostmaster::VM.stubs(:hosts_path).returns @hosts_file.path
|
31
|
+
@vms.each do |vm|
|
32
|
+
hostmaster_boxes.each do |name,box|
|
33
|
+
next if name == vm.name
|
34
|
+
param = %Q(sh -c 'echo \"#{box[:address]} #{box[:host_name]} # VAGRANT: #{vm.uuid} \(#{name}\)\" >>#{vm.hosts_path}')
|
35
|
+
vm.channel.expects(:sudo).with(param)
|
36
|
+
end
|
37
|
+
vm.add
|
38
|
+
end
|
39
|
+
assert_local_host_entries_for @vms, @hosts_file
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_list
|
43
|
+
Vagrant::Hostmaster::VM.stubs(:hosts_path).returns @hosts_file.path
|
44
|
+
write_local_host_entries @hosts_file
|
45
|
+
hostmaster_boxes.each do |target_name,target_box|
|
46
|
+
address, host_name, uuid, vm = target_box.values_at(:address, :host_name, :uuid, :vm)
|
47
|
+
hostmaster_boxes.each do |name,box|
|
48
|
+
next if name == target_name
|
49
|
+
param = "grep '# VAGRANT: #{uuid} (#{name})$' #{vm.hosts_path}"
|
50
|
+
vm.channel.expects(:execute).with(param, :error_check => false)
|
51
|
+
end
|
52
|
+
output = Vagrant::Hostmaster::UI::Capture.capture { vm.list }
|
53
|
+
assert_match /^\[local\] #{address} #{host_name} # VAGRANT: #{uuid} \(#{target_name}\)$/, output
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_remove_local_hosts_entry
|
58
|
+
Vagrant::Hostmaster::VM.stubs(:hosts_path).returns @hosts_file.path
|
59
|
+
write_local_host_entries @hosts_file
|
60
|
+
@vms.each do |vm|
|
61
|
+
hostmaster_boxes.each do |name,box|
|
62
|
+
next if name == vm.name
|
63
|
+
param = %Q(sed -e '/# VAGRANT: #{vm.uuid} (#{name})$/ d' -ibak #{vm.hosts_path})
|
64
|
+
vm.channel.expects(:sudo).with(param)
|
65
|
+
end
|
66
|
+
vm.remove
|
67
|
+
end
|
68
|
+
assert_no_local_host_entries_for @vms, @hosts_file
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_update_local_hosts_entry
|
72
|
+
Vagrant::Hostmaster::VM.stubs(:hosts_path).returns @hosts_file.path
|
73
|
+
write_local_host_entries @hosts_file, :one => {:address => '10.10.10.11', :host_name => 'a.hostmaster.dev'}, :two => {:address => '10.10.10.22', :host_name => 'b.hostmaster.dev'}
|
74
|
+
@vms.each do |vm|
|
75
|
+
hostmaster_boxes.each do |name,box|
|
76
|
+
next if name == vm.name
|
77
|
+
param = %Q(sed -e '/# VAGRANT: #{vm.uuid} (#{name})$/ d' -ibak #{vm.hosts_path})
|
78
|
+
vm.channel.expects(:sudo).with(param).returns(0)
|
79
|
+
param = %Q(sh -c 'echo \"#{box[:address]} #{box[:host_name]} # VAGRANT: #{vm.uuid} \(#{name}\)\" >>#{vm.hosts_path}')
|
80
|
+
vm.channel.expects(:sudo).with(param).returns(0)
|
81
|
+
end
|
82
|
+
vm.update
|
83
|
+
end
|
84
|
+
assert_local_host_entries_for @vms, @hosts_file
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require "mocha"
|
3
|
+
require 'vagrant/hostmaster'
|
4
|
+
require 'vagrant/hostmaster/test_helpers'
|
5
|
+
|
6
|
+
module Vagrant
|
7
|
+
module Hostmaster
|
8
|
+
class SimpleVMTest < Test::Unit::TestCase
|
9
|
+
include Vagrant::TestHelpers
|
10
|
+
include Vagrant::Hostmaster::TestHelpers
|
11
|
+
|
12
|
+
def setup
|
13
|
+
super
|
14
|
+
|
15
|
+
# TODO: test both windows and non-windows
|
16
|
+
Util::Platform.stubs(:windows?).returns(false)
|
17
|
+
@hosts_file = Tempfile.new('hosts')
|
18
|
+
hostmaster_box :default, 'hostmaster.dev', '123.45.67.89', '01234567-89ab-cdef-fedc-ba9876543210'
|
19
|
+
@vms = hostmaster_vms(hostmaster_env)
|
20
|
+
end
|
21
|
+
|
22
|
+
def teardown
|
23
|
+
@hosts_file.unlink
|
24
|
+
clean_paths
|
25
|
+
super
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_hosts_path
|
29
|
+
assert_equal '/etc/hosts', Vagrant::Hostmaster::VM.hosts_path
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_hosts_path_on_windows
|
33
|
+
Util::Platform.stubs(:windows?).returns(true)
|
34
|
+
ENV.stubs(:[]).with('SYSTEMROOT').returns('C:\Windows')
|
35
|
+
Vagrant::Hostmaster::VM.stubs(:expand_path).with('system32/drivers/etc/hosts', 'C:\Windows').returns('C:/Windows/system32/drivers/etc/hosts')
|
36
|
+
assert_equal 'C:/Windows/system32/drivers/etc/hosts', Vagrant::Hostmaster::VM.hosts_path
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_vm_hosts_path
|
40
|
+
assert_equal '/etc/hosts', @vms.first.hosts_path
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_vm_hosts_path_on_windows
|
44
|
+
Util::Platform.stubs(:windows?).returns(true)
|
45
|
+
assert_equal '/etc/hosts', @vms.first.hosts_path
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_add_local_hosts_entry
|
49
|
+
Vagrant::Hostmaster::VM.stubs(:hosts_path).returns @hosts_file.path
|
50
|
+
@vms.each { |vm| vm.add }
|
51
|
+
assert_local_host_entries_for @vms, @hosts_file
|
52
|
+
end
|
53
|
+
|
54
|
+
def test_list_local_hosts_entry
|
55
|
+
Vagrant::Hostmaster::VM.stubs(:hosts_path).returns @hosts_file.path
|
56
|
+
write_local_host_entries @hosts_file
|
57
|
+
hostmaster_boxes.each do |name,box|
|
58
|
+
output = Vagrant::Hostmaster::UI::Capture.capture { box[:vm].list }
|
59
|
+
assert_match /^\[local\]\s+#{box[:address]}\s+#{box[:host_name]}\s*# VAGRANT: #{box[:uuid]} \(#{name}\)$/, output
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_remove_local_hosts_entry
|
64
|
+
Vagrant::Hostmaster::VM.stubs(:hosts_path).returns @hosts_file.path
|
65
|
+
write_local_host_entries @hosts_file
|
66
|
+
@vms.each { |vm| vm.remove }
|
67
|
+
assert_no_local_host_entries_for @vms, @hosts_file
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_update
|
71
|
+
Vagrant::Hostmaster::VM.stubs(:hosts_path).returns @hosts_file.path
|
72
|
+
write_local_host_entries @hosts_file, :default => {:address => '10.10.10.10', :host_name => 'www.hostmaster.dev'}
|
73
|
+
@vms.each { |vm| vm.update }
|
74
|
+
assert_local_host_entries_for @vms, @hosts_file
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|