vagrant 0.7.0.beta → 0.7.0.beta2

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.
Files changed (86) hide show
  1. data/.gitignore +2 -0
  2. data/CHANGELOG.md +26 -0
  3. data/Gemfile +0 -8
  4. data/config/default.rb +1 -2
  5. data/contrib/README.md +12 -0
  6. data/contrib/emacs/vagrant.el +8 -0
  7. data/contrib/vim/vagrantfile.vim +9 -0
  8. data/lib/vagrant.rb +14 -18
  9. data/lib/vagrant/action.rb +12 -0
  10. data/lib/vagrant/action/box.rb +11 -0
  11. data/lib/vagrant/action/box/download.rb +0 -1
  12. data/lib/vagrant/action/env.rb +7 -0
  13. data/lib/vagrant/action/general.rb +8 -0
  14. data/lib/vagrant/action/vm.rb +30 -0
  15. data/lib/vagrant/action/vm/boot.rb +3 -2
  16. data/lib/vagrant/action/vm/check_box.rb +1 -0
  17. data/lib/vagrant/action/vm/network.rb +1 -1
  18. data/lib/vagrant/action/vm/nfs.rb +3 -1
  19. data/lib/vagrant/action/vm/provision.rb +14 -25
  20. data/lib/vagrant/action/vm/share_folders.rb +11 -4
  21. data/lib/vagrant/command.rb +25 -0
  22. data/lib/vagrant/config.rb +78 -128
  23. data/lib/vagrant/config/base.rb +17 -3
  24. data/lib/vagrant/config/ssh.rb +1 -0
  25. data/lib/vagrant/config/top.rb +61 -0
  26. data/lib/vagrant/config/vagrant.rb +1 -6
  27. data/lib/vagrant/config/vm.rb +34 -20
  28. data/lib/vagrant/config/vm/provisioner.rb +56 -0
  29. data/lib/vagrant/config/vm/sub_vm.rb +17 -0
  30. data/lib/vagrant/downloaders.rb +7 -0
  31. data/lib/vagrant/downloaders/file.rb +1 -0
  32. data/lib/vagrant/downloaders/http.rb +9 -0
  33. data/lib/vagrant/environment.rb +25 -13
  34. data/lib/vagrant/errors.rb +0 -15
  35. data/lib/vagrant/hosts.rb +7 -0
  36. data/lib/vagrant/provisioners.rb +8 -0
  37. data/lib/vagrant/provisioners/base.rb +19 -1
  38. data/lib/vagrant/provisioners/chef.rb +31 -52
  39. data/lib/vagrant/provisioners/chef_server.rb +34 -10
  40. data/lib/vagrant/provisioners/chef_solo.rb +31 -9
  41. data/lib/vagrant/provisioners/puppet.rb +70 -60
  42. data/lib/vagrant/provisioners/puppet_server.rb +57 -0
  43. data/lib/vagrant/ssh.rb +3 -72
  44. data/lib/vagrant/ssh/session.rb +81 -0
  45. data/lib/vagrant/systems.rb +9 -0
  46. data/lib/vagrant/systems/base.rb +16 -1
  47. data/lib/vagrant/systems/debian.rb +26 -0
  48. data/lib/vagrant/systems/gentoo.rb +27 -0
  49. data/lib/vagrant/systems/linux.rb +14 -56
  50. data/lib/vagrant/systems/linux/config.rb +21 -0
  51. data/lib/vagrant/systems/linux/error.rb +9 -0
  52. data/lib/vagrant/systems/redhat.rb +31 -0
  53. data/lib/vagrant/test_helpers.rb +1 -1
  54. data/lib/vagrant/version.rb +1 -1
  55. data/lib/vagrant/vm.rb +25 -5
  56. data/templates/chef_solo_solo.erb +11 -3
  57. data/templates/locales/en.yml +65 -25
  58. data/templates/{network_entry.erb → network_entry_debian.erb} +0 -0
  59. data/templates/network_entry_gentoo.erb +7 -0
  60. data/templates/network_entry_redhat.erb +8 -0
  61. data/test/vagrant/action/vm/check_box_test.rb +1 -0
  62. data/test/vagrant/action/vm/nfs_test.rb +7 -1
  63. data/test/vagrant/action/vm/provision_test.rb +24 -79
  64. data/test/vagrant/action/vm/share_folders_test.rb +6 -1
  65. data/test/vagrant/command/helpers_test.rb +2 -2
  66. data/test/vagrant/config/base_test.rb +0 -6
  67. data/test/vagrant/config/vagrant_test.rb +0 -8
  68. data/test/vagrant/config/vm/provisioner_test.rb +92 -0
  69. data/test/vagrant/config/vm_test.rb +8 -0
  70. data/test/vagrant/config_test.rb +49 -89
  71. data/test/vagrant/downloaders/file_test.rb +18 -4
  72. data/test/vagrant/environment_test.rb +36 -12
  73. data/test/vagrant/provisioners/base_test.rb +28 -1
  74. data/test/vagrant/provisioners/chef_server_test.rb +50 -41
  75. data/test/vagrant/provisioners/chef_solo_test.rb +39 -16
  76. data/test/vagrant/provisioners/chef_test.rb +11 -81
  77. data/test/vagrant/provisioners/puppet_server_test.rb +69 -0
  78. data/test/vagrant/provisioners/puppet_test.rb +69 -54
  79. data/test/vagrant/{ssh_session_test.rb → ssh/session_test.rb} +0 -0
  80. data/test/vagrant/ssh_test.rb +12 -1
  81. data/test/vagrant/systems/base_test.rb +18 -0
  82. data/test/vagrant/systems/linux_test.rb +2 -2
  83. data/test/vagrant/vm_test.rb +33 -5
  84. data/vagrant.gemspec +6 -5
  85. metadata +42 -16
  86. data/lib/vagrant/util/glob_loader.rb +0 -24
@@ -116,6 +116,7 @@ class ShareFoldersVMActionTest < Test::Unit::TestCase
116
116
  @folders = stub_shared_folders(<<-sf)
117
117
  config.vm.share_folder("foo", "fooguest", "foohost")
118
118
  config.vm.share_folder("bar", "barguest", "barhost")
119
+ config.vm.share_folder("foo_no_mount", nil, "foohost2")
119
120
  sf
120
121
  @ssh = mock("ssh")
121
122
  @vm.ssh.stubs(:execute).yields(@ssh)
@@ -125,7 +126,11 @@ class ShareFoldersVMActionTest < Test::Unit::TestCase
125
126
  should "mount all shared folders to the VM" do
126
127
  mount_seq = sequence("mount_seq")
127
128
  @folders.each do |name, data|
128
- @vm.system.expects(:mount_shared_folder).with(@ssh, name, data[:guestpath]).in_sequence(mount_seq)
129
+ if data[:guestpath]
130
+ @vm.system.expects(:mount_shared_folder).with(@ssh, name, data[:guestpath]).in_sequence(mount_seq)
131
+ else
132
+ @vm.system.expects(:mount_shared_folder).with(@ssh, name, anything).never
133
+ end
129
134
  end
130
135
 
131
136
  @instance.mount_shared_folders
@@ -52,7 +52,7 @@ class CommandHelpersTest < Test::Unit::TestCase
52
52
  should "return the VM if no name is specified" do
53
53
  instance = command([], @env)
54
54
  assert_nothing_raised {
55
- assert_equal @env.vms.values, instance.target_vms
55
+ assert_equal @env.vms.values.sort, instance.target_vms.sort
56
56
  }
57
57
  end
58
58
  end
@@ -64,7 +64,7 @@ class CommandHelpersTest < Test::Unit::TestCase
64
64
 
65
65
  should "return all the VMs if no name is specified" do
66
66
  instance = command([], @env)
67
- assert_equal @env.vms.values, instance.target_vms
67
+ assert_equal @env.vms.values.sort, instance.target_vms.sort
68
68
  end
69
69
 
70
70
  should "return only the specified VM if a name is given" do
@@ -42,12 +42,6 @@ class ConfigBaseTest < Test::Unit::TestCase
42
42
  assert_equal @json, @base.to_json
43
43
  end
44
44
 
45
- should "not include env in the JSON hash" do
46
- @base.env = "FOO"
47
- hash = @base.instance_variables_hash
48
- assert !hash.has_key?(:env)
49
- end
50
-
51
45
  should "not include top in the JSON hash" do
52
46
  @base.top = "FOO"
53
47
  hash = @base.instance_variables_hash
@@ -8,7 +8,6 @@ class ConfigVagrantTest < Test::Unit::TestCase
8
8
  context "validation" do
9
9
  setup do
10
10
  @config.dotfile_name = "foo"
11
- @config.home = "foo"
12
11
  @config.host = "foo"
13
12
 
14
13
  @errors = Vagrant::Config::ErrorRecorder.new
@@ -26,13 +25,6 @@ class ConfigVagrantTest < Test::Unit::TestCase
26
25
  assert !@errors.errors.empty?
27
26
  end
28
27
 
29
- should "be invalid with no home" do
30
- @config.home = nil
31
-
32
- @config.validate(@errors)
33
- assert !@errors.errors.empty?
34
- end
35
-
36
28
  should "be invalid with no host" do
37
29
  @config.host = nil
38
30
 
@@ -0,0 +1,92 @@
1
+ require "test_helper"
2
+
3
+ class ConfigVMProvisionerTest < Test::Unit::TestCase
4
+ setup do
5
+ @klass = Vagrant::Config::VMConfig::Provisioner
6
+ @top = Vagrant::Config::Top.new(nil)
7
+ end
8
+
9
+ context "initializing" do
10
+ should "expose the top instance that the provisioner belongs to" do
11
+ instance = @klass.new(@top, :chef_solo)
12
+ assert_equal @top, instance.top
13
+ end
14
+
15
+ should "expose the shortcut used" do
16
+ instance = @klass.new(@top, :chef_solo)
17
+ assert_equal :chef_solo, instance.shortcut
18
+ end
19
+
20
+ should "expose the provisioner class if its a valid shortcut" do
21
+ instance = @klass.new(@top, :chef_solo)
22
+ assert_equal Vagrant::Provisioners::ChefSolo, instance.provisioner
23
+ end
24
+
25
+ should "expose the provisioner class if its a valid class" do
26
+ instance = @klass.new(@top, Vagrant::Provisioners::ChefSolo)
27
+ assert_equal Vagrant::Provisioners::ChefSolo, instance.provisioner
28
+ end
29
+
30
+ should "have a nil provisioner class if invalid" do
31
+ instance = @klass.new(@top, :i_shall_never_exist)
32
+ assert_nil instance.provisioner
33
+ end
34
+
35
+ should "have a nil config instance if invalid" do
36
+ instance = @klass.new(@top, :i_shall_never_exist)
37
+ assert_nil instance.config
38
+ end
39
+
40
+ should "set the top of the config object to the given top" do
41
+ instance = @klass.new(@top, :chef_solo)
42
+ assert_equal @top, instance.config.top
43
+ end
44
+
45
+ should "configure the provisioner if valid" do
46
+ instance = @klass.new(@top, :chef_solo) do |chef|
47
+ chef.cookbooks_path = "foo"
48
+ end
49
+
50
+ assert_equal "foo", instance.config.cookbooks_path
51
+ end
52
+
53
+ should "configure the provisioner with a hash if valid" do
54
+ instance = @klass.new(@top, :chef_solo, :cookbooks_path => "foo")
55
+ assert_equal "foo", instance.config.cookbooks_path
56
+ end
57
+ end
58
+
59
+ context "validation" do
60
+ setup do
61
+ @errors = Vagrant::Config::ErrorRecorder.new
62
+ end
63
+
64
+ should "be invalid if provisioner is valid" do
65
+ instance = @klass.new(@top, :i_shall_never_exist)
66
+ instance.validate(@errors)
67
+ assert !@errors.errors.empty?
68
+ end
69
+
70
+ should "be invalid if provisioner doesn't inherit from provisioners base" do
71
+ klass = Class.new
72
+ instance = @klass.new(@top, klass)
73
+ instance.validate(@errors)
74
+ assert !@errors.errors.empty?
75
+ end
76
+
77
+ should "be valid with a valid provisioner" do
78
+ instance = @klass.new(@top, :chef_solo) do |chef|
79
+ chef.add_recipe "foo"
80
+ end
81
+
82
+ instance.validate(@errors)
83
+ assert @errors.errors.empty?
84
+ end
85
+
86
+ should "be invalid if a provisioner's config is invalid" do
87
+ instance = @klass.new(@top, :chef_solo)
88
+ instance.validate(@errors)
89
+ assert !@errors.errors.empty?
90
+ end
91
+ end
92
+ end
@@ -75,4 +75,12 @@ class ConfigVMTest < Test::Unit::TestCase
75
75
  assert_equal @username, @config.shared_folder_gid
76
76
  end
77
77
  end
78
+
79
+ context "deprecated config" do
80
+ should "raise an error for provisioner=" do
81
+ assert_raises(Vagrant::Errors::VagrantError) {
82
+ @config.provisioner = :chef_solo
83
+ }
84
+ end
85
+ end
78
86
  end
@@ -5,117 +5,79 @@ class ConfigTest < Test::Unit::TestCase
5
5
  @klass = Vagrant::Config
6
6
  end
7
7
 
8
- context "with an instance" do
9
- setup do
10
- @env = vagrant_env
11
- @instance = @klass.new(@env)
12
- end
8
+ context "with the class" do
9
+ should "allow access to the last proc" do
10
+ foo = mock("object")
11
+ foo.expects(:call).once
13
12
 
14
- should "initially have an empty queue" do
15
- assert @instance.queue.empty?
16
- end
13
+ @klass.run { |config| foo.call }
14
+ value = @klass.last_proc.first
15
+ assert value.is_a?(Proc)
16
+ value.call(nil)
17
17
 
18
- should "reset the config class on load, then execute" do
19
- seq = sequence("sequence")
20
- @klass.expects(:reset!).with(@env).in_sequence(seq)
21
- @klass.expects(:execute!).in_sequence(seq)
22
- @instance.load!
18
+ assert @klass.last_proc.nil?
23
19
  end
20
+ end
24
21
 
25
- should "run the queue in the order given" do
26
- @instance.queue << Proc.new { |config| config.vm.box = "foo" }
27
- @instance.queue << Proc.new { |config| config.vm.box = "bar" }
28
- result = @instance.load!
29
-
30
- assert_equal "bar", result.vm.box
22
+ context "with an instance" do
23
+ setup do
24
+ @instance = @klass.new
31
25
  end
32
26
 
33
- should "allow nested arrays" do
34
- queue = []
35
- queue << Proc.new { |config| config.vm.box = "foo" }
36
- queue << Proc.new { |config| config.vm.box = "bar" }
37
- @instance.queue << queue
38
- result = @instance.load!
27
+ should "load the config files in the given order" do
28
+ names = %w{alpha beta gamma}
39
29
 
40
- assert_equal "bar", result.vm.box
41
- end
30
+ @instance.load_order = [:alpha, :beta]
42
31
 
43
- should "load a file if it exists" do
44
- filename = "foo"
45
- File.expects(:exist?).with(filename).returns(true)
46
- @instance.expects(:load).with(filename).once
32
+ names.each do |name|
33
+ vagrantfile(vagrant_box(name), "config.vm.box = '#{name}'")
34
+ @instance.set(name.to_sym, vagrant_box(name).join("Vagrantfile"))
35
+ end
47
36
 
48
- @instance.queue << filename
49
- @instance.load!
37
+ config = @instance.load(nil)
38
+ assert_equal "beta", config.vm.box
50
39
  end
51
40
 
52
- should "not load a file if it doesn't exist" do
53
- filename = "foo"
54
- File.expects(:exist?).with(filename).returns(false)
55
- @instance.expects(:load).with(filename).never
41
+ should "load the config as procs" do
42
+ @instance.set(:proc, Proc.new { |config| config.vm.box = "proc" })
43
+ @instance.load_order = [:proc]
44
+ config = @instance.load(nil)
56
45
 
57
- @instance.queue << filename
58
- @instance.load!
46
+ assert_equal "proc", config.vm.box
59
47
  end
60
48
 
61
- should "raise an exception if there is a syntax error in a file" do
62
- @instance.queue << "foo"
63
- File.expects(:exist?).with("foo").returns(true)
64
- @instance.expects(:load).with("foo").raises(SyntaxError.new)
49
+ should "load an array of procs" do
50
+ @instance.set(:proc, [Proc.new { |config| config.vm.box = "proc" },
51
+ Proc.new { |config| config.vm.box = "proc2" }])
52
+ @instance.load_order = [:proc]
53
+ config = @instance.load(nil)
65
54
 
66
- assert_raises(Vagrant::Errors::VagrantfileSyntaxError) {
67
- @instance.load!
68
- }
55
+ assert_equal "proc2", config.vm.box
69
56
  end
70
- end
71
57
 
72
- context "resetting" do
73
- setup do
74
- @klass.reset!(vagrant_env)
75
- @klass::Top.any_instance.stubs(:validate!)
76
- @klass.run { |config| }
77
- @klass.execute!
58
+ should "not care if a file doesn't exist" do
59
+ @instance.load_order = [:foo]
60
+ assert_nothing_raised { @instance.set(:foo, "i/dont/exist") }
61
+ assert_nothing_raised { @instance.load(nil) }
78
62
  end
79
63
 
80
- should "return the same config object typically" do
81
- config = @klass.config
82
- assert config.equal?(@klass.config)
83
- end
64
+ should "not reload a file" do
65
+ foo_path = vagrant_box("foo").join("Vagrantfile")
84
66
 
85
- should "create a new object if cleared" do
86
- config = @klass.config
87
- @klass.reset!
88
- assert !config.equal?(@klass.config)
89
- end
67
+ vagrantfile(vagrant_box("foo"))
68
+ @instance.set(:foo, foo_path)
90
69
 
91
- should "empty the proc stack" do
92
- assert !@klass.proc_stack.empty?
93
- @klass.reset!
94
- assert @klass.proc_stack.empty?
70
+ # Nothing should be raised in this case because the file isn't reloaded
71
+ vagrantfile(vagrant_box("foo"), "^%&8318")
72
+ assert_nothing_raised { @instance.set(:foo, foo_path) }
95
73
  end
96
74
 
97
- should "reload the config object based on the given environment" do
98
- env = mock("env")
99
- @klass.expects(:config).with(env).once
100
- @klass.reset!(env)
101
- end
102
- end
103
-
104
- context "initializing" do
105
- setup do
106
- @klass.reset!(vagrant_env)
107
- end
108
-
109
- should "add the given block to the proc stack" do
110
- proc = Proc.new {}
111
- @klass.run(&proc)
112
- assert_equal [proc], @klass.proc_stack
113
- end
75
+ should "raise an exception if there is a syntax error in a file" do
76
+ vagrantfile(vagrant_box("foo"), "^%&8318")
114
77
 
115
- should "return the configuration on execute!" do
116
- @klass.run {}
117
- result = @klass.execute!
118
- assert result.is_a?(@klass::Top)
78
+ assert_raises(Vagrant::Errors::VagrantfileSyntaxError) {
79
+ @instance.set(:foo, vagrant_box("foo").join("Vagrantfile"))
80
+ }
119
81
  end
120
82
  end
121
83
 
@@ -149,7 +111,6 @@ class ConfigTest < Test::Unit::TestCase
149
111
  key = "key#{i}"
150
112
  klass = mock("klass#{i}")
151
113
  instance = mock("instance#{i}")
152
- instance.expects(:env=).with(env)
153
114
  instance.expects(:top=).with() do |top|
154
115
  assert top.is_a?(@klass::Top)
155
116
  true
@@ -165,7 +126,6 @@ class ConfigTest < Test::Unit::TestCase
165
126
  key = "my_foo_bar_key"
166
127
  klass = mock("klass")
167
128
  instance = mock("instance")
168
- instance.stubs(:env=)
169
129
  instance.stubs(:top=)
170
130
  klass.expects(:new).returns(instance)
171
131
  @klass::Top.configures(key, klass)
@@ -17,11 +17,25 @@ class FileDownloaderTest < Test::Unit::TestCase
17
17
  end
18
18
 
19
19
  context "downloading" do
20
+ setup do
21
+ clean_paths
22
+ end
23
+
20
24
  should "cp the file" do
21
- path = '/path'
22
- @tempfile.expects(:path).returns(path)
23
- FileUtils.expects(:cp).with(@uri, path)
24
- @downloader.download!(@uri, @tempfile)
25
+ uri = tmp_path.join("foo_source")
26
+ dest = tmp_path.join("foo_dest")
27
+
28
+ # Create the source file, then "download" it
29
+ File.open(uri, "w+") { |f| f.write("FOO") }
30
+ File.open(dest, "w+") do |dest_file|
31
+ @downloader.download!(uri, dest_file)
32
+ end
33
+
34
+ # Finally, verify the destination file was properly created
35
+ assert File.file?(dest)
36
+ File.open(dest) do |f|
37
+ assert_equal "FOO", f.read
38
+ end
25
39
  end
26
40
  end
27
41
 
@@ -4,15 +4,17 @@ require "pathname"
4
4
  class EnvironmentTest < Test::Unit::TestCase
5
5
  setup do
6
6
  @klass = Vagrant::Environment
7
+
8
+ clean_paths
7
9
  end
8
10
 
9
11
  context "class method check virtualbox version" do
10
12
  setup do
11
- VirtualBox.stubs(:version).returns("3.1.4")
13
+ VirtualBox.stubs(:version).returns("4.0.0")
12
14
  end
13
15
 
14
16
  should "not error and exit if everything is good" do
15
- VirtualBox.expects(:version).returns("3.2.4")
17
+ VirtualBox.expects(:version).returns("4.0.0")
16
18
  assert_nothing_raised { @klass.check_virtualbox! }
17
19
  end
18
20
 
@@ -21,17 +23,11 @@ class EnvironmentTest < Test::Unit::TestCase
21
23
  assert_raises(Vagrant::Errors::VirtualBoxNotDetected) { @klass.check_virtualbox! }
22
24
  end
23
25
 
24
- should "error and exit if VirtualBox is lower than version 3.2" do
25
- version = "3.1.12r1041"
26
+ should "error and exit if VirtualBox is lower than version 4.0" do
27
+ version = "3.2.12r1041"
26
28
  VirtualBox.expects(:version).returns(version)
27
29
  assert_raises(Vagrant::Errors::VirtualBoxInvalidVersion) { @klass.check_virtualbox! }
28
30
  end
29
-
30
- should "error and exit for OSE VirtualBox" do
31
- version = "3.2.6_OSE"
32
- VirtualBox.expects(:version).returns(version)
33
- assert_raises(Vagrant::Errors::VirtualBoxInvalidOSE) { @klass.check_virtualbox! }
34
- end
35
31
  end
36
32
 
37
33
  context "initialization" do
@@ -59,8 +55,21 @@ class EnvironmentTest < Test::Unit::TestCase
59
55
  end
60
56
 
61
57
  context "home path" do
58
+ setup do
59
+ @env = @klass.new
60
+ end
61
+
62
62
  should "return the home path if it loaded" do
63
- expected = Pathname.new(File.expand_path(@env.config.vagrant.home, @env.root_path))
63
+ ENV["VAGRANT_HOME"] = nil
64
+
65
+ expected = Pathname.new(File.expand_path(@klass::DEFAULT_HOME))
66
+ assert_equal expected, @env.home_path
67
+ end
68
+
69
+ should "return the home path set by the environmental variable" do
70
+ ENV["VAGRANT_HOME"] = "foo"
71
+
72
+ expected = Pathname.new(File.expand_path(ENV["VAGRANT_HOME"]))
64
73
  assert_equal expected, @env.home_path
65
74
  end
66
75
  end
@@ -391,7 +400,7 @@ class EnvironmentTest < Test::Unit::TestCase
391
400
  create_box_vagrantfile
392
401
  vagrantfile(@env.root_path, "config.vm.box = 'box'")
393
402
 
394
- assert_equal "box.box", @env.config.package.name
403
+ assert_equal "box.box", @env.primary_vm.env.config.package.name
395
404
  end
396
405
 
397
406
  should "load from home path if exists" do
@@ -425,6 +434,21 @@ class EnvironmentTest < Test::Unit::TestCase
425
434
  @env.load_config!
426
435
  assert @env.instance_variable_get(:@logger).nil?
427
436
  end
437
+
438
+ should "be able to reload config" do
439
+ vagrantfile(@env.root_path, "config.vm.box = 'box'")
440
+
441
+ # First load the config normally
442
+ @env.load_config!
443
+ assert_equal "box", @env.config.vm.box
444
+ assert_not_equal "set", @env.config.vm.base_mac
445
+
446
+ # Modify the Vagrantfile and reload it, then verify new results
447
+ # are available
448
+ vagrantfile(@env.root_path, "config.vm.base_mac = 'set'")
449
+ @env.reload_config!
450
+ assert_equal "set", @env.config.vm.base_mac
451
+ end
428
452
  end
429
453
 
430
454
  context "loading home directory" do