From c54122148656246df6628e9d1c428d97e2c9726f Mon Sep 17 00:00:00 2001 From: Dakota Schneider Date: Mon, 16 Jul 2018 11:42:53 -0700 Subject: [PATCH] (BKR-1481) Cleanup spec tests Spec tests don't need to replicate spec tests of core functionality. --- spec/beaker/hypervisor/vmpooler_spec.rb | 90 +++++++------------------ 1 file changed, 24 insertions(+), 66 deletions(-) diff --git a/spec/beaker/hypervisor/vmpooler_spec.rb b/spec/beaker/hypervisor/vmpooler_spec.rb index 0ed0b2e..a0495eb 100644 --- a/spec/beaker/hypervisor/vmpooler_spec.rb +++ b/spec/beaker/hypervisor/vmpooler_spec.rb @@ -168,81 +168,39 @@ module Beaker describe "#load_credentials" do - it 'continues without credentials when fog file is missing' do - expect( File ).to receive( :exist? ) { false } + it 'loads credentials from a fog file' do + credentials = { :vmpooler_token => "example_token" } + make_opts = { :dot_fog => '.fog' } + + expect_any_instance_of( Beaker::Vmpooler ).to receive( :get_fog_credentials ).and_return(credentials) vmpooler = Beaker::Vmpooler.new( make_hosts, make_opts ) + expect( vmpooler.credentials ).to be == credentials + end + + it 'continues without credentials when there are problems loading the fog file' do + logger = double( 'logger' ) + make_opts = { :logger => logger, :dot_fog => '.fog' } + + expect_any_instance_of( Beaker::Vmpooler ).to receive( :get_fog_credentials ).and_raise( ArgumentError, 'something went wrong' ) + expect( logger ).to receive( :warn ).with( /Invalid credentials file.*something went wrong.*Proceeding without authentication/m ) + + vmpooler = Beaker::Vmpooler.new( make_hosts, make_opts ) + expect( vmpooler.credentials ).to be == {} end - it 'continues without credentials when fog file is empty' do - expect( File ).to receive( :exist? ) { true } - expect( File ).to receive( :open ) { "" } + it 'continues without credentials when fog file has no vmpooler_token' do + logger = double( 'logger' ) + make_opts = { :logger => logger, :dot_fog => '.fog' } + + expect_any_instance_of( Beaker::Vmpooler ).to receive( :get_fog_credentials ).and_return( {} ) + expect( logger ).to receive( :warn ).with( /vmpooler_token not found in credentials file.*Proceeding without authentication/m ) vmpooler = Beaker::Vmpooler.new( make_hosts, make_opts ) + expect( vmpooler.credentials ).to be == {} end - - it 'continues without credentials when fog file contains no :default section' do - data = { :some => { :other => :data } } - - expect( File ).to receive( :exist? ) { true } - expect( YAML ).to receive( :load_file ) { data } - - vmpooler = Beaker::Vmpooler.new( make_hosts, make_opts ) - expect( vmpooler.credentials ).to be == { } - end - - it 'continues without credentials when fog file :default section has no :vmpooler_token' do - data = { :default => { :something_else => "TOKEN" } } - - expect( File ).to receive( :exist? ) { true } - expect( YAML ).to receive( :load_file ) { data } - - vmpooler = Beaker::Vmpooler.new( make_hosts, make_opts ) - expect( vmpooler.credentials ).to be == { } - end - - it 'continues without credentials when there are formatting errors in the fog file' do - data = { "'default'" => { :vmpooler_token => "b2wl8prqe6ddoii70md" } } - - expect( File ).to receive( :exist? ) { true } - expect( YAML ).to receive( :load_file ) { data } - - logger = double( 'logger' ) - - expect( logger ).to receive( :warn ).with( /is missing the required section: `default`/ ) - make_opts = { :logger => logger } - - vmpooler = Beaker::Vmpooler.new( make_hosts, make_opts ) - expect( vmpooler.credentials ).to be == { } - end - - it 'continues without credentials when there are syntax errors in the fog file' do - data = ";default;\n :vmpooler_token: z2wl8prqe0ddoii707d" - - expect( File ).to receive( :exist? ) { true } - allow( File ).to receive( :open ).and_yield( StringIO.new( data ) ) - - logger = double( 'logger' ) - - expect( logger ).to receive( :warn ).with( /Psych::SyntaxError/ ) - make_opts = { :logger => logger } - - vmpooler = Beaker::Vmpooler.new( make_hosts, make_opts ) - - expect( vmpooler.credentials ).to be == { } - end - - it 'stores vmpooler token when found in fog file' do - data = { :default => { :vmpooler_token => "TOKEN" } } - - expect( File ).to receive( :exist? ) { true } - expect( YAML ).to receive( :load_file ) { data } - - vmpooler = Beaker::Vmpooler.new( make_hosts, make_opts ) - expect( vmpooler.credentials ).to be == { :vmpooler_token => "TOKEN" } - end end end end