spec/unit/plugins/linux/lsb_spec.rb in ohai-8.15.1 vs spec/unit/plugins/linux/lsb_spec.rb in ohai-8.16.0

- old
+ new

@@ -1,147 +1,147 @@ -# -# Author:: Adam Jacob (<adam@chef.io>) -# Copyright:: Copyright (c) 2008-2016 Chef Software, Inc. -# License:: Apache License, Version 2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -require File.expand_path(File.dirname(__FILE__) + "/../../../spec_helper.rb") - -# We do not alter case for lsb attributes and consume them as provided - -describe Ohai::System, "Linux lsb plugin" do - before(:each) do - @plugin = get_plugin("linux/lsb") - allow(@plugin).to receive(:collect_os).and_return(:linux) - end - - describe "on systems with /etc/lsb-release" do - before(:each) do - @double_file = double("/etc/lsb-release") - allow(@double_file).to receive(:each). - and_yield("DISTRIB_ID=Ubuntu"). - and_yield("DISTRIB_RELEASE=8.04"). - and_yield("DISTRIB_CODENAME=hardy"). - and_yield('DISTRIB_DESCRIPTION="Ubuntu 8.04"') - allow(File).to receive(:open).with("/etc/lsb-release").and_return(@double_file) - allow(File).to receive(:exists?).with("/etc/lsb-release").and_return(true) - end - - it "should set lsb[:id]" do - @plugin.run - expect(@plugin[:lsb][:id]).to eq("Ubuntu") - end - - it "should set lsb[:release]" do - @plugin.run - expect(@plugin[:lsb][:release]).to eq("8.04") - end - - it "should set lsb[:codename]" do - @plugin.run - expect(@plugin[:lsb][:codename]).to eq("hardy") - end - - it "should set lsb[:description]" do - @plugin.run - expect(@plugin[:lsb][:description]).to eq("Ubuntu 8.04") - end - end - - describe "on systems with /usr/bin/lsb_release" do - before(:each) do - allow(File).to receive(:exists?).with("/etc/lsb-release").and_return(false) - allow(File).to receive(:exists?).with("/usr/bin/lsb_release").and_return(true) - - @stdin = double("STDIN", { :close => true }) - @pid = 10 - @stderr = double("STDERR") - @stdout = double("STDOUT") - @status = 0 - - end - - describe "on Centos 5.4 correctly" do - before(:each) do - @stdout = <<-LSB_RELEASE -LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch -Distributor ID: CentOS -Description: CentOS release 5.4 (Final) -Release: 5.4 -Codename: Final -LSB_RELEASE - allow(@plugin).to receive(:shell_out).with("lsb_release -a").and_return(mock_shell_out(0, @stdout, "")) - end - - it "should set lsb[:id]" do - @plugin.run - expect(@plugin[:lsb][:id]).to eq("CentOS") - end - - it "should set lsb[:release]" do - @plugin.run - expect(@plugin[:lsb][:release]).to eq("5.4") - end - - it "should set lsb[:codename]" do - @plugin.run - expect(@plugin[:lsb][:codename]).to eq("Final") - end - - it "should set lsb[:description]" do - @plugin.run - expect(@plugin[:lsb][:description]).to eq("CentOS release 5.4 (Final)") - end - end - - describe "on Fedora 14 correctly" do - before(:each) do - @stdout = <<-LSB_RELEASE -LSB Version: :core-4.0-ia32:core-4.0-noarch -Distributor ID: Fedora -Description: Fedora release 14 (Laughlin) -Release: 14 -Codename: Laughlin -LSB_RELEASE - allow(@plugin).to receive(:shell_out).with("lsb_release -a").and_return(mock_shell_out(0, @stdout, "")) - end - - it "should set lsb[:id]" do - @plugin.run - expect(@plugin[:lsb][:id]).to eq("Fedora") - end - - it "should set lsb[:release]" do - @plugin.run - expect(@plugin[:lsb][:release]).to eq("14") - end - - it "should set lsb[:codename]" do - @plugin.run - expect(@plugin[:lsb][:codename]).to eq("Laughlin") - end - - it "should set lsb[:description]" do - @plugin.run - expect(@plugin[:lsb][:description]).to eq("Fedora release 14 (Laughlin)") - end - end - end - - it "should not set any lsb values if /etc/lsb-release or /usr/bin/lsb_release do not exist " do - allow(File).to receive(:exists?).with("/etc/lsb-release").and_return(false) - allow(File).to receive(:exists?).with("/usr/bin/lsb_release").and_return(false) - expect(@plugin.attribute?(:lsb)).to be(false) - end -end +# +# Author:: Adam Jacob (<adam@chef.io>) +# Copyright:: Copyright (c) 2008-2016 Chef Software, Inc. +# License:: Apache License, Version 2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +require File.expand_path(File.dirname(__FILE__) + "/../../../spec_helper.rb") + +# We do not alter case for lsb attributes and consume them as provided + +describe Ohai::System, "Linux lsb plugin" do + before(:each) do + @plugin = get_plugin("linux/lsb") + allow(@plugin).to receive(:collect_os).and_return(:linux) + end + + describe "on systems with /etc/lsb-release" do + before(:each) do + @double_file = double("/etc/lsb-release") + allow(@double_file).to receive(:each). + and_yield("DISTRIB_ID=Ubuntu"). + and_yield("DISTRIB_RELEASE=8.04"). + and_yield("DISTRIB_CODENAME=hardy"). + and_yield('DISTRIB_DESCRIPTION="Ubuntu 8.04"') + allow(File).to receive(:open).with("/etc/lsb-release").and_return(@double_file) + allow(File).to receive(:exists?).with("/etc/lsb-release").and_return(true) + end + + it "should set lsb[:id]" do + @plugin.run + expect(@plugin[:lsb][:id]).to eq("Ubuntu") + end + + it "should set lsb[:release]" do + @plugin.run + expect(@plugin[:lsb][:release]).to eq("8.04") + end + + it "should set lsb[:codename]" do + @plugin.run + expect(@plugin[:lsb][:codename]).to eq("hardy") + end + + it "should set lsb[:description]" do + @plugin.run + expect(@plugin[:lsb][:description]).to eq("Ubuntu 8.04") + end + end + + describe "on systems with /usr/bin/lsb_release" do + before(:each) do + allow(File).to receive(:exists?).with("/etc/lsb-release").and_return(false) + allow(File).to receive(:exists?).with("/usr/bin/lsb_release").and_return(true) + + @stdin = double("STDIN", { :close => true }) + @pid = 10 + @stderr = double("STDERR") + @stdout = double("STDOUT") + @status = 0 + + end + + describe "on Centos 5.4 correctly" do + before(:each) do + @stdout = <<-LSB_RELEASE +LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch +Distributor ID: CentOS +Description: CentOS release 5.4 (Final) +Release: 5.4 +Codename: Final +LSB_RELEASE + allow(@plugin).to receive(:shell_out).with("lsb_release -a").and_return(mock_shell_out(0, @stdout, "")) + end + + it "should set lsb[:id]" do + @plugin.run + expect(@plugin[:lsb][:id]).to eq("CentOS") + end + + it "should set lsb[:release]" do + @plugin.run + expect(@plugin[:lsb][:release]).to eq("5.4") + end + + it "should set lsb[:codename]" do + @plugin.run + expect(@plugin[:lsb][:codename]).to eq("Final") + end + + it "should set lsb[:description]" do + @plugin.run + expect(@plugin[:lsb][:description]).to eq("CentOS release 5.4 (Final)") + end + end + + describe "on Fedora 14 correctly" do + before(:each) do + @stdout = <<-LSB_RELEASE +LSB Version: :core-4.0-ia32:core-4.0-noarch +Distributor ID: Fedora +Description: Fedora release 14 (Laughlin) +Release: 14 +Codename: Laughlin +LSB_RELEASE + allow(@plugin).to receive(:shell_out).with("lsb_release -a").and_return(mock_shell_out(0, @stdout, "")) + end + + it "should set lsb[:id]" do + @plugin.run + expect(@plugin[:lsb][:id]).to eq("Fedora") + end + + it "should set lsb[:release]" do + @plugin.run + expect(@plugin[:lsb][:release]).to eq("14") + end + + it "should set lsb[:codename]" do + @plugin.run + expect(@plugin[:lsb][:codename]).to eq("Laughlin") + end + + it "should set lsb[:description]" do + @plugin.run + expect(@plugin[:lsb][:description]).to eq("Fedora release 14 (Laughlin)") + end + end + end + + it "should not set any lsb values if /etc/lsb-release or /usr/bin/lsb_release do not exist " do + allow(File).to receive(:exists?).with("/etc/lsb-release").and_return(false) + allow(File).to receive(:exists?).with("/usr/bin/lsb_release").and_return(false) + expect(@plugin.attribute?(:lsb)).to be(false) + end +end