diff --git a/lib/facter/resolvers/augeas_resolver.rb b/lib/facter/resolvers/augeas_resolver.rb index 80321521bb..f1d45480d9 100644 --- a/lib/facter/resolvers/augeas_resolver.rb +++ b/lib/facter/resolvers/augeas_resolver.rb @@ -28,12 +28,12 @@ def read_augeas_from_cli def read_augeas_from_gem require 'augeas' - return ::Augeas.create { |aug| aug.get('/augeas/version') } if ::Augeas.respond_to?(:create) + return ::Augeas.create { |aug| aug.get('/augeas/version') } if ::Augeas.singleton_method(:create) # it is used for legacy augeas <= 0.5.0 - return ::Augeas.open { |aug| aug.get('/augeas/version') } if ::Augeas.respond_to?(:open) + ::Augeas.open { |aug| aug.get('/augeas/version') } rescue StandardError => e - log.debug('ruby-augeas not available') + log.debug('coudl not read version from ruby-augeas') log.log_exception(e) nil end diff --git a/spec/facter/resolvers/augeas_resolver_spec.rb b/spec/facter/resolvers/augeas_resolver_spec.rb index afc9fb74bf..2384059866 100644 --- a/spec/facter/resolvers/augeas_resolver_spec.rb +++ b/spec/facter/resolvers/augeas_resolver_spec.rb @@ -7,6 +7,7 @@ before do augeas.instance_variable_set(:@log, log_spy) + allow(Facter::Resolvers::Augeas).to receive(:require).with('augeas') end after do @@ -33,11 +34,7 @@ end context 'when augeas gem > 0.5.0 is installed' do - let(:augeas_mock) { instance_spy(Augeas) } - before do - allow(Augeas).to receive(:respond_to?).with(:create).and_return(true) - allow(Augeas).to receive(:respond_to?).with(:create, true).and_return(true) allow(Augeas).to receive(:create).and_return('1.12.0') end @@ -47,12 +44,8 @@ end context 'when augeas gem <= 0.5.0 is installed' do - let(:augeas_mock) { instance_spy(Augeas) } - before do - allow(Augeas).to receive(:respond_to?).with(:create).and_return(false) - allow(Augeas).to receive(:respond_to?).with(:open).and_return(true) - allow(Augeas).to receive(:respond_to?).with(:open, true).and_return(true) + allow(Augeas).to receive(:singleton_method).with(:create).and_return(false) allow(Augeas).to receive(:open).and_return('1.12.0') end @@ -75,7 +68,7 @@ it 'logs a debug message' do augeas.resolve(:augeas_version) - expect(log_spy).to have_received(:debug).with('ruby-augeas not available') + expect(log_spy).to have_received(:debug).with('coudl not read version from ruby-augeas') end it 'logs an exception' do