spec/ohai/plugins/linux/lsb_spec.rb in ohai-0.6.4 vs spec/ohai/plugins/linux/lsb_spec.rb in ohai-0.6.6.rc.0

- old
+ new

@@ -22,39 +22,91 @@ describe Ohai::System, "Linux lsb plugin" do before(:each) do @ohai = Ohai::System.new @ohai[:os] = "linux" @ohai.stub!(:require_plugin).and_return(true) - @mock_file = mock("/etc/lsb-release") - @mock_file.stub!(:each). - and_yield("DISTRIB_ID=Ubuntu"). - and_yield("DISTRIB_RELEASE=8.04"). - and_yield("DISTRIB_CODENAME=hardy"). - and_yield('DISTRIB_DESCRIPTION="Ubuntu 8.04"') - File.stub!(:open).with("/etc/lsb-release").and_return(@mock_file) + @ohai.extend(SimpleFromFile) end + + describe "on systems with /etc/lsb-release" do + before(:each) do + @mock_file = mock("/etc/lsb-release") + @mock_file.stub!(:each). + and_yield("DISTRIB_ID=Ubuntu"). + and_yield("DISTRIB_RELEASE=8.04"). + and_yield("DISTRIB_CODENAME=hardy"). + and_yield('DISTRIB_DESCRIPTION="Ubuntu 8.04"') + File.stub!(:open).with("/etc/lsb-release").and_return(@mock_file) + File.stub!(:exists?).with("/etc/lsb-release").and_return(true) + end + + it "should set lsb[:id]" do + @ohai._require_plugin("linux::lsb") + @ohai[:lsb][:id].should == "Ubuntu" + end - it "should set lsb[:id]" do - @ohai._require_plugin("linux::lsb") - @ohai[:lsb][:id].should == "Ubuntu" - end + it "should set lsb[:release]" do + @ohai._require_plugin("linux::lsb") + @ohai[:lsb][:release].should == "8.04" + end - it "should set lsb[:release]" do - @ohai._require_plugin("linux::lsb") - @ohai[:lsb][:release].should == "8.04" - end + it "should set lsb[:codename]" do + @ohai._require_plugin("linux::lsb") + @ohai[:lsb][:codename].should == "hardy" + end - it "should set lsb[:codename]" do - @ohai._require_plugin("linux::lsb") - @ohai[:lsb][:codename].should == "hardy" + it "should set lsb[:description]" do + @ohai._require_plugin("linux::lsb") + @ohai[:lsb][:description].should == "Ubuntu 8.04" + end end + + describe "on systems with /usr/bin/lsb_release" do + before(:each) do + File.stub!(:exists?).with("/etc/lsb-release").and_return(false) + File.stub!(:exists?).with("/usr/bin/lsb_release").and_return(true) + + @stdin = mock("STDIN", { :close => true }) + @pid = 10 + @stderr = mock("STDERR") + @stdout = mock("STDOUT") + @status = 0 + + @stdout.stub!(:each). + and_yield("LSB Version: :core-4.0-ia32:core-4.0-noarch"). + and_yield("Distributor ID: Fedora"). + and_yield("Description: Fedora release 14 (Laughlin)"). + and_yield("Release: 14"). + and_yield("Codename: Laughlin") + + @ohai.stub!(:popen4).with("lsb_release -a").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status) + + end + + it "should set lsb[:id]" do + @ohai._require_plugin("linux::lsb") + @ohai[:lsb][:id].should == "Fedora" + end - it "should set lsb[:description]" do - @ohai._require_plugin("linux::lsb") - @ohai[:lsb][:description].should == "\"Ubuntu 8.04\"" - end + it "should set lsb[:release]" do + @ohai._require_plugin("linux::lsb") + @ohai[:lsb][:release].should == "14" + end - it "should not set any lsb values if /etc/lsb-release cannot be read" do - File.stub!(:open).with("/etc/lsb-release").and_raise(IOError) + it "should set lsb[:codename]" do + @ohai._require_plugin("linux::lsb") + @ohai[:lsb][:codename].should == "Laughlin" + end + + it "should set lsb[:description]" do + @ohai._require_plugin("linux::lsb") + @ohai[:lsb][:description].should == "Fedora release 14 (Laughlin)" + end + + end + + it "should not set any lsb values if /etc/lsb-release or /usr/bin/lsb_release do not exist " do + File.stub!(:exists?).with("/etc/lsb-release").and_return(false) + File.stub!(:exists?).with("/usr/bin/lsb_release").and_return(false) @ohai.attribute?(:lsb).should be(false) end -end \ No newline at end of file +end