beaker-vagrant 0.6.7 → 0.7.0

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.
@@ -6,56 +6,53 @@ describe Beaker::VagrantLibvirt do
6
6
  'libvirt' => { 'uri' => 'qemu+ssh://root@host/system'},
7
7
  'vagrant_cpus' => 2,
8
8
  }) }
9
- let( :vagrant ) { Beaker::VagrantLibvirt.new( @hosts, options ) }
10
-
11
- before :each do
12
- @hosts = make_hosts()
9
+ let( :vagrant ) { described_class.new( hosts, options ) }
10
+ let( :hosts ) do
11
+ make_hosts().each do |host|
12
+ host.delete('ip')
13
+ end
13
14
  end
14
15
 
15
16
  it "uses the vagrant_libvirt provider for provisioning" do
16
- @hosts.each do |host|
17
+ hosts.each do |host|
17
18
  host_prev_name = host['user']
18
19
  expect( vagrant ).to receive( :set_ssh_config ).with( host, 'vagrant' ).once
19
20
  expect( vagrant ).to receive( :copy_ssh_to_root ).with( host, options ).once
20
21
  expect( vagrant ).to receive( :set_ssh_config ).with( host, host_prev_name ).once
21
22
  end
22
- expect( vagrant ).to receive( :hack_etc_hosts ).with( @hosts, options ).once
23
- FakeFS.activate!
23
+ expect( vagrant ).to receive( :hack_etc_hosts ).with( hosts, options ).once
24
24
  expect( vagrant ).to receive( :vagrant_cmd ).with( "up --provider libvirt" ).once
25
- vagrant.provision
25
+ FakeFS do
26
+ vagrant.provision
27
+ end
26
28
  end
27
29
 
28
30
  context 'Correct vagrant configuration' do
29
- before(:each) do
30
- FakeFS.activate!
31
- path = vagrant.instance_variable_get( :@vagrant_path )
31
+ subject do
32
+ FakeFS do
33
+ vagrant.make_vfile( hosts, options )
34
+ File.read(vagrant.instance_variable_get(:@vagrant_file))
35
+ end
36
+ end
32
37
 
33
- vagrant.make_vfile( @hosts, options )
34
- @vagrantfile = File.read( File.expand_path( File.join( path, "Vagrantfile")))
38
+ it 'has a provider section' do
39
+ is_expected.to include( %Q{ v.vm.provider :libvirt do |node|})
35
40
  end
36
41
 
37
- it "can make a Vagranfile for a set of hosts" do
38
- expect( @vagrantfile ).to include( %Q{ v.vm.provider :libvirt do |node|})
42
+ it "has no private network" do
43
+ is_expected.not_to include('v.vm.network :private_network')
39
44
  end
40
45
 
41
46
  it "can specify the memory as an integer" do
42
- expect( @vagrantfile.split("\n").map(&:strip) )
43
- .to include('node.memory = 1024')
47
+ is_expected.to include('node.memory = 1024')
44
48
  end
45
49
 
46
50
  it "can specify the number of cpus" do
47
- expect( @vagrantfile.split("\n").map(&:strip) )
48
- .to include("node.cpus = 2")
51
+ is_expected.to include("node.cpus = 2")
49
52
  end
50
53
 
51
54
  it "can specify any libvirt option" do
52
- expect( @vagrantfile.split("\n").map(&:strip) )
53
- .to include("node.uri = 'qemu+ssh://root@host/system'")
54
- end
55
-
56
- it "has a mac address in the proper format" do
57
- expect( @vagrantfile.split("\n").map(&:strip) )
58
- .to include(/:mac => "08:00:27:\h{2}:\h{2}:\h{2}"/)
55
+ is_expected.to include("node.uri = 'qemu+ssh://root@host/system'")
59
56
  end
60
57
  end
61
58
  end
@@ -2,43 +2,40 @@ require 'spec_helper'
2
2
 
3
3
  describe Beaker::VagrantParallels do
4
4
  let( :options ) { make_opts.merge({ :hosts_file => 'sample.cfg', 'logger' => double().as_null_object }) }
5
- let( :vagrant ) { Beaker::VagrantParallels.new( @hosts, options ) }
6
-
7
- before :each do
8
- @hosts = make_hosts()
9
- end
5
+ let( :vagrant ) { Beaker::VagrantParallels.new( hosts, options ) }
6
+ let( :hosts ) { make_hosts }
10
7
 
11
8
  it "uses the parallels provider for provisioning" do
12
- @hosts.each do |host|
9
+ hosts.each do |host|
13
10
  host_prev_name = host['user']
14
11
  expect( vagrant ).to receive( :set_ssh_config ).with( host, 'vagrant' ).once
15
12
  expect( vagrant ).to receive( :copy_ssh_to_root ).with( host, options ).once
16
13
  expect( vagrant ).to receive( :set_ssh_config ).with( host, host_prev_name ).once
17
14
  end
18
- expect( vagrant ).to receive( :hack_etc_hosts ).with( @hosts, options ).once
15
+ expect( vagrant ).to receive( :hack_etc_hosts ).with( hosts, options ).once
19
16
  expect( vagrant ).to receive( :vagrant_cmd ).with( "up --provider parallels" ).once
20
17
  vagrant.provision
21
18
  end
22
19
 
23
- it "can make a Vagranfile for a set of hosts" do
24
- path = vagrant.instance_variable_get( :@vagrant_path )
25
- allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
26
-
27
- vagrant.make_vfile( @hosts )
20
+ context 'Correct vagrant configuration' do
21
+ subject do
22
+ FakeFS do
23
+ vagrant.make_vfile( hosts, options )
24
+ File.read(vagrant.instance_variable_get(:@vagrant_file))
25
+ end
26
+ end
28
27
 
29
- vagrantfile = File.read( File.expand_path( File.join( path, 'Vagrantfile' )))
30
- expect( vagrantfile ).to include( %Q{ v.vm.provider :parallels do |prl|\n prl.optimize_power_consumption = false\n prl.memory = '1024'\n end})
28
+ it "can make a Vagrantfile for a set of hosts" do
29
+ is_expected.to include( %Q{ v.vm.provider :parallels do |prl|\n prl.optimize_power_consumption = false\n prl.memory = '1024'\n end})
30
+ end
31
31
  end
32
32
 
33
- it "can disable the auto-update functionality of the Parallels Guest Tools" do
34
- options.merge!({ :prl_update_guest_tools => 'disable' })
35
-
36
- vfile_section = vagrant.class.provider_vfile_section( @hosts.first, options )
37
-
38
- match = vfile_section.match(/prl.update_guest_tools = false/)
39
-
40
- expect( match ).to_not be nil
33
+ context 'disabled guest tools' do
34
+ let(:options) { super().merge({ :prl_update_guest_tools => 'disable' }) }
35
+ subject { vagrant.class.provider_vfile_section( hosts.first, options ) }
41
36
 
37
+ it "can disable the auto-update functionality of the Parallels Guest Tools" do
38
+ is_expected.to match(/prl.update_guest_tools = false/)
39
+ end
42
40
  end
43
-
44
41
  end
@@ -30,7 +30,6 @@ module Beaker
30
30
  end
31
31
 
32
32
  it "stores the vagrant file in $WORKINGDIR/.vagrant/beaker_vagrant_files/beaker_sample.cfg" do
33
- allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
34
33
  path = vagrant.instance_variable_get( :@vagrant_path )
35
34
 
36
35
  expect( path ).to be === File.join(Dir.pwd, '.vagrant', 'beaker_vagrant_files', 'beaker_sample.cfg')
@@ -39,7 +38,6 @@ module Beaker
39
38
 
40
39
  it "can make a Vagrantfile for a set of hosts" do
41
40
  path = vagrant.instance_variable_get( :@vagrant_path )
42
- allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
43
41
 
44
42
  vagrant.make_vfile( @hosts )
45
43
 
@@ -53,7 +51,7 @@ Vagrant.configure("2") do |c|
53
51
  v.vm.box = 'vm2vm1_of_my_box'
54
52
  v.vm.box_url = 'http://address.for.my.box.vm1'
55
53
  v.vm.box_check_update = 'true'
56
- v.vm.network :private_network, ip: "ip.address.for.vm1", :netmask => "255.255.0.0", :mac => "0123456789"
54
+ v.vm.network :private_network, ip: "ip.address.for.vm1", :netmask => "255.255.0.0"
57
55
  v.vm.synced_folder './', '/temp', create: true
58
56
  v.vm.synced_folder '../', '/tmp', create: true
59
57
  v.vm.network :forwarded_port, guest: 80, host: 10080
@@ -68,7 +66,7 @@ Vagrant.configure("2") do |c|
68
66
  v.vm.box = 'vm2vm2_of_my_box'
69
67
  v.vm.box_url = 'http://address.for.my.box.vm2'
70
68
  v.vm.box_check_update = 'true'
71
- v.vm.network :private_network, ip: "ip.address.for.vm2", :netmask => "255.255.0.0", :mac => "0123456789"
69
+ v.vm.network :private_network, ip: "ip.address.for.vm2", :netmask => "255.255.0.0"
72
70
  v.vm.synced_folder './', '/temp', create: true
73
71
  v.vm.synced_folder '../', '/tmp', create: true
74
72
  v.vm.network :forwarded_port, guest: 80, host: 10080
@@ -83,7 +81,7 @@ Vagrant.configure("2") do |c|
83
81
  v.vm.box = 'vm2vm3_of_my_box'
84
82
  v.vm.box_url = 'http://address.for.my.box.vm3'
85
83
  v.vm.box_check_update = 'true'
86
- v.vm.network :private_network, ip: "ip.address.for.vm3", :netmask => "255.255.0.0", :mac => "0123456789"
84
+ v.vm.network :private_network, ip: "ip.address.for.vm3", :netmask => "255.255.0.0"
87
85
  v.vm.synced_folder './', '/temp', create: true
88
86
  v.vm.synced_folder '../', '/tmp', create: true
89
87
  v.vm.network :forwarded_port, guest: 80, host: 10080
@@ -99,7 +97,6 @@ EOF
99
97
 
100
98
  it "can make a Vagrantfile with ssh agent forwarding enabled" do
101
99
  path = vagrant.instance_variable_get( :@vagrant_path )
102
- allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
103
100
 
104
101
  hosts = make_hosts({},1)
105
102
  vagrant.make_vfile( hosts, options )
@@ -110,7 +107,6 @@ EOF
110
107
 
111
108
  it "can replace underscores in host.name with hypens" do
112
109
  path = vagrant.instance_variable_get( :@vagrant_path )
113
- allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
114
110
 
115
111
  host = make_host( 'name-with_underscore', {} )
116
112
  vagrant.make_vfile( [host,], options )
@@ -122,7 +118,6 @@ EOF
122
118
 
123
119
  it "can make a Vagrantfile with synced_folder disabled" do
124
120
  path = vagrant.instance_variable_get( :@vagrant_path )
125
- allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
126
121
 
127
122
  hosts = make_hosts({:synced_folder => 'disabled'},1)
128
123
  vagrant.make_vfile( hosts, options )
@@ -131,16 +126,6 @@ EOF
131
126
  expect( vagrantfile ).to match(/v.vm.synced_folder .* disabled: true/)
132
127
  end
133
128
 
134
- it "can make a Vagrantfile with network mac autogenerated" do
135
- path = vagrant.instance_variable_get( :@vagrant_path )
136
-
137
- hosts = make_hosts({},1)
138
- vagrant.make_vfile( hosts, options )
139
-
140
- vagrantfile = File.read( File.expand_path( File.join( path, "Vagrantfile")))
141
- expect( vagrantfile ).to match(/v.vm.network :private_network, ip: "ip.address.for.vm1", :netmask => "255.255.0.0", :mac => ".+/)
142
- end
143
-
144
129
  it "can make a Vagrantfile with network mac specified" do
145
130
  path = vagrant.instance_variable_get( :@vagrant_path )
146
131
 
@@ -151,16 +136,6 @@ EOF
151
136
  expect( vagrantfile ).to match(/v.vm.network :private_network, ip: "ip.address.for.vm1", :netmask => "255.255.0.0", :mac => "b6:33:ae:19:48:f9/)
152
137
  end
153
138
 
154
- it "can make a Vagrantfile with network mac disabled" do
155
- path = vagrant.instance_variable_get( :@vagrant_path )
156
-
157
- hosts = make_hosts({:network_mac => 'false'},1)
158
- vagrant.make_vfile( hosts, options )
159
-
160
- vagrantfile = File.read( File.expand_path( File.join( path, "Vagrantfile")))
161
- expect( vagrantfile ).to match(/v.vm.network :private_network, ip: "ip.address.for.vm1", :netmask => "255.255.0.0"/)
162
- end
163
-
164
139
  it "can make a Vagrantfile with improper keys for synced folders" do
165
140
  path = vagrant.instance_variable_get( :@vagrant_path )
166
141
 
@@ -182,7 +157,6 @@ EOF
182
157
 
183
158
  it "can make a Vagrantfile with optional shell provisioner" do
184
159
  path = vagrant.instance_variable_get( :@vagrant_path )
185
- allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
186
160
 
187
161
  shell_path = '/path/to/shell/script'
188
162
  hosts = make_hosts({
@@ -198,7 +172,6 @@ EOF
198
172
 
199
173
  it "can make a Vagrantfile with optional shell provisioner with args" do
200
174
  path = vagrant.instance_variable_get( :@vagrant_path )
201
- allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
202
175
 
203
176
  shell_path = '/path/to/shell/script.sh'
204
177
  shell_args = 'arg1 arg2'
@@ -216,7 +189,6 @@ EOF
216
189
 
217
190
  it "raises an error if path is not set on shell_provisioner" do
218
191
  path = vagrant.instance_variable_get( :@vagrant_path )
219
- allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
220
192
 
221
193
  hosts = make_hosts({:shell_provisioner => {}}, 1)
222
194
  expect{ vagrant.make_vfile( hosts, options ) }.to raise_error RuntimeError, /No path defined for shell_provisioner or path empty/
@@ -224,7 +196,6 @@ EOF
224
196
 
225
197
  it "raises an error if path is EMPTY on shell_provisioner" do
226
198
  path = vagrant.instance_variable_get( :@vagrant_path )
227
- allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
228
199
 
229
200
  empty_shell_path = ''
230
201
  hosts = make_hosts({
@@ -238,7 +209,6 @@ EOF
238
209
  context "when generating a windows config" do
239
210
  before do
240
211
  path = vagrant.instance_variable_get( :@vagrant_path )
241
- allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
242
212
  @hosts[0][:platform] = 'windows'
243
213
 
244
214
  vagrant.make_vfile( @hosts )
@@ -270,7 +240,6 @@ EOF
270
240
  context 'when generating a freebsd config' do
271
241
  before do
272
242
  path = vagrant.instance_variable_get( :@vagrant_path )
273
- allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
274
243
  @hosts[0][:platform] = 'freebsd'
275
244
 
276
245
  vagrant.make_vfile( @hosts )
@@ -285,15 +254,10 @@ EOF
285
254
  it 'has the proper guest setting' do
286
255
  expect( @generated_file ).to match /v.vm.guest = :freebsd\n/
287
256
  end
288
-
289
- it 'sets the vm.base_mac setting' do
290
- expect( @generated_file ).to match /v.vm.base_mac = '0123456789'\n/
291
- end
292
257
  end
293
258
 
294
259
  it "uses the memsize defined per vagrant host" do
295
260
  path = vagrant.instance_variable_get( :@vagrant_path )
296
- allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
297
261
 
298
262
  vagrant.make_vfile( @hosts, {'vagrant_memsize' => 'hello!'} )
299
263
 
@@ -307,7 +271,6 @@ EOF
307
271
 
308
272
  it "uses the cpus defined per vagrant host" do
309
273
  path = vagrant.instance_variable_get( :@vagrant_path )
310
- allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
311
274
 
312
275
  vagrant.make_vfile( @hosts, {'vagrant_cpus' => 'goodbye!'} )
313
276
 
@@ -322,7 +285,6 @@ EOF
322
285
  context "port forwarding rules" do
323
286
  it "supports all Vagrant parameters" do
324
287
  path = vagrant.instance_variable_get( :@vagrant_path )
325
- allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
326
288
 
327
289
  hosts = make_hosts(
328
290
  {
@@ -344,7 +306,6 @@ EOF
344
306
 
345
307
  it "supports supports from_ip" do
346
308
  path = vagrant.instance_variable_get( :@vagrant_path )
347
- allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
348
309
 
349
310
  hosts = make_hosts(
350
311
  {
@@ -364,7 +325,6 @@ EOF
364
325
 
365
326
  it "supports all to_ip" do
366
327
  path = vagrant.instance_variable_get( :@vagrant_path )
367
- allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
368
328
 
369
329
  hosts = make_hosts(
370
330
  {
@@ -384,7 +344,6 @@ EOF
384
344
 
385
345
  it "supports all protocol" do
386
346
  path = vagrant.instance_variable_get( :@vagrant_path )
387
- allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
388
347
 
389
348
  hosts = make_hosts(
390
349
  {
@@ -451,57 +410,57 @@ EOF
451
410
  end
452
411
 
453
412
  describe "set_ssh_config" do
454
- let( :out ) { double( 'stdout' ) }
413
+ let( :out ) do
414
+ <<-CONFIG
415
+ Host #{name}
416
+ HostName 127.0.0.1
417
+ User vagrant
418
+ Port 2222
419
+ UserKnownHostsFile /dev/null
420
+ StrictHostKeyChecking no
421
+ PasswordAuthentication no
422
+ IdentityFile /home/root/.vagrant.d/insecure_private_key
423
+ IdentitiesOnly yes
424
+ CONFIG
425
+ end
455
426
  let( :host ) { @hosts[0] }
456
427
  let( :name ) { host.name }
457
- let( :file ) { double( 'file' ) }
428
+ let( :override_options ) { {} }
458
429
 
459
430
  before :each do
460
- allow( Dir ).to receive( :chdir ).and_yield()
461
- wait_thr = OpenStruct.new
462
- state = double( 'state' )
463
- allow( state ).to receive( :success? ).and_return( true )
464
- wait_thr.value = state
465
-
466
- allow( Open3 ).to receive( :popen3 ).with( {"RUBYLIB"=>"", "RUBYOPT"=>""}, 'vagrant', 'ssh-config', name ).and_return( [ "", out, "", wait_thr ])
431
+ # FakeFS is just broken with Tempfile
432
+ FakeFS.deactivate!
433
+ Dir.mktmpdir do |dir|
434
+ vagrant.instance_variable_get(:@options).merge!(override_options)
435
+ vagrant.instance_variable_set(:@vagrant_path, dir)
436
+ state = double( 'state' )
437
+ allow( state ).to receive( :success? ).and_return( true )
438
+ allow( Open3 ).to receive( :capture3 ).with( {"RUBYLIB"=>"", "RUBYOPT"=>""}, 'vagrant', 'ssh-config', name ).and_return( [ out, "", state ])
467
439
 
468
- allow( file ).to receive( :path ).and_return( '/path/sshconfig' )
469
- allow( file ).to receive( :rewind ).and_return( true )
440
+ vagrant.set_ssh_config( host, 'root' )
441
+ end
442
+ end
470
443
 
471
- allow( out ).to receive( :read ).and_return("Host #{name}
472
- HostName 127.0.0.1
473
- User vagrant
474
- Port 2222
475
- UserKnownHostsFile /dev/null
476
- StrictHostKeyChecking no
477
- PasswordAuthentication no
478
- IdentityFile /home/root/.vagrant.d/insecure_private_key
479
- IdentitiesOnly yes")
444
+ it 'sets the user to root' do
445
+ expect(host['user']).to be === 'root'
480
446
  end
481
447
 
482
- it "can generate a ssh-config file" do
483
- expect( Tempfile ).to receive( :new ).with( "#{host.name}").and_return( file )
484
- expect( file ).to receive( :write ).with("Host ip.address.for.#{name}\n HostName 127.0.0.1\n User root\n Port 2222\n UserKnownHostsFile /dev/null\n StrictHostKeyChecking no\n PasswordAuthentication no\n IdentityFile /home/root/.vagrant.d/insecure_private_key\n IdentitiesOnly no")
448
+ it 'sets the ssh user to root' do
449
+ expect(host['ssh']['user']).to be === 'root'
450
+ end
485
451
 
486
- vagrant.set_ssh_config( host, 'root' )
487
- expect( host[:vagrant_ssh_config] ).to be === '/path/sshconfig'
488
- expect( host['ssh'][:config]).to be === false
489
- expect( host['user']).to be === 'root'
452
+ # This is because forward_ssh_agent is true by default
453
+ it 'sets IdentitiesOnly to no' do
454
+ expect(host['ssh'][:keys_only]).to be === false
490
455
  end
491
456
 
492
457
  context "when :forward_ssh_agent is false" do
493
- it "should not change IdentitiesOnly to no" do
494
- options = vagrant.instance_variable_get( :@options )
495
- options['forward_ssh_agent'] = false
496
- options = vagrant.instance_variable_set( :@options, options )
497
-
498
- expect( Tempfile ).to receive( :new ).with( "#{host.name}").and_return( file )
499
- expect( file ).to receive( :write ).with("Host ip.address.for.#{name}\n HostName 127.0.0.1\n User root\n Port 2222\n UserKnownHostsFile /dev/null\n StrictHostKeyChecking no\n PasswordAuthentication no\n IdentityFile /home/root/.vagrant.d/insecure_private_key\n IdentitiesOnly yes")
458
+ let(:override_options) do
459
+ {forward_ssh_agent: false}
460
+ end
500
461
 
501
- vagrant.set_ssh_config( host, 'root' )
502
- expect( host[:vagrant_ssh_config] ).to be === '/path/sshconfig'
503
- expect( host['ssh'][:config]).to be === false
504
- expect( host['user']).to be === 'root'
462
+ it "should keep IdentitiesOnly to yes" do
463
+ expect( host['ssh'][:keys_only]).to be === true
505
464
  end
506
465
  end
507
466
  end
@@ -515,17 +474,6 @@ EOF
515
474
  end
516
475
  end
517
476
 
518
- it 'calls #get_ip_from_vagrant_file' do
519
- vagrant.make_vfile(@hosts)
520
-
521
- @hosts.each do |host|
522
- allow(vagrant).to receive(:set_ssh_config).with(host, anything)
523
- expect(vagrant).to receive(:get_ip_from_vagrant_file).with(host.name)
524
- end
525
-
526
- vagrant.configure
527
- end
528
-
529
477
  it 'calls #set_all_ssh_config' do
530
478
  vagrant.make_vfile(@hosts)
531
479
  expect(vagrant).to receive(:set_all_ssh_config)
@@ -569,31 +517,6 @@ EOF
569
517
  end
570
518
  end
571
519
 
572
- describe "get_ip_from_vagrant_file" do
573
- before :each do
574
- allow( vagrant ).to receive( :randmac ).and_return( "0123456789" )
575
- vagrant.make_vfile( @hosts )
576
- end
577
-
578
- it "can find the correct ip for the provided hostname" do
579
- @hosts.each do |host|
580
- expect( vagrant.get_ip_from_vagrant_file(host.name) ).to be === host[:ip]
581
- end
582
-
583
- end
584
-
585
- it "returns nil if it is unable to find an ip" do
586
- expect( vagrant.get_ip_from_vagrant_file("unknown") ).to be_nil
587
- end
588
-
589
- it "raises an error if no Vagrantfile is present" do
590
- File.delete( vagrant.instance_variable_get( :@vagrant_file ) )
591
- @hosts.each do |host|
592
- expect{ vagrant.get_ip_from_vagrant_file(host.name) }.to raise_error RuntimeError, /No vagrant file found/
593
- end
594
- end
595
- end
596
-
597
520
  describe "provisioning and cleanup" do
598
521
 
599
522
  before :each do