spec/beaker/hypervisor/vmpooler_spec.rb in beaker-2.40.0 vs spec/beaker/hypervisor/vmpooler_spec.rb in beaker-2.41.0

- old
+ new

@@ -74,16 +74,38 @@ end end it 'raises an error when a host template is not found in returned json' do vmpooler = Beaker::Vmpooler.new( make_hosts, make_opts ) - host = vmpooler.instance_variable_get(:@hosts)[0][:template] allow( vmpooler ).to receive( :require ).and_return( true ) allow( vmpooler ).to receive( :sleep ).and_return( true ) - allow( vmpooler ).to receive(:get_host_info).and_return(nil) + allow( vmpooler ).to receive( :get_host_info ).and_return( nil ) - expect {vmpooler.provision}.to raise_error RuntimeError,"Vmpooler.provision - requested host #{host} not available" + expect { + vmpooler.provision + }.to raise_error( RuntimeError, + /Vmpooler\.provision - requested VM templates \[.*\,.*\,.*\] not available/ + ) + end + + it 'repeats asking only for failed hosts' do + vmpooler = Beaker::Vmpooler.new( make_hosts, make_opts ) + + allow( vmpooler ).to receive( :require ).and_return( true ) + allow( vmpooler ).to receive( :sleep ).and_return( true ) + allow( vmpooler ).to receive( :get_host_info ).with( + anything, "vm1_has_a_template" ).and_return( nil ) + allow( vmpooler ).to receive( :get_host_info ).with( + anything, "vm2_has_a_template" ).and_return( 'y' ) + allow( vmpooler ).to receive( :get_host_info ).with( + anything, "vm3_has_a_template" ).and_return( 'y' ) + + expect { + vmpooler.provision + }.to raise_error( RuntimeError, + /Vmpooler\.provision - requested VM templates \[[^\,]*\] not available/ + ) # should be only one item in the list, no commas end end describe "#cleanup" do