diff options
Diffstat (limited to 'spec/unit/mixin/shell_out_spec.rb')
-rw-r--r-- | spec/unit/mixin/shell_out_spec.rb | 102 |
1 files changed, 27 insertions, 75 deletions
diff --git a/spec/unit/mixin/shell_out_spec.rb b/spec/unit/mixin/shell_out_spec.rb index 35873e04..76e2e178 100644 --- a/spec/unit/mixin/shell_out_spec.rb +++ b/spec/unit/mixin/shell_out_spec.rb @@ -28,8 +28,11 @@ describe Ohai::Mixin::ShellOut, "shell_out" do let(:timeout) { 30 } let(:options) do + path_var = windows? ? "Path" : "PATH" + # this just replicates the behavior of default_paths in chef-utils - default_paths = [ Gem.bindir, RbConfig::CONFIG["bindir"] ].compact.uniq + split_path = instance.send(:__env_path).split(File::PATH_SEPARATOR) + default_paths = [ RbConfig::CONFIG["bindir"], Gem.bindir, split_path ].flatten.compact.uniq if windows? default_paths = default_paths.join(";") @@ -37,8 +40,6 @@ describe Ohai::Mixin::ShellOut, "shell_out" do default_paths = ( default_paths + [ "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin" ] ).compact.uniq.join(":") end - path_var = windows? ? "Path" : "PATH" - default_locale = ChefConfig::Config.guess_internal_locale { timeout: timeout, @@ -55,6 +56,9 @@ describe Ohai::Mixin::ShellOut, "shell_out" do class DummyPlugin include Ohai::Mixin::ShellOut + def transport_connection + nil + end end let(:instance) { DummyPlugin.new } @@ -73,64 +77,33 @@ describe Ohai::Mixin::ShellOut, "shell_out" do describe "when the command runs" do it "logs the command and exitstatus" do - expect(Mixlib::ShellOut) - .to receive(:new) - .with(cmd, options) - .and_return(shell_out) - - expect(shell_out) - .to receive(:run_command) - - expect(shell_out) - .to receive(:exitstatus) - .and_return(256) - + expect(Mixlib::ShellOut).to receive(:new).with(cmd, options).and_return(shell_out) + expect(shell_out).to receive(:run_command) + expect(shell_out).to receive(:exitstatus).and_return(256) expect(logger).to receive(:trace) .with("Plugin OSSparkleDream: ran 'sparkle-dream --version' and returned 256") - instance.shell_out(cmd) end end describe "when the command does not exist" do it "logs the command and error message" do - expect(Mixlib::ShellOut) - .to receive(:new) - .with(cmd, options) - .and_return(shell_out) - - expect(shell_out) - .to receive(:run_command) - .and_raise(Errno::ENOENT, "sparkle-dream") - - expect(logger) - .to receive(:trace) + expect(Mixlib::ShellOut).to receive(:new).with(cmd, options).and_return(shell_out) + expect(shell_out).to receive(:run_command).and_raise(Errno::ENOENT, "sparkle-dream") + expect(logger).to receive(:trace) .with("Plugin OSSparkleDream: ran 'sparkle-dream --version' and failed " \ "#<Errno::ENOENT: No such file or directory - sparkle-dream>") - - expect { instance.shell_out(cmd) } - .to raise_error(Ohai::Exceptions::Exec) + expect { instance.shell_out(cmd) }.to raise_error(Ohai::Exceptions::Exec) end end describe "when the command times out" do it "logs the command an timeout error message" do - expect(Mixlib::ShellOut) - .to receive(:new) - .with(cmd, options) - .and_return(shell_out) - - expect(shell_out) - .to receive(:run_command) - .and_raise(Mixlib::ShellOut::CommandTimeout) - - expect(logger) - .to receive(:trace) - .with("Plugin OSSparkleDream: ran 'sparkle-dream --version' and timed " \ - "out after 30 seconds") - - expect { instance.shell_out(cmd) } - .to raise_error(Ohai::Exceptions::Exec) + expect(Mixlib::ShellOut).to receive(:new).with(cmd, options).and_return(shell_out) + expect(shell_out).to receive(:run_command).and_raise(Mixlib::ShellOut::CommandTimeout) + expect(logger).to receive(:trace) + .with("Plugin OSSparkleDream: ran 'sparkle-dream --version' and timed out after 30 seconds") + expect { instance.shell_out(cmd) }.to raise_error(Ohai::Exceptions::Exec) end end @@ -138,42 +111,21 @@ describe Ohai::Mixin::ShellOut, "shell_out" do let(:timeout) { 10 } it "runs the command with the provided timeout" do - expect(Mixlib::ShellOut) - .to receive(:new) - .with(cmd, options) - .and_return(shell_out) - - expect(shell_out) - .to receive(:run_command) - - expect(shell_out) - .to receive(:exitstatus) - .and_return(256) - + expect(Mixlib::ShellOut).to receive(:new).with(cmd, options).and_return(shell_out) + expect(shell_out).to receive(:run_command) + expect(shell_out).to receive(:exitstatus).and_return(256) expect(logger).to receive(:trace) .with("Plugin OSSparkleDream: ran 'sparkle-dream --version' and returned 256") - instance.shell_out(cmd, timeout: 10) end describe "when the command times out" do it "logs the command an timeout error message" do - expect(Mixlib::ShellOut) - .to receive(:new) - .with(cmd, options) - .and_return(shell_out) - - expect(shell_out) - .to receive(:run_command) - .and_raise(Mixlib::ShellOut::CommandTimeout) - - expect(logger) - .to receive(:trace) - .with("Plugin OSSparkleDream: ran 'sparkle-dream --version' and timed " \ - "out after 10 seconds") - - expect { instance.shell_out(cmd, timeout: 10) } - .to raise_error(Ohai::Exceptions::Exec) + expect(Mixlib::ShellOut).to receive(:new).with(cmd, options).and_return(shell_out) + expect(shell_out).to receive(:run_command).and_raise(Mixlib::ShellOut::CommandTimeout) + expect(logger).to receive(:trace) + .with("Plugin OSSparkleDream: ran 'sparkle-dream --version' and timed out after 10 seconds") + expect { instance.shell_out(cmd, timeout: 10) }.to raise_error(Ohai::Exceptions::Exec) end end end |