summaryrefslogtreecommitdiff
path: root/spec/unit/provider/package
diff options
context:
space:
mode:
Diffstat (limited to 'spec/unit/provider/package')
-rw-r--r--spec/unit/provider/package/aix_spec.rb68
-rw-r--r--spec/unit/provider/package/apt_spec.rb70
-rw-r--r--spec/unit/provider/package/dpkg_spec.rb54
-rw-r--r--spec/unit/provider/package/easy_install_spec.rb32
-rw-r--r--spec/unit/provider/package/freebsd/pkg_spec.rb106
-rw-r--r--spec/unit/provider/package/freebsd/pkgng_spec.rb46
-rw-r--r--spec/unit/provider/package/freebsd/port_spec.rb68
-rw-r--r--spec/unit/provider/package/ips_spec.rb68
-rw-r--r--spec/unit/provider/package/macports_spec.rb98
-rw-r--r--spec/unit/provider/package/pacman_spec.rb70
-rw-r--r--spec/unit/provider/package/paludis_spec.rb40
-rw-r--r--spec/unit/provider/package/portage_spec.rb76
-rw-r--r--spec/unit/provider/package/rpm_spec.rb58
-rw-r--r--spec/unit/provider/package/rubygems_spec.rb268
-rw-r--r--spec/unit/provider/package/smartos_spec.rb30
-rw-r--r--spec/unit/provider/package/solaris_spec.rb70
-rw-r--r--spec/unit/provider/package/windows/msi_spec.rb6
-rw-r--r--spec/unit/provider/package/windows_spec.rb8
-rw-r--r--spec/unit/provider/package/yum_spec.rb832
-rw-r--r--spec/unit/provider/package/zypper_spec.rb94
20 files changed, 1081 insertions, 1081 deletions
diff --git a/spec/unit/provider/package/aix_spec.rb b/spec/unit/provider/package/aix_spec.rb
index 5d6e23302f..6908b1288d 100644
--- a/spec/unit/provider/package/aix_spec.rb
+++ b/spec/unit/provider/package/aix_spec.rb
@@ -28,7 +28,7 @@ describe Chef::Provider::Package::Aix do
@new_resource.source("/tmp/samba.base")
@provider = Chef::Provider::Package::Aix.new(@new_resource, @run_context)
- ::File.stub(:exists?).and_return(true)
+ allow(::File).to receive(:exists?).and_return(true)
end
describe "assessing the current package status" do
@@ -40,118 +40,118 @@ describe Chef::Provider::Package::Aix do
end
it "should create a current resource with the name of new_resource" do
- @provider.stub(:popen4).and_return(@status)
+ allow(@provider).to receive(:popen4).and_return(@status)
@provider.load_current_resource
- @provider.current_resource.name.should == "samba.base"
+ expect(@provider.current_resource.name).to eq("samba.base")
end
it "should set the current resource bff package name to the new resource bff package name" do
- @provider.stub(:popen4).and_return(@status)
+ allow(@provider).to receive(:popen4).and_return(@status)
@provider.load_current_resource
- @provider.current_resource.package_name.should == "samba.base"
+ expect(@provider.current_resource.package_name).to eq("samba.base")
end
it "should raise an exception if a source is supplied but not found" do
- @provider.stub(:popen4).and_return(@status)
- ::File.stub(:exists?).and_return(false)
+ allow(@provider).to receive(:popen4).and_return(@status)
+ allow(::File).to receive(:exists?).and_return(false)
@provider.define_resource_requirements
@provider.load_current_resource
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Package)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Package)
end
it "should get the source package version from lslpp if provided" do
@stdout = StringIO.new(@bffinfo)
@stdin, @stderr = StringIO.new, StringIO.new
- @provider.should_receive(:popen4).with("installp -L -d /tmp/samba.base").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
- @provider.should_receive(:popen4).with("lslpp -lcq samba.base").and_return(@status)
+ expect(@provider).to receive(:popen4).with("installp -L -d /tmp/samba.base").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@provider).to receive(:popen4).with("lslpp -lcq samba.base").and_return(@status)
@provider.load_current_resource
- @provider.current_resource.package_name.should == "samba.base"
- @new_resource.version.should == "3.3.12.0"
+ expect(@provider.current_resource.package_name).to eq("samba.base")
+ expect(@new_resource.version).to eq("3.3.12.0")
end
it "should return the current version installed if found by lslpp" do
@stdout = StringIO.new(@bffinfo)
@stdin, @stderr = StringIO.new, StringIO.new
- @provider.should_receive(:popen4).with("installp -L -d /tmp/samba.base").and_return(@status)
- @provider.should_receive(:popen4).with("lslpp -lcq samba.base").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@provider).to receive(:popen4).with("installp -L -d /tmp/samba.base").and_return(@status)
+ expect(@provider).to receive(:popen4).with("lslpp -lcq samba.base").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
@provider.load_current_resource
- @provider.current_resource.version.should == "3.3.12.0"
+ expect(@provider.current_resource.version).to eq("3.3.12.0")
end
it "should raise an exception if the source is not set but we are installing" do
@new_resource = Chef::Resource::Package.new("samba.base")
@provider = Chef::Provider::Package::Aix.new(@new_resource, @run_context)
- @provider.stub(:popen4).and_return(@status)
- lambda { @provider.run_action(:install) }.should raise_error(Chef::Exceptions::Package)
+ allow(@provider).to receive(:popen4).and_return(@status)
+ expect { @provider.run_action(:install) }.to raise_error(Chef::Exceptions::Package)
end
it "should raise an exception if installp/lslpp fails to run" do
@status = double("Status", :exitstatus => -1)
- @provider.stub(:popen4).and_return(@status)
- lambda { @provider.load_current_resource }.should raise_error(Chef::Exceptions::Package)
+ allow(@provider).to receive(:popen4).and_return(@status)
+ expect { @provider.load_current_resource }.to raise_error(Chef::Exceptions::Package)
end
it "should return a current resource with a nil version if the package is not found" do
@stdout = StringIO.new
- @provider.should_receive(:popen4).with("installp -L -d /tmp/samba.base").and_return(@status)
- @provider.should_receive(:popen4).with("lslpp -lcq samba.base").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@provider).to receive(:popen4).with("installp -L -d /tmp/samba.base").and_return(@status)
+ expect(@provider).to receive(:popen4).with("lslpp -lcq samba.base").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
@provider.load_current_resource
- @provider.current_resource.version.should be_nil
+ expect(@provider.current_resource.version).to be_nil
end
end
describe "candidate_version" do
it "should return the candidate_version variable if already setup" do
@provider.candidate_version = "3.3.12.0"
- @provider.should_not_receive(:popen4)
+ expect(@provider).not_to receive(:popen4)
@provider.candidate_version
end
it "should lookup the candidate_version if the variable is not already set" do
@status = double("Status", :exitstatus => 0)
- @provider.should_receive(:popen4).and_return(@status)
+ expect(@provider).to receive(:popen4).and_return(@status)
@provider.candidate_version
end
it "should throw and exception if the exitstatus is not 0" do
@status = double("Status", :exitstatus => 1)
- @provider.stub(:popen4).and_return(@status)
- lambda { @provider.candidate_version }.should raise_error(Chef::Exceptions::Package)
+ allow(@provider).to receive(:popen4).and_return(@status)
+ expect { @provider.candidate_version }.to raise_error(Chef::Exceptions::Package)
end
end
describe "install and upgrade" do
it "should run installp -aYF -d with the package source to install" do
- @provider.should_receive(:shell_out!).with("installp -aYF -d /tmp/samba.base samba.base")
+ expect(@provider).to receive(:shell_out!).with("installp -aYF -d /tmp/samba.base samba.base")
@provider.install_package("samba.base", "3.3.12.0")
end
it "should run when the package is a path to install" do
@new_resource = Chef::Resource::Package.new("/tmp/samba.base")
@provider = Chef::Provider::Package::Aix.new(@new_resource, @run_context)
- @new_resource.source.should == "/tmp/samba.base"
- @provider.should_receive(:shell_out!).with("installp -aYF -d /tmp/samba.base /tmp/samba.base")
+ expect(@new_resource.source).to eq("/tmp/samba.base")
+ expect(@provider).to receive(:shell_out!).with("installp -aYF -d /tmp/samba.base /tmp/samba.base")
@provider.install_package("/tmp/samba.base", "3.3.12.0")
end
it "should run installp with -eLogfile option." do
- @new_resource.stub(:options).and_return("-e/tmp/installp.log")
- @provider.should_receive(:shell_out!).with("installp -aYF -e/tmp/installp.log -d /tmp/samba.base samba.base")
+ allow(@new_resource).to receive(:options).and_return("-e/tmp/installp.log")
+ expect(@provider).to receive(:shell_out!).with("installp -aYF -e/tmp/installp.log -d /tmp/samba.base samba.base")
@provider.install_package("samba.base", "3.3.12.0")
end
end
describe "remove" do
it "should run installp -u samba.base to remove the package" do
- @provider.should_receive(:shell_out!).with("installp -u samba.base")
+ expect(@provider).to receive(:shell_out!).with("installp -u samba.base")
@provider.remove_package("samba.base", "3.3.12.0")
end
it "should run installp -u -e/tmp/installp.log with options -e/tmp/installp.log" do
- @new_resource.stub(:options).and_return("-e/tmp/installp.log")
- @provider.should_receive(:shell_out!).with("installp -u -e/tmp/installp.log samba.base")
+ allow(@new_resource).to receive(:options).and_return("-e/tmp/installp.log")
+ expect(@provider).to receive(:shell_out!).with("installp -u -e/tmp/installp.log samba.base")
@provider.remove_package("samba.base", "3.3.12.0")
end
diff --git a/spec/unit/provider/package/apt_spec.rb b/spec/unit/provider/package/apt_spec.rb
index 90e9dd6d3f..edca3e4c22 100644
--- a/spec/unit/provider/package/apt_spec.rb
+++ b/spec/unit/provider/package/apt_spec.rb
@@ -45,17 +45,17 @@ PKG_STATUS
describe "when loading current resource" do
it "should create a current resource with the name of the new_resource" do
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"apt-cache policy #{@new_resource.package_name}",
:timeout => @timeout
).and_return(@shell_out)
@provider.load_current_resource
current_resource = @provider.current_resource
- current_resource.should be_a(Chef::Resource::Package)
- current_resource.name.should == "irssi"
- current_resource.package_name.should == "irssi"
- current_resource.version.should be_nil
+ expect(current_resource).to be_a(Chef::Resource::Package)
+ expect(current_resource.name).to eq("irssi")
+ expect(current_resource.package_name).to eq("irssi")
+ expect(current_resource.version).to be_nil
end
it "should set the installed version if package has one" do
@@ -71,10 +71,10 @@ sudo:
1.7.2p1-1ubuntu5 0
500 http://us.archive.ubuntu.com/ubuntu/ lucid/main Packages
INSTALLED
- @provider.should_receive(:shell_out!).and_return(@shell_out)
+ expect(@provider).to receive(:shell_out!).and_return(@shell_out)
@provider.load_current_resource
- @provider.current_resource.version.should == "1.7.2p1-1ubuntu5.3"
- @provider.candidate_version.should eql("1.7.2p1-1ubuntu5.3")
+ expect(@provider.current_resource.version).to eq("1.7.2p1-1ubuntu5.3")
+ expect(@provider.candidate_version).to eql("1.7.2p1-1ubuntu5.3")
end
# libmysqlclient-dev is a real package in newer versions of debian + ubuntu
@@ -88,7 +88,7 @@ libmysqlclient15-dev:
Version table:
VPKG_STDOUT
virtual_package = double(:stdout => virtual_package_out,:exitstatus => 0)
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"apt-cache policy libmysqlclient15-dev",
:timeout => @timeout
).and_return(virtual_package)
@@ -111,7 +111,7 @@ libmysqlclient-dev 5.1.41-3ubuntu12.10
libmysqlclient-dev 5.1.41-3ubuntu12
SHOWPKG_STDOUT
showpkg = double(:stdout => showpkg_out,:exitstatus => 0)
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"apt-cache showpkg libmysqlclient15-dev",
:timeout => @timeout
).and_return(showpkg)
@@ -129,7 +129,7 @@ libmysqlclient-dev:
500 http://us.archive.ubuntu.com/ubuntu/ lucid/main Packages
RPKG_STDOUT
real_package = double(:stdout => real_package_out,:exitstatus => 0)
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"apt-cache policy libmysqlclient-dev",
:timeout => @timeout
).and_return(real_package)
@@ -145,7 +145,7 @@ mp3-decoder:
Version table:
VPKG_STDOUT
virtual_package = double(:stdout => virtual_package_out,:exitstatus => 0)
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"apt-cache policy mp3-decoder",
:timeout => @timeout
).and_return(virtual_package)
@@ -171,20 +171,20 @@ mpg321 0.2.10.6
mpg123 1.12.1-0ubuntu1
SHOWPKG_STDOUT
showpkg = double(:stdout => showpkg_out,:exitstatus => 0)
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"apt-cache showpkg mp3-decoder",
:timeout => @timeout
).and_return(showpkg)
- lambda { @provider.load_current_resource }.should raise_error(Chef::Exceptions::Package)
+ expect { @provider.load_current_resource }.to raise_error(Chef::Exceptions::Package)
end
it "should run apt-cache policy with the default_release option, if there is one and provider is explicitly defined" do
@new_resource = Chef::Resource::AptPackage.new("irssi", @run_context)
@provider = Chef::Provider::Package::Apt.new(@new_resource, @run_context)
- @new_resource.stub(:default_release).and_return("lenny-backports")
- @new_resource.stub(:provider).and_return("Chef::Provider::Package::Apt")
- @provider.should_receive(:shell_out!).with(
+ allow(@new_resource).to receive(:default_release).and_return("lenny-backports")
+ allow(@new_resource).to receive(:provider).and_return("Chef::Provider::Package::Apt")
+ expect(@provider).to receive(:shell_out!).with(
"apt-cache -o APT::Default-Release=lenny-backports policy irssi",
:timeout => @timeout
).and_return(@shell_out)
@@ -194,7 +194,7 @@ SHOWPKG_STDOUT
it "raises an exception if a source is specified (CHEF-5113)" do
@new_resource.source "pluto"
@provider.define_resource_requirements
- @provider.should_receive(:shell_out!).with("apt-cache policy irssi", {:timeout=>900}).and_return(@shell_out)
+ expect(@provider).to receive(:shell_out!).with("apt-cache policy irssi", {:timeout=>900}).and_return(@shell_out)
expect { @provider.run_action(:install) }.to raise_error(Chef::Exceptions::Package)
end
end
@@ -207,7 +207,7 @@ SHOWPKG_STDOUT
describe "install_package" do
it "should run apt-get install with the package name and version" do
- @provider.should_receive(:shell_out!). with(
+ expect(@provider).to receive(:shell_out!). with(
"apt-get -q -y install irssi=0.8.12-7",
:env => { "DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil},
:timeout => @timeout
@@ -216,7 +216,7 @@ SHOWPKG_STDOUT
end
it "should run apt-get install with the package name and version and options if specified" do
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"apt-get -q -y --force-yes install irssi=0.8.12-7",
:env => {"DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil },
:timeout => @timeout
@@ -232,7 +232,7 @@ SHOWPKG_STDOUT
@new_resource.provider = @provider
@provider.new_resource = @new_resource
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"apt-get -q -y -o APT::Default-Release=lenny-backports install irssi=0.8.12-7",
:env => {"DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil },
:timeout => @timeout
@@ -245,7 +245,7 @@ SHOWPKG_STDOUT
describe Chef::Provider::Package::Apt, "upgrade_package" do
it "should run install_package with the name and version" do
- @provider.should_receive(:install_package).with("irssi", "0.8.12-7")
+ expect(@provider).to receive(:install_package).with("irssi", "0.8.12-7")
@provider.upgrade_package("irssi", "0.8.12-7")
end
end
@@ -253,7 +253,7 @@ SHOWPKG_STDOUT
describe Chef::Provider::Package::Apt, "remove_package" do
it "should run apt-get remove with the package name" do
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"apt-get -q -y remove irssi",
:env => {"DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil},
:timeout => @timeout
@@ -262,7 +262,7 @@ SHOWPKG_STDOUT
end
it "should run apt-get remove with the package name and options if specified" do
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"apt-get -q -y --force-yes remove irssi",
:env => { "DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil },
:timeout => @timeout
@@ -276,7 +276,7 @@ SHOWPKG_STDOUT
describe "when purging a package" do
it "should run apt-get purge with the package name" do
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"apt-get -q -y purge irssi",
:env => { "DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil },
:timeout => @timeout
@@ -285,7 +285,7 @@ SHOWPKG_STDOUT
end
it "should run apt-get purge with the package name and options if specified" do
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"apt-get -q -y --force-yes purge irssi",
:env => { "DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil },
:timeout => @timeout
@@ -298,14 +298,14 @@ SHOWPKG_STDOUT
describe "when preseeding a package" do
before(:each) do
- @provider.stub(:get_preseed_file).and_return("/tmp/irssi-0.8.12-7.seed")
+ allow(@provider).to receive(:get_preseed_file).and_return("/tmp/irssi-0.8.12-7.seed")
end
it "should get the full path to the preseed response file" do
- @provider.should_receive(:get_preseed_file).with("irssi", "0.8.12-7").and_return("/tmp/irssi-0.8.12-7.seed")
+ expect(@provider).to receive(:get_preseed_file).with("irssi", "0.8.12-7").and_return("/tmp/irssi-0.8.12-7.seed")
file = @provider.get_preseed_file("irssi", "0.8.12-7")
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"debconf-set-selections /tmp/irssi-0.8.12-7.seed",
:env => {"DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil},
:timeout => @timeout
@@ -315,7 +315,7 @@ SHOWPKG_STDOUT
end
it "should run debconf-set-selections on the preseed file if it has changed" do
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"debconf-set-selections /tmp/irssi-0.8.12-7.seed",
:env => {"DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil},
:timeout => @timeout
@@ -325,18 +325,18 @@ SHOWPKG_STDOUT
end
it "should not run debconf-set-selections if the preseed file has not changed" do
- @provider.stub(:check_package_state)
+ allow(@provider).to receive(:check_package_state)
@current_resource.version "0.8.11"
@new_resource.response_file "/tmp/file"
- @provider.stub(:get_preseed_file).and_return(false)
- @provider.should_not_receive(:shell_out!)
+ allow(@provider).to receive(:get_preseed_file).and_return(false)
+ expect(@provider).not_to receive(:shell_out!)
@provider.run_action(:reconfig)
end
end
describe "when reconfiguring a package" do
it "should run dpkg-reconfigure package" do
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"dpkg-reconfigure irssi",
:env => {"DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil },
:timeout => @timeout
@@ -348,7 +348,7 @@ SHOWPKG_STDOUT
describe "when installing a virtual package" do
it "should install the package without specifying a version" do
@provider.is_virtual_package = true
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"apt-get -q -y install libmysqlclient-dev",
:env => {"DEBIAN_FRONTEND" => "noninteractive", "LC_ALL" => nil },
:timeout => @timeout
diff --git a/spec/unit/provider/package/dpkg_spec.rb b/spec/unit/provider/package/dpkg_spec.rb
index 439a42daa3..fdd9e50c8e 100644
--- a/spec/unit/provider/package/dpkg_spec.rb
+++ b/spec/unit/provider/package/dpkg_spec.rb
@@ -33,32 +33,32 @@ describe Chef::Provider::Package::Dpkg do
@status = double("Status", :exitstatus => 0)
@stderr = StringIO.new
@pid = double("PID")
- @provider.stub(:popen4).and_return(@status)
+ allow(@provider).to receive(:popen4).and_return(@status)
- ::File.stub(:exists?).and_return(true)
+ allow(::File).to receive(:exists?).and_return(true)
end
describe "when loading the current resource state" do
it "should create a current resource with the name of the new_resource" do
@provider.load_current_resource
- @provider.current_resource.package_name.should == "wget"
+ expect(@provider.current_resource.package_name).to eq("wget")
end
it "should raise an exception if a source is supplied but not found" do
@provider.load_current_resource
@provider.define_resource_requirements
- ::File.stub(:exists?).and_return(false)
- lambda { @provider.run_action(:install) }.should raise_error(Chef::Exceptions::Package)
+ allow(::File).to receive(:exists?).and_return(false)
+ expect { @provider.run_action(:install) }.to raise_error(Chef::Exceptions::Package)
end
describe 'gets the source package version from dpkg-deb' do
def check_version(version)
@stdout = StringIO.new("wget\t#{version}")
- @provider.stub(:popen4).with("dpkg-deb -W #{@new_resource.source}").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ allow(@provider).to receive(:popen4).with("dpkg-deb -W #{@new_resource.source}").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
@provider.load_current_resource
- @provider.current_resource.package_name.should == "wget"
- @new_resource.version.should == version
+ expect(@provider.current_resource.package_name).to eq("wget")
+ expect(@new_resource.version).to eq(version)
end
it 'if short version provided' do
@@ -80,9 +80,9 @@ describe Chef::Provider::Package::Dpkg do
it "gets the source package name from dpkg-deb correctly when the package name has `-', `+' or `.' characters" do
@stdout = StringIO.new("f.o.o-pkg++2\t1.11.4-1ubuntu1")
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
@provider.load_current_resource
- @provider.current_resource.package_name.should == "f.o.o-pkg++2"
+ expect(@provider.current_resource.package_name).to eq("f.o.o-pkg++2")
end
it "should raise an exception if the source is not set but we are installing" do
@@ -90,7 +90,7 @@ describe Chef::Provider::Package::Dpkg do
@provider.new_resource = @new_resource
@provider.define_resource_requirements
@provider.load_current_resource
- lambda { @provider.run_action(:install)}.should raise_error(Chef::Exceptions::Package)
+ expect { @provider.run_action(:install)}.to raise_error(Chef::Exceptions::Package)
end
it "should return the current version installed if found by dpkg" do
@@ -107,22 +107,22 @@ Config-Version: 1.11.4-1ubuntu1
Depends: libc6 (>= 2.8~20080505), libssl0.9.8 (>= 0.9.8f-5)
Conflicts: wget-ssl
DPKG_S
- @provider.stub(:popen4).with("dpkg -s wget").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ allow(@provider).to receive(:popen4).with("dpkg -s wget").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
@provider.load_current_resource
- @provider.current_resource.version.should == "1.11.4-1ubuntu1"
+ expect(@provider.current_resource.version).to eq("1.11.4-1ubuntu1")
end
it "should raise an exception if dpkg fails to run" do
@status = double("Status", :exitstatus => -1)
- @provider.stub(:popen4).and_return(@status)
- lambda { @provider.load_current_resource }.should raise_error(Chef::Exceptions::Package)
+ allow(@provider).to receive(:popen4).and_return(@status)
+ expect { @provider.load_current_resource }.to raise_error(Chef::Exceptions::Package)
end
end
describe Chef::Provider::Package::Dpkg, "install and upgrade" do
it "should run dpkg -i with the package source" do
- @provider.should_receive(:run_noninteractive).with(
+ expect(@provider).to receive(:run_noninteractive).with(
"dpkg -i /tmp/wget_1.11.4-1ubuntu1_amd64.deb"
)
@provider.install_package("wget", "1.11.4-1ubuntu1")
@@ -131,7 +131,7 @@ DPKG_S
it "should run dpkg -i if the package is a path and the source is nil" do
@new_resource = Chef::Resource::Package.new("/tmp/wget_1.11.4-1ubuntu1_amd64.deb")
@provider = Chef::Provider::Package::Dpkg.new(@new_resource, @run_context)
- @provider.should_receive(:run_noninteractive).with(
+ expect(@provider).to receive(:run_noninteractive).with(
"dpkg -i /tmp/wget_1.11.4-1ubuntu1_amd64.deb"
)
@provider.install_package("/tmp/wget_1.11.4-1ubuntu1_amd64.deb", "1.11.4-1ubuntu1")
@@ -140,55 +140,55 @@ DPKG_S
it "should run dpkg -i if the package is a path and the source is nil for an upgrade" do
@new_resource = Chef::Resource::Package.new("/tmp/wget_1.11.4-1ubuntu1_amd64.deb")
@provider = Chef::Provider::Package::Dpkg.new(@new_resource, @run_context)
- @provider.should_receive(:run_noninteractive).with(
+ expect(@provider).to receive(:run_noninteractive).with(
"dpkg -i /tmp/wget_1.11.4-1ubuntu1_amd64.deb"
)
@provider.upgrade_package("/tmp/wget_1.11.4-1ubuntu1_amd64.deb", "1.11.4-1ubuntu1")
end
it "should run dpkg -i with the package source and options if specified" do
- @provider.should_receive(:run_noninteractive).with(
+ expect(@provider).to receive(:run_noninteractive).with(
"dpkg -i --force-yes /tmp/wget_1.11.4-1ubuntu1_amd64.deb"
)
- @new_resource.stub(:options).and_return("--force-yes")
+ allow(@new_resource).to receive(:options).and_return("--force-yes")
@provider.install_package("wget", "1.11.4-1ubuntu1")
end
it "should upgrade by running install_package" do
- @provider.should_receive(:install_package).with("wget", "1.11.4-1ubuntu1")
+ expect(@provider).to receive(:install_package).with("wget", "1.11.4-1ubuntu1")
@provider.upgrade_package("wget", "1.11.4-1ubuntu1")
end
end
describe Chef::Provider::Package::Dpkg, "remove and purge" do
it "should run dpkg -r to remove the package" do
- @provider.should_receive(:run_noninteractive).with(
+ expect(@provider).to receive(:run_noninteractive).with(
"dpkg -r wget"
)
@provider.remove_package("wget", "1.11.4-1ubuntu1")
end
it "should run dpkg -r to remove the package with options if specified" do
- @provider.should_receive(:run_noninteractive).with(
+ expect(@provider).to receive(:run_noninteractive).with(
"dpkg -r --force-yes wget"
)
- @new_resource.stub(:options).and_return("--force-yes")
+ allow(@new_resource).to receive(:options).and_return("--force-yes")
@provider.remove_package("wget", "1.11.4-1ubuntu1")
end
it "should run dpkg -P to purge the package" do
- @provider.should_receive(:run_noninteractive).with(
+ expect(@provider).to receive(:run_noninteractive).with(
"dpkg -P wget"
)
@provider.purge_package("wget", "1.11.4-1ubuntu1")
end
it "should run dpkg -P to purge the package with options if specified" do
- @provider.should_receive(:run_noninteractive).with(
+ expect(@provider).to receive(:run_noninteractive).with(
"dpkg -P --force-yes wget"
)
- @new_resource.stub(:options).and_return("--force-yes")
+ allow(@new_resource).to receive(:options).and_return("--force-yes")
@provider.purge_package("wget", "1.11.4-1ubuntu1")
end
diff --git a/spec/unit/provider/package/easy_install_spec.rb b/spec/unit/provider/package/easy_install_spec.rb
index 87cbabcc19..221ec8fdfc 100644
--- a/spec/unit/provider/package/easy_install_spec.rb
+++ b/spec/unit/provider/package/easy_install_spec.rb
@@ -30,79 +30,79 @@ describe Chef::Provider::Package::EasyInstall do
@current_resource.version('1.8d')
@provider = Chef::Provider::Package::EasyInstall.new(@new_resource, @run_context)
- Chef::Resource::Package.stub(:new).and_return(@current_resource)
+ allow(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
@stdin = StringIO.new
@stdout = StringIO.new
@status = double("Status", :exitstatus => 0)
@stderr = StringIO.new
@pid = 2342
- @provider.stub(:popen4).and_return(@status)
+ allow(@provider).to receive(:popen4).and_return(@status)
end
describe "easy_install_binary_path" do
it "should return a Chef::Provider::EasyInstall object" do
provider = Chef::Provider::Package::EasyInstall.new(@node, @new_resource)
- provider.should be_a_kind_of(Chef::Provider::Package::EasyInstall)
+ expect(provider).to be_a_kind_of(Chef::Provider::Package::EasyInstall)
end
it "should set the current resources package name to the new resources package name" do
- $stdout.stub(:write)
- @current_resource.should_receive(:package_name).with(@new_resource.package_name)
+ allow($stdout).to receive(:write)
+ expect(@current_resource).to receive(:package_name).with(@new_resource.package_name)
@provider.load_current_resource
end
it "should return a relative path to easy_install if no easy_install_binary is given" do
- @provider.easy_install_binary_path.should eql("easy_install")
+ expect(@provider.easy_install_binary_path).to eql("easy_install")
end
it "should return a specific path to easy_install if a easy_install_binary is given" do
- @new_resource.should_receive(:easy_install_binary).and_return("/opt/local/bin/custom/easy_install")
- @provider.easy_install_binary_path.should eql("/opt/local/bin/custom/easy_install")
+ expect(@new_resource).to receive(:easy_install_binary).and_return("/opt/local/bin/custom/easy_install")
+ expect(@provider.easy_install_binary_path).to eql("/opt/local/bin/custom/easy_install")
end
end
describe "actions_on_package" do
it "should run easy_install with the package name and version" do
- @provider.should_receive(:run_command).with({
+ expect(@provider).to receive(:run_command).with({
:command => "easy_install \"boto==1.8d\""
})
@provider.install_package("boto", "1.8d")
end
it "should run easy_install with the package name and version and specified options" do
- @provider.should_receive(:run_command).with({
+ expect(@provider).to receive(:run_command).with({
:command => "easy_install --always-unzip \"boto==1.8d\""
})
- @new_resource.stub(:options).and_return("--always-unzip")
+ allow(@new_resource).to receive(:options).and_return("--always-unzip")
@provider.install_package("boto", "1.8d")
end
it "should run easy_install with the package name and version" do
- @provider.should_receive(:run_command).with({
+ expect(@provider).to receive(:run_command).with({
:command => "easy_install \"boto==1.8d\""
})
@provider.upgrade_package("boto", "1.8d")
end
it "should run easy_install -m with the package name and version" do
- @provider.should_receive(:run_command).with({
+ expect(@provider).to receive(:run_command).with({
:command => "easy_install -m boto"
})
@provider.remove_package("boto", "1.8d")
end
it "should run easy_install -m with the package name and version and specified options" do
- @provider.should_receive(:run_command).with({
+ expect(@provider).to receive(:run_command).with({
:command => "easy_install -x -m boto"
})
- @new_resource.stub(:options).and_return("-x")
+ allow(@new_resource).to receive(:options).and_return("-x")
@provider.remove_package("boto", "1.8d")
end
it "should run easy_install -m with the package name and version" do
- @provider.should_receive(:run_command).with({
+ expect(@provider).to receive(:run_command).with({
:command => "easy_install -m boto"
})
@provider.purge_package("boto", "1.8d")
diff --git a/spec/unit/provider/package/freebsd/pkg_spec.rb b/spec/unit/provider/package/freebsd/pkg_spec.rb
index 9b2493a4c5..f67161930f 100644
--- a/spec/unit/provider/package/freebsd/pkg_spec.rb
+++ b/spec/unit/provider/package/freebsd/pkg_spec.rb
@@ -30,35 +30,35 @@ describe Chef::Provider::Package::Freebsd::Pkg, "load_current_resource" do
@provider = Chef::Provider::Package::Freebsd::Pkg.new(@new_resource, @run_context)
@provider.current_resource = @current_resource
- ::File.stub(:exist?).with('/usr/ports/Makefile').and_return(false)
+ allow(::File).to receive(:exist?).with('/usr/ports/Makefile').and_return(false)
end
describe "when determining the current package state" do
before do
- @provider.stub(:ports_candidate_version).and_return("4.3.6")
+ allow(@provider).to receive(:ports_candidate_version).and_return("4.3.6")
end
it "should create a current resource with the name of the new_resource" do
current_resource = Chef::Provider::Package::Freebsd::Pkg.new(@new_resource, @run_context).current_resource
- current_resource.name.should == "zsh"
+ expect(current_resource.name).to eq("zsh")
end
it "should return a version if the package is installed" do
- @provider.should_receive(:current_installed_version).and_return("4.3.6_7")
+ expect(@provider).to receive(:current_installed_version).and_return("4.3.6_7")
@provider.load_current_resource
- @current_resource.version.should == "4.3.6_7"
+ expect(@current_resource.version).to eq("4.3.6_7")
end
it "should return nil if the package is not installed" do
- @provider.should_receive(:current_installed_version).and_return(nil)
+ expect(@provider).to receive(:current_installed_version).and_return(nil)
@provider.load_current_resource
- @current_resource.version.should be_nil
+ expect(@current_resource.version).to be_nil
end
it "should return a candidate version if it exists" do
- @provider.should_receive(:current_installed_version).and_return(nil)
+ expect(@provider).to receive(:current_installed_version).and_return(nil)
@provider.load_current_resource
- @provider.candidate_version.should eql("4.3.6")
+ expect(@provider.candidate_version).to eql("4.3.6")
end
end
@@ -77,42 +77,42 @@ describe Chef::Provider::Package::Freebsd::Pkg, "load_current_resource" do
it "should return the version number when it is installed" do
pkg_info = OpenStruct.new(:stdout => "zsh-4.3.6_7")
- @provider.should_receive(:shell_out!).with('pkg_info -E "zsh*"', :env => nil, :returns => [0,1]).and_return(pkg_info)
+ expect(@provider).to receive(:shell_out!).with('pkg_info -E "zsh*"', :env => nil, :returns => [0,1]).and_return(pkg_info)
#@provider.should_receive(:popen4).with('pkg_info -E "zsh*"').and_yield(@pid, @stdin, ["zsh-4.3.6_7"], @stderr).and_return(@status)
- @provider.stub(:package_name).and_return("zsh")
- @provider.current_installed_version.should == "4.3.6_7"
+ allow(@provider).to receive(:package_name).and_return("zsh")
+ expect(@provider.current_installed_version).to eq("4.3.6_7")
end
it "does not set the current version number when the package is not installed" do
pkg_info = OpenStruct.new(:stdout => "")
- @provider.should_receive(:shell_out!).with('pkg_info -E "zsh*"', :env => nil, :returns => [0,1]).and_return(pkg_info)
- @provider.stub(:package_name).and_return("zsh")
- @provider.current_installed_version.should be_nil
+ expect(@provider).to receive(:shell_out!).with('pkg_info -E "zsh*"', :env => nil, :returns => [0,1]).and_return(pkg_info)
+ allow(@provider).to receive(:package_name).and_return("zsh")
+ expect(@provider.current_installed_version).to be_nil
end
it "should return the port path for a valid port name" do
whereis = OpenStruct.new(:stdout => "zsh: /usr/ports/shells/zsh")
- @provider.should_receive(:shell_out!).with("whereis -s zsh", :env => nil).and_return(whereis)
+ expect(@provider).to receive(:shell_out!).with("whereis -s zsh", :env => nil).and_return(whereis)
#@provider.should_receive(:popen4).with("whereis -s zsh").and_yield(@pid, @stdin, ["zsh: /usr/ports/shells/zsh"], @stderr).and_return(@status)
- @provider.stub(:port_name).and_return("zsh")
- @provider.port_path.should == "/usr/ports/shells/zsh"
+ allow(@provider).to receive(:port_name).and_return("zsh")
+ expect(@provider.port_path).to eq("/usr/ports/shells/zsh")
end
# Not happy with the form of these tests as they are far too closely tied to the implementation and so very fragile.
it "should return the ports candidate version when given a valid port path" do
- @provider.stub(:port_path).and_return("/usr/ports/shells/zsh")
+ allow(@provider).to receive(:port_path).and_return("/usr/ports/shells/zsh")
make_v = OpenStruct.new(:stdout => "4.3.6\n", :exitstatus => 0)
- @provider.should_receive(:shell_out!).with("make -V PORTVERSION", {:cwd=>"/usr/ports/shells/zsh", :returns=>[0, 1], :env=>nil}).and_return(make_v)
- @provider.ports_candidate_version.should == "4.3.6"
+ expect(@provider).to receive(:shell_out!).with("make -V PORTVERSION", {:cwd=>"/usr/ports/shells/zsh", :returns=>[0, 1], :env=>nil}).and_return(make_v)
+ expect(@provider.ports_candidate_version).to eq("4.3.6")
end
it "should figure out the package name when we have ports" do
- ::File.stub(:exist?).with('/usr/ports/Makefile').and_return(true)
- @provider.stub(:port_path).and_return("/usr/ports/shells/zsh")
+ allow(::File).to receive(:exist?).with('/usr/ports/Makefile').and_return(true)
+ allow(@provider).to receive(:port_path).and_return("/usr/ports/shells/zsh")
make_v = OpenStruct.new(:stdout => "zsh-4.3.6_7\n", :exitstatus => 0)
- @provider.should_receive(:shell_out!).with("make -V PKGNAME", {:cwd=>"/usr/ports/shells/zsh", :env=>nil, :returns=>[0, 1]}).and_return(make_v)
+ expect(@provider).to receive(:shell_out!).with("make -V PKGNAME", {:cwd=>"/usr/ports/shells/zsh", :env=>nil, :returns=>[0, 1]}).and_return(make_v)
#@provider.should_receive(:ports_makefile_variable_value).with("PKGNAME").and_return("zsh-4.3.6_7")
- @provider.package_name.should == "zsh"
+ expect(@provider.package_name).to eq("zsh")
end
end
@@ -121,13 +121,13 @@ describe Chef::Provider::Package::Freebsd::Pkg, "load_current_resource" do
@cmd_result = OpenStruct.new(:status => true)
@provider.current_resource = @current_resource
- @provider.stub(:package_name).and_return("zsh")
- @provider.stub(:latest_link_name).and_return("zsh")
- @provider.stub(:port_path).and_return("/usr/ports/shells/zsh")
+ allow(@provider).to receive(:package_name).and_return("zsh")
+ allow(@provider).to receive(:latest_link_name).and_return("zsh")
+ allow(@provider).to receive(:port_path).and_return("/usr/ports/shells/zsh")
end
it "should run pkg_add -r with the package name" do
- @provider.should_receive(:shell_out!).with("pkg_add -r zsh", :env => nil).and_return(@cmd_result)
+ expect(@provider).to receive(:shell_out!).with("pkg_add -r zsh", :env => nil).and_return(@cmd_result)
@provider.install_package("zsh", "4.3.6_7")
end
end
@@ -142,15 +142,15 @@ describe Chef::Provider::Package::Freebsd::Pkg, "load_current_resource" do
it "should figure out the port path from the package_name using whereis" do
whereis = OpenStruct.new(:stdout => "zsh: /usr/ports/shells/zsh")
- @provider.should_receive(:shell_out!).with("whereis -s zsh", :env=>nil).and_return(whereis)
- @provider.port_path.should == "/usr/ports/shells/zsh"
+ expect(@provider).to receive(:shell_out!).with("whereis -s zsh", :env=>nil).and_return(whereis)
+ expect(@provider.port_path).to eq("/usr/ports/shells/zsh")
end
it "should use the package_name as the port path when it starts with /" do
new_resource = Chef::Resource::Package.new("/usr/ports/www/wordpress")
provider = Chef::Provider::Package::Freebsd::Pkg.new(new_resource, @run_context)
- provider.should_not_receive(:popen4)
- provider.port_path.should == "/usr/ports/www/wordpress"
+ expect(provider).not_to receive(:popen4)
+ expect(provider.port_path).to eq("/usr/ports/www/wordpress")
end
it "should use the package_name as a relative path from /usr/ports when it contains / but doesn't start with it" do
@@ -159,8 +159,8 @@ describe Chef::Provider::Package::Freebsd::Pkg, "load_current_resource" do
# :cookbook_name => "xenoparadox")
new_resource = Chef::Resource::Package.new("www/wordpress")
provider = Chef::Provider::Package::Freebsd::Pkg.new(new_resource, @run_context)
- provider.should_not_receive(:popen4)
- provider.port_path.should == "/usr/ports/www/wordpress"
+ expect(provider).not_to receive(:popen4)
+ expect(provider.port_path).to eq("/usr/ports/www/wordpress")
end
end
@@ -170,15 +170,15 @@ describe Chef::Provider::Package::Freebsd::Pkg, "load_current_resource" do
@current_resource = Chef::Resource::Package.new("ruby-iconv")
@provider = Chef::Provider::Package::Freebsd::Pkg.new(@new_resource, @run_context)
@provider.current_resource = @current_resource
- @provider.stub(:port_path).and_return("/usr/ports/converters/ruby-iconv")
- @provider.stub(:package_name).and_return("ruby18-iconv")
- @provider.stub(:latest_link_name).and_return("ruby18-iconv")
+ allow(@provider).to receive(:port_path).and_return("/usr/ports/converters/ruby-iconv")
+ allow(@provider).to receive(:package_name).and_return("ruby18-iconv")
+ allow(@provider).to receive(:latest_link_name).and_return("ruby18-iconv")
@install_result = OpenStruct.new(:status => true)
end
it "should run pkg_add -r with the package name" do
- @provider.should_receive(:shell_out!).with("pkg_add -r ruby18-iconv", :env => nil).and_return(@install_result)
+ expect(@provider).to receive(:shell_out!).with("pkg_add -r ruby18-iconv", :env => nil).and_return(@install_result)
@provider.install_package("ruby-iconv", "1.0")
end
end
@@ -189,11 +189,11 @@ describe Chef::Provider::Package::Freebsd::Pkg, "load_current_resource" do
@new_resource.version "4.3.6_7"
@current_resource.version "4.3.6_7"
@provider.current_resource = @current_resource
- @provider.stub(:package_name).and_return("zsh")
+ allow(@provider).to receive(:package_name).and_return("zsh")
end
it "should run pkg_delete with the package name and version" do
- @provider.should_receive(:shell_out!).with("pkg_delete zsh-4.3.6_7", :env => nil).and_return(@pkg_delete)
+ expect(@provider).to receive(:shell_out!).with("pkg_delete zsh-4.3.6_7", :env => nil).and_return(@pkg_delete)
@provider.remove_package("zsh", "4.3.6_7")
end
end
@@ -213,16 +213,16 @@ describe Chef::Provider::Package::Freebsd::Pkg, "load_current_resource" do
it "should return the port path for a valid port name" do
whereis = OpenStruct.new(:stdout => "bonnie++: /usr/ports/benchmarks/bonnie++")
- @provider.should_receive(:shell_out!).with("whereis -s bonnie++", :env => nil).and_return(whereis)
- @provider.stub(:port_name).and_return("bonnie++")
- @provider.port_path.should == "/usr/ports/benchmarks/bonnie++"
+ expect(@provider).to receive(:shell_out!).with("whereis -s bonnie++", :env => nil).and_return(whereis)
+ allow(@provider).to receive(:port_name).and_return("bonnie++")
+ expect(@provider.port_path).to eq("/usr/ports/benchmarks/bonnie++")
end
it "should return the version number when it is installed" do
pkg_info = OpenStruct.new(:stdout => "bonnie++-1.96")
- @provider.should_receive(:shell_out!).with('pkg_info -E "bonnie++*"', :env => nil, :returns => [0,1]).and_return(pkg_info)
- @provider.stub(:package_name).and_return("bonnie++")
- @provider.current_installed_version.should == "1.96"
+ expect(@provider).to receive(:shell_out!).with('pkg_info -E "bonnie++*"', :env => nil, :returns => [0,1]).and_return(pkg_info)
+ allow(@provider).to receive(:package_name).and_return("bonnie++")
+ expect(@provider.current_installed_version).to eq("1.96")
end
end
@@ -249,11 +249,11 @@ describe Chef::Provider::Package::Freebsd::Pkg, "load_current_resource" do
@current_resource = Chef::Resource::Package.new("perl5.8")
@provider = Chef::Provider::Package::Freebsd::Pkg.new(@new_resource, @run_context)
@provider.current_resource = @current_resource
- @provider.stub(:package_name).and_return("perl")
- @provider.stub(:latest_link_name).and_return("perl")
+ allow(@provider).to receive(:package_name).and_return("perl")
+ allow(@provider).to receive(:latest_link_name).and_return("perl")
cmd = OpenStruct.new(:status => true)
- @provider.should_receive(:shell_out!).with("pkg_add -r perl", :env => nil).and_return(cmd)
+ expect(@provider).to receive(:shell_out!).with("pkg_add -r perl", :env => nil).and_return(cmd)
@provider.install_package("perl5.8", "5.8.8_1")
end
@@ -263,11 +263,11 @@ describe Chef::Provider::Package::Freebsd::Pkg, "load_current_resource" do
@current_resource = Chef::Resource::Package.new("mysql50-server")
@provider = Chef::Provider::Package::Freebsd::Pkg.new(@new_resource, @run_context)
@provider.current_resource = @current_resource
- @provider.stub(:package_name).and_return("mysql-server")
- @provider.stub(:latest_link_name).and_return("mysql50-server")
+ allow(@provider).to receive(:package_name).and_return("mysql-server")
+ allow(@provider).to receive(:latest_link_name).and_return("mysql50-server")
cmd = OpenStruct.new(:status => true)
- @provider.should_receive(:shell_out!).with("pkg_add -r mysql50-server", :env=>nil).and_return(cmd)
+ expect(@provider).to receive(:shell_out!).with("pkg_add -r mysql50-server", :env=>nil).and_return(cmd)
@provider.install_package("mysql50-server", "5.0.45_1")
end
end
diff --git a/spec/unit/provider/package/freebsd/pkgng_spec.rb b/spec/unit/provider/package/freebsd/pkgng_spec.rb
index c3837a251b..d314735bf0 100644
--- a/spec/unit/provider/package/freebsd/pkgng_spec.rb
+++ b/spec/unit/provider/package/freebsd/pkgng_spec.rb
@@ -33,46 +33,46 @@ describe Chef::Provider::Package::Freebsd::Port do
describe "initialization" do
it "should create a current resource with the name of the new resource" do
- @provider.current_resource.is_a?(Chef::Resource::Package).should be_true
- @provider.current_resource.name.should == 'zsh'
+ expect(@provider.current_resource.is_a?(Chef::Resource::Package)).to be_true
+ expect(@provider.current_resource.name).to eq('zsh')
end
end
describe "loading current resource" do
before(:each) do
- @provider.stub(:current_installed_version)
- @provider.stub(:candidate_version)
+ allow(@provider).to receive(:current_installed_version)
+ allow(@provider).to receive(:candidate_version)
end
it "should set the package name" do
@provider.load_current_resource
- @provider.current_resource.package_name.should == "zsh"
+ expect(@provider.current_resource.package_name).to eq("zsh")
end
it "should set the current version" do
- @provider.should_receive(:current_installed_version).and_return("5.0.2")
+ expect(@provider).to receive(:current_installed_version).and_return("5.0.2")
@provider.load_current_resource
- @provider.current_resource.version.should == "5.0.2"
+ expect(@provider.current_resource.version).to eq("5.0.2")
end
it "should set the candidate version" do
- @provider.should_receive(:candidate_version).and_return("5.0.5")
+ expect(@provider).to receive(:candidate_version).and_return("5.0.5")
@provider.load_current_resource
- @provider.instance_variable_get(:"@candidate_version").should == "5.0.5"
+ expect(@provider.instance_variable_get(:"@candidate_version")).to eq("5.0.5")
end
end
describe "determining current installed version" do
before(:each) do
- @provider.stub(:supports_pkgng?)
+ allow(@provider).to receive(:supports_pkgng?)
@pkg_info = OpenStruct.new(:stdout => "zsh-3.1.7\nVersion : 3.1.7\n")
end
it "should query pkg database" do
- @provider.should_receive(:shell_out!).with('pkg info "zsh"', :env => nil, :returns => [0,70]).and_return(@pkg_info)
- @provider.current_installed_version.should == "3.1.7"
+ expect(@provider).to receive(:shell_out!).with('pkg info "zsh"', :env => nil, :returns => [0,70]).and_return(@pkg_info)
+ expect(@provider.current_installed_version).to eq("3.1.7")
end
end
@@ -80,20 +80,20 @@ describe Chef::Provider::Package::Freebsd::Port do
describe "determining candidate version" do
it "should query repository" do
pkg_query = OpenStruct.new(:stdout => "5.0.5\n", :exitstatus => 0)
- @provider.should_receive(:shell_out!).with("pkg rquery '%v' zsh", :env => nil).and_return(pkg_query)
- @provider.candidate_version.should == "5.0.5"
+ expect(@provider).to receive(:shell_out!).with("pkg rquery '%v' zsh", :env => nil).and_return(pkg_query)
+ expect(@provider.candidate_version).to eq("5.0.5")
end
it "should query specified repository when given option" do
@provider.new_resource.options('-r LocalMirror') # This requires LocalMirror repo configuration.
pkg_query = OpenStruct.new(:stdout => "5.0.3\n", :exitstatus => 0)
- @provider.should_receive(:shell_out!).with("pkg rquery -r LocalMirror '%v' zsh", :env => nil).and_return(pkg_query)
- @provider.candidate_version.should == "5.0.3"
+ expect(@provider).to receive(:shell_out!).with("pkg rquery -r LocalMirror '%v' zsh", :env => nil).and_return(pkg_query)
+ expect(@provider.candidate_version).to eq("5.0.3")
end
it "should return candidate version from file when given a file" do
@provider.new_resource.source("/nas/pkg/repo/zsh-5.0.1.txz")
- @provider.candidate_version.should == "5.0.1"
+ expect(@provider.candidate_version).to eq("5.0.1")
end
end
@@ -105,7 +105,7 @@ describe Chef::Provider::Package::Freebsd::Port do
it "should handle package source from file" do
@provider.new_resource.source("/nas/pkg/repo/zsh-5.0.1.txz")
- @provider.should_receive(:shell_out!).
+ expect(@provider).to receive(:shell_out!).
with("pkg add /nas/pkg/repo/zsh-5.0.1.txz", :env => { 'LC_ALL' => nil }).
and_return(@install_result)
@provider.install_package("zsh", "5.0.1")
@@ -113,21 +113,21 @@ describe Chef::Provider::Package::Freebsd::Port do
it "should handle package source over ftp or http" do
@provider.new_resource.source("http://repo.example.com/zsh-5.0.1.txz")
- @provider.should_receive(:shell_out!).
+ expect(@provider).to receive(:shell_out!).
with("pkg add http://repo.example.com/zsh-5.0.1.txz", :env => { 'LC_ALL' => nil }).
and_return(@install_result)
@provider.install_package("zsh", "5.0.1")
end
it "should handle a package name" do
- @provider.should_receive(:shell_out!).
+ expect(@provider).to receive(:shell_out!).
with("pkg install -y zsh", :env => { 'LC_ALL' => nil }).and_return(@install_result)
@provider.install_package("zsh", "5.0.1")
end
it "should handle a package name with a specified repo" do
@provider.new_resource.options('-r LocalMirror') # This requires LocalMirror repo configuration.
- @provider.should_receive(:shell_out!).
+ expect(@provider).to receive(:shell_out!).
with("pkg install -y -r LocalMirror zsh", :env => { 'LC_ALL' => nil }).and_return(@install_result)
@provider.install_package("zsh", "5.0.1")
end
@@ -140,14 +140,14 @@ describe Chef::Provider::Package::Freebsd::Port do
end
it "should call pkg delete" do
- @provider.should_receive(:shell_out!).
+ expect(@provider).to receive(:shell_out!).
with("pkg delete -y zsh-5.0.1", :env => nil).and_return(@install_result)
@provider.remove_package("zsh", "5.0.1")
end
it "should not include repo option in pkg delete" do
@provider.new_resource.options('-r LocalMirror') # This requires LocalMirror repo configuration.
- @provider.should_receive(:shell_out!).
+ expect(@provider).to receive(:shell_out!).
with("pkg delete -y zsh-5.0.1", :env => nil).and_return(@install_result)
@provider.remove_package("zsh", "5.0.1")
end
diff --git a/spec/unit/provider/package/freebsd/port_spec.rb b/spec/unit/provider/package/freebsd/port_spec.rb
index 8725e5440f..3085b16a92 100644
--- a/spec/unit/provider/package/freebsd/port_spec.rb
+++ b/spec/unit/provider/package/freebsd/port_spec.rb
@@ -33,33 +33,33 @@ describe Chef::Provider::Package::Freebsd::Port do
describe "initialization" do
it "should create a current resource with the name of the new resource" do
- @provider.current_resource.is_a?(Chef::Resource::Package).should be_true
- @provider.current_resource.name.should == 'zsh'
+ expect(@provider.current_resource.is_a?(Chef::Resource::Package)).to be_true
+ expect(@provider.current_resource.name).to eq('zsh')
end
end
describe "loading current resource" do
before(:each) do
- @provider.stub(:current_installed_version)
- @provider.stub(:candidate_version)
+ allow(@provider).to receive(:current_installed_version)
+ allow(@provider).to receive(:candidate_version)
end
it "should set the package name" do
@provider.load_current_resource
- @provider.current_resource.package_name.should == "zsh"
+ expect(@provider.current_resource.package_name).to eq("zsh")
end
it "should set the current version" do
- @provider.should_receive(:current_installed_version).and_return("5.0.2")
+ expect(@provider).to receive(:current_installed_version).and_return("5.0.2")
@provider.load_current_resource
- @provider.current_resource.version.should == "5.0.2"
+ expect(@provider.current_resource.version).to eq("5.0.2")
end
it "should set the candidate version" do
- @provider.should_receive(:candidate_version).and_return("5.0.5")
+ expect(@provider).to receive(:candidate_version).and_return("5.0.5")
@provider.load_current_resource
- @provider.instance_variable_get(:"@candidate_version").should == "5.0.5"
+ expect(@provider.instance_variable_get(:"@candidate_version")).to eq("5.0.5")
end
end
@@ -70,27 +70,27 @@ describe Chef::Provider::Package::Freebsd::Port do
end
it "should check 'pkg_info' if system uses pkg_* tools" do
- @new_resource.stub(:supports_pkgng?)
- @new_resource.should_receive(:supports_pkgng?).and_return(false)
- @provider.should_receive(:shell_out!).with('pkg_info -E "zsh*"', :env => nil, :returns => [0,1]).and_return(@pkg_info)
- @provider.current_installed_version.should == "3.1.7"
+ allow(@new_resource).to receive(:supports_pkgng?)
+ expect(@new_resource).to receive(:supports_pkgng?).and_return(false)
+ expect(@provider).to receive(:shell_out!).with('pkg_info -E "zsh*"', :env => nil, :returns => [0,1]).and_return(@pkg_info)
+ expect(@provider.current_installed_version).to eq("3.1.7")
end
it "should check 'pkg info' if make supports WITH_PKGNG if freebsd version is < 1000017" do
pkg_enabled = OpenStruct.new(:stdout => "yes\n")
[1000016, 1000000, 901503, 902506, 802511].each do |__freebsd_version|
@node.automatic_attrs[:os_version] = __freebsd_version
- @new_resource.should_receive(:shell_out!).with('make -V WITH_PKGNG', :env => nil).and_return(pkg_enabled)
- @provider.should_receive(:shell_out!).with('pkg info "zsh"', :env => nil, :returns => [0,70]).and_return(@pkg_info)
- @provider.current_installed_version.should == "3.1.7"
+ expect(@new_resource).to receive(:shell_out!).with('make -V WITH_PKGNG', :env => nil).and_return(pkg_enabled)
+ expect(@provider).to receive(:shell_out!).with('pkg info "zsh"', :env => nil, :returns => [0,70]).and_return(@pkg_info)
+ expect(@provider.current_installed_version).to eq("3.1.7")
end
end
it "should check 'pkg info' if the freebsd version is greater than or equal to 1000017" do
__freebsd_version = 1000017
@node.automatic_attrs[:os_version] = __freebsd_version
- @provider.should_receive(:shell_out!).with('pkg info "zsh"', :env => nil, :returns => [0,70]).and_return(@pkg_info)
- @provider.current_installed_version.should == "3.1.7"
+ expect(@provider).to receive(:shell_out!).with('pkg info "zsh"', :env => nil, :returns => [0,70]).and_return(@pkg_info)
+ expect(@provider.current_installed_version).to eq("3.1.7")
end
end
@@ -100,15 +100,15 @@ describe Chef::Provider::Package::Freebsd::Port do
end
it "should return candidate version if port exists" do
- ::File.stub(:exist?).with('/usr/ports/Makefile').and_return(true)
- @provider.stub(:port_dir).and_return('/usr/ports/shells/zsh')
- @provider.should_receive(:shell_out!).with("make -V PORTVERSION", :cwd => "/usr/ports/shells/zsh", :env => nil, :returns => [0,1]).
+ allow(::File).to receive(:exist?).with('/usr/ports/Makefile').and_return(true)
+ allow(@provider).to receive(:port_dir).and_return('/usr/ports/shells/zsh')
+ expect(@provider).to receive(:shell_out!).with("make -V PORTVERSION", :cwd => "/usr/ports/shells/zsh", :env => nil, :returns => [0,1]).
and_return(@port_version)
- @provider.candidate_version.should == "5.0.5"
+ expect(@provider.candidate_version).to eq("5.0.5")
end
it "should raise exception if ports tree not found" do
- ::File.stub(:exist?).with('/usr/ports/Makefile').and_return(false)
+ allow(::File).to receive(:exist?).with('/usr/ports/Makefile').and_return(false)
expect { @provider.candidate_version }.to raise_error(Chef::Exceptions::Package, "Ports collection could not be found")
end
end
@@ -116,24 +116,24 @@ describe Chef::Provider::Package::Freebsd::Port do
describe "determining port directory" do
it "should return name if package name is absolute path" do
- @provider.new_resource.stub(:package_name).and_return("/var/ports/shells/zsh")
- @provider.port_dir.should == "/var/ports/shells/zsh"
+ allow(@provider.new_resource).to receive(:package_name).and_return("/var/ports/shells/zsh")
+ expect(@provider.port_dir).to eq("/var/ports/shells/zsh")
end
it "should return full ports path given package name and category" do
- @provider.new_resource.stub(:package_name).and_return("shells/zsh")
- @provider.port_dir.should == "/usr/ports/shells/zsh"
+ allow(@provider.new_resource).to receive(:package_name).and_return("shells/zsh")
+ expect(@provider.port_dir).to eq("/usr/ports/shells/zsh")
end
it "should query system for path given just a name" do
whereis = OpenStruct.new(:stdout => "zsh: /usr/ports/shells/zsh\n")
- @provider.should_receive(:shell_out!).with("whereis -s zsh", :env => nil).and_return(whereis)
- @provider.port_dir.should == "/usr/ports/shells/zsh"
+ expect(@provider).to receive(:shell_out!).with("whereis -s zsh", :env => nil).and_return(whereis)
+ expect(@provider.port_dir).to eq("/usr/ports/shells/zsh")
end
it "should raise exception if not found" do
whereis = OpenStruct.new(:stdout => "zsh:\n")
- @provider.should_receive(:shell_out!).with("whereis -s zsh", :env => nil).and_return(whereis)
+ expect(@provider).to receive(:shell_out!).with("whereis -s zsh", :env => nil).and_return(whereis)
expect { @provider.port_dir }.to raise_error(Chef::Exceptions::Package, "Could not find port with the name zsh")
end
end
@@ -145,8 +145,8 @@ describe Chef::Provider::Package::Freebsd::Port do
end
it "should run make install in port directory" do
- @provider.stub(:port_dir).and_return("/usr/ports/shells/zsh")
- @provider.should_receive(:shell_out!).
+ allow(@provider).to receive(:port_dir).and_return("/usr/ports/shells/zsh")
+ expect(@provider).to receive(:shell_out!).
with("make -DBATCH install clean", :timeout => 1800, :cwd => "/usr/ports/shells/zsh", :env => nil).
and_return(@install_result)
@provider.install_package("zsh", "5.0.5")
@@ -160,8 +160,8 @@ describe Chef::Provider::Package::Freebsd::Port do
end
it "should run make deinstall in port directory" do
- @provider.stub(:port_dir).and_return("/usr/ports/shells/zsh")
- @provider.should_receive(:shell_out!).
+ allow(@provider).to receive(:port_dir).and_return("/usr/ports/shells/zsh")
+ expect(@provider).to receive(:shell_out!).
with("make deinstall", :timeout => 300, :cwd => "/usr/ports/shells/zsh", :env => nil).
and_return(@install_result)
@provider.remove_package("zsh", "5.0.5")
diff --git a/spec/unit/provider/package/ips_spec.rb b/spec/unit/provider/package/ips_spec.rb
index 07bca7f6d5..4e0afc46e9 100644
--- a/spec/unit/provider/package/ips_spec.rb
+++ b/spec/unit/provider/package/ips_spec.rb
@@ -28,7 +28,7 @@ describe Chef::Provider::Package::Ips do
@run_context = Chef::RunContext.new(@node, {}, @events)
@new_resource = Chef::Resource::Package.new("crypto/gnupg", @run_context)
@current_resource = Chef::Resource::Package.new("crypto/gnupg", @run_context)
- Chef::Resource::Package.stub(:new).and_return(@current_resource)
+ allow(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
@provider = Chef::Provider::Package::Ips.new(@new_resource, @run_context)
end
@@ -65,30 +65,30 @@ PKG_STATUS
context "when loading current resource" do
it "should create a current resource with the name of the new_resource" do
- @provider.should_receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local_output)
- @provider.should_receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote_output)
- Chef::Resource::Package.should_receive(:new).and_return(@current_resource)
+ expect(@provider).to receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local_output)
+ expect(@provider).to receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote_output)
+ expect(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
@provider.load_current_resource
end
it "should set the current resources package name to the new resources package name" do
- @provider.should_receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local_output)
- @provider.should_receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote_output)
+ expect(@provider).to receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local_output)
+ expect(@provider).to receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote_output)
@provider.load_current_resource
- @current_resource.package_name.should == @new_resource.package_name
+ expect(@current_resource.package_name).to eq(@new_resource.package_name)
end
it "should run pkg info with the package name" do
- @provider.should_receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local_output)
- @provider.should_receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote_output)
+ expect(@provider).to receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local_output)
+ expect(@provider).to receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote_output)
@provider.load_current_resource
end
it "should set the installed version to nil on the current resource if package state is not installed" do
- @provider.should_receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local_output)
- @provider.should_receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote_output)
+ expect(@provider).to receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local_output)
+ expect(@provider).to receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote_output)
@provider.load_current_resource
- @current_resource.version.should be_nil
+ expect(@current_resource.version).to be_nil
end
it "should set the installed version if package has one" do
@@ -108,28 +108,28 @@ Packaging Date: October 19, 2011 09:14:50 AM
Size: 8.07 MB
FMRI: pkg://solaris/crypto/gnupg@2.0.17,5.11-0.175.0.0.0.2.537:20111019T091450Z
INSTALLED
- @provider.should_receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local)
- @provider.should_receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote_output)
+ expect(@provider).to receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local)
+ expect(@provider).to receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote_output)
@provider.load_current_resource
- @current_resource.version.should == "2.0.17"
+ expect(@current_resource.version).to eq("2.0.17")
end
it "should return the current resource" do
- @provider.should_receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local_output)
- @provider.should_receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote_output)
- @provider.load_current_resource.should eql(@current_resource)
+ expect(@provider).to receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local_output)
+ expect(@provider).to receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote_output)
+ expect(@provider.load_current_resource).to eql(@current_resource)
end
end
context "when installing a package" do
it "should run pkg install with the package name and version" do
- @provider.should_receive(:shell_out).with("pkg install -q crypto/gnupg@2.0.17")
+ expect(@provider).to receive(:shell_out).with("pkg install -q crypto/gnupg@2.0.17")
@provider.install_package("crypto/gnupg", "2.0.17")
end
it "should run pkg install with the package name and version and options if specified" do
- @provider.should_receive(:shell_out).with("pkg --no-refresh install -q crypto/gnupg@2.0.17")
- @new_resource.stub(:options).and_return("--no-refresh")
+ expect(@provider).to receive(:shell_out).with("pkg --no-refresh install -q crypto/gnupg@2.0.17")
+ allow(@new_resource).to receive(:options).and_return("--no-refresh")
@provider.install_package("crypto/gnupg", "2.0.17")
end
@@ -147,11 +147,11 @@ Packaging Date: April 1, 2012 05:55:52 PM
Size: 2.57 MB
FMRI: pkg://omnios/security/sudo@1.8.4.1,5.11-0.151002:20120401T175552Z
PKG_STATUS
- @provider.should_receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local_output)
- @provider.should_receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote)
+ expect(@provider).to receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local_output)
+ expect(@provider).to receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote)
@provider.load_current_resource
- @current_resource.version.should be_nil
- @provider.candidate_version.should eql("1.8.4.1")
+ expect(@current_resource.version).to be_nil
+ expect(@provider.candidate_version).to eql("1.8.4.1")
end
it "should not upgrade the package if it is already installed" do
@@ -188,20 +188,20 @@ Packaging Date: October 19, 2011 09:14:50 AM
FMRI: pkg://solaris/crypto/gnupg@2.0.18,5.11-0.175.0.0.0.2.537:20111019T091450Z
REMOTE
- @provider.should_receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local)
- @provider.should_receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote)
+ expect(@provider).to receive(:shell_out).with("pkg info #{@new_resource.package_name}").and_return(local)
+ expect(@provider).to receive(:shell_out!).with("pkg info -r #{@new_resource.package_name}").and_return(remote)
@provider.load_current_resource
- @provider.should_receive(:install_package).exactly(0).times
+ expect(@provider).to receive(:install_package).exactly(0).times
@provider.action_install
end
context "when accept_license is true" do
before do
- @new_resource.stub(:accept_license).and_return(true)
+ allow(@new_resource).to receive(:accept_license).and_return(true)
end
it "should run pkg install with the --accept flag" do
- @provider.should_receive(:shell_out).with("pkg install -q --accept crypto/gnupg@2.0.17")
+ expect(@provider).to receive(:shell_out).with("pkg install -q --accept crypto/gnupg@2.0.17")
@provider.install_package("crypto/gnupg", "2.0.17")
end
end
@@ -209,20 +209,20 @@ REMOTE
context "when upgrading a package" do
it "should run pkg install with the package name and version" do
- @provider.should_receive(:shell_out).with("pkg install -q crypto/gnupg@2.0.17")
+ expect(@provider).to receive(:shell_out).with("pkg install -q crypto/gnupg@2.0.17")
@provider.upgrade_package("crypto/gnupg", "2.0.17")
end
end
context "when uninstalling a package" do
it "should run pkg uninstall with the package name and version" do
- @provider.should_receive(:shell_out!).with("pkg uninstall -q crypto/gnupg@2.0.17")
+ expect(@provider).to receive(:shell_out!).with("pkg uninstall -q crypto/gnupg@2.0.17")
@provider.remove_package("crypto/gnupg", "2.0.17")
end
it "should run pkg uninstall with the package name and version and options if specified" do
- @provider.should_receive(:shell_out!).with("pkg --no-refresh uninstall -q crypto/gnupg@2.0.17")
- @new_resource.stub(:options).and_return("--no-refresh")
+ expect(@provider).to receive(:shell_out!).with("pkg --no-refresh uninstall -q crypto/gnupg@2.0.17")
+ allow(@new_resource).to receive(:options).and_return("--no-refresh")
@provider.remove_package("crypto/gnupg", "2.0.17")
end
end
diff --git a/spec/unit/provider/package/macports_spec.rb b/spec/unit/provider/package/macports_spec.rb
index 535a5d2459..23a8233c66 100644
--- a/spec/unit/provider/package/macports_spec.rb
+++ b/spec/unit/provider/package/macports_spec.rb
@@ -27,7 +27,7 @@ describe Chef::Provider::Package::Macports do
@current_resource = Chef::Resource::Package.new("zsh")
@provider = Chef::Provider::Package::Macports.new(@new_resource, @run_context)
- Chef::Resource::Package.stub(:new).and_return(@current_resource)
+ allow(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
@status = double("Status", :exitstatus => 0)
@stdin = StringIO.new
@@ -38,91 +38,91 @@ describe Chef::Provider::Package::Macports do
describe "load_current_resource" do
it "should create a current resource with the name of the new_resource" do
- @provider.should_receive(:current_installed_version).and_return(nil)
- @provider.should_receive(:macports_candidate_version).and_return("4.2.7")
+ expect(@provider).to receive(:current_installed_version).and_return(nil)
+ expect(@provider).to receive(:macports_candidate_version).and_return("4.2.7")
@provider.load_current_resource
- @provider.current_resource.name.should == "zsh"
+ expect(@provider.current_resource.name).to eq("zsh")
end
it "should create a current resource with the version if the package is installed" do
- @provider.should_receive(:macports_candidate_version).and_return("4.2.7")
- @provider.should_receive(:current_installed_version).and_return("4.2.7")
+ expect(@provider).to receive(:macports_candidate_version).and_return("4.2.7")
+ expect(@provider).to receive(:current_installed_version).and_return("4.2.7")
@provider.load_current_resource
- @provider.candidate_version.should == "4.2.7"
+ expect(@provider.candidate_version).to eq("4.2.7")
end
it "should create a current resource with a nil version if the package is not installed" do
- @provider.should_receive(:current_installed_version).and_return(nil)
- @provider.should_receive(:macports_candidate_version).and_return("4.2.7")
+ expect(@provider).to receive(:current_installed_version).and_return(nil)
+ expect(@provider).to receive(:macports_candidate_version).and_return("4.2.7")
@provider.load_current_resource
- @provider.current_resource.version.should be_nil
+ expect(@provider.current_resource.version).to be_nil
end
it "should set a candidate version if one exists" do
- @provider.should_receive(:current_installed_version).and_return(nil)
- @provider.should_receive(:macports_candidate_version).and_return("4.2.7")
+ expect(@provider).to receive(:current_installed_version).and_return(nil)
+ expect(@provider).to receive(:macports_candidate_version).and_return("4.2.7")
@provider.load_current_resource
- @provider.candidate_version.should == "4.2.7"
+ expect(@provider.candidate_version).to eq("4.2.7")
end
end
describe "current_installed_version" do
it "should return the current version if the package is installed" do
- @stdout.should_receive(:read).and_return(<<EOF
+ expect(@stdout).to receive(:read).and_return(<<EOF
The following ports are currently installed:
openssl @0.9.8k_0 (active)
EOF
)
- @provider.should_receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
- @provider.current_installed_version.should == "0.9.8k_0"
+ expect(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@provider.current_installed_version).to eq("0.9.8k_0")
end
it "should return nil if a package is not currently installed" do
- @stdout.should_receive(:read).and_return(" \n")
- @provider.should_receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
- @provider.current_installed_version.should be_nil
+ expect(@stdout).to receive(:read).and_return(" \n")
+ expect(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@provider.current_installed_version).to be_nil
end
end
describe "macports_candidate_version" do
it "should return the latest available version of a given package" do
- @stdout.should_receive(:read).and_return("version: 4.2.7\n")
- @provider.should_receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
- @provider.macports_candidate_version.should == "4.2.7"
+ expect(@stdout).to receive(:read).and_return("version: 4.2.7\n")
+ expect(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@provider.macports_candidate_version).to eq("4.2.7")
end
it "should return nil if there is no version for a given package" do
- @stdout.should_receive(:read).and_return("Error: port fadsfadsfads not found\n")
- @provider.should_receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
- @provider.macports_candidate_version.should be_nil
+ expect(@stdout).to receive(:read).and_return("Error: port fadsfadsfads not found\n")
+ expect(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@provider.macports_candidate_version).to be_nil
end
end
describe "install_package" do
it "should run the port install command with the correct version" do
- @current_resource.should_receive(:version).and_return("4.1.6")
+ expect(@current_resource).to receive(:version).and_return("4.1.6")
@provider.current_resource = @current_resource
- @provider.should_receive(:shell_out!).with("port install zsh @4.2.7")
+ expect(@provider).to receive(:shell_out!).with("port install zsh @4.2.7")
@provider.install_package("zsh", "4.2.7")
end
it "should not do anything if a package already exists with the same version" do
- @current_resource.should_receive(:version).and_return("4.2.7")
+ expect(@current_resource).to receive(:version).and_return("4.2.7")
@provider.current_resource = @current_resource
- @provider.should_not_receive(:shell_out!)
+ expect(@provider).not_to receive(:shell_out!)
@provider.install_package("zsh", "4.2.7")
end
it "should add options to the port command when specified" do
- @current_resource.should_receive(:version).and_return("4.1.6")
+ expect(@current_resource).to receive(:version).and_return("4.1.6")
@provider.current_resource = @current_resource
- @new_resource.stub(:options).and_return("-f")
- @provider.should_receive(:shell_out!).with("port -f install zsh @4.2.7")
+ allow(@new_resource).to receive(:options).and_return("-f")
+ expect(@provider).to receive(:shell_out!).with("port -f install zsh @4.2.7")
@provider.install_package("zsh", "4.2.7")
end
@@ -130,72 +130,72 @@ EOF
describe "purge_package" do
it "should run the port uninstall command with the correct version" do
- @provider.should_receive(:shell_out!).with("port uninstall zsh @4.2.7")
+ expect(@provider).to receive(:shell_out!).with("port uninstall zsh @4.2.7")
@provider.purge_package("zsh", "4.2.7")
end
it "should purge the currently active version if no explicit version is passed in" do
- @provider.should_receive(:shell_out!).with("port uninstall zsh")
+ expect(@provider).to receive(:shell_out!).with("port uninstall zsh")
@provider.purge_package("zsh", nil)
end
it "should add options to the port command when specified" do
- @new_resource.stub(:options).and_return("-f")
- @provider.should_receive(:shell_out!).with("port -f uninstall zsh @4.2.7")
+ allow(@new_resource).to receive(:options).and_return("-f")
+ expect(@provider).to receive(:shell_out!).with("port -f uninstall zsh @4.2.7")
@provider.purge_package("zsh", "4.2.7")
end
end
describe "remove_package" do
it "should run the port deactivate command with the correct version" do
- @provider.should_receive(:shell_out!).with("port deactivate zsh @4.2.7")
+ expect(@provider).to receive(:shell_out!).with("port deactivate zsh @4.2.7")
@provider.remove_package("zsh", "4.2.7")
end
it "should remove the currently active version if no explicit version is passed in" do
- @provider.should_receive(:shell_out!).with("port deactivate zsh")
+ expect(@provider).to receive(:shell_out!).with("port deactivate zsh")
@provider.remove_package("zsh", nil)
end
it "should add options to the port command when specified" do
- @new_resource.stub(:options).and_return("-f")
- @provider.should_receive(:shell_out!).with("port -f deactivate zsh @4.2.7")
+ allow(@new_resource).to receive(:options).and_return("-f")
+ expect(@provider).to receive(:shell_out!).with("port -f deactivate zsh @4.2.7")
@provider.remove_package("zsh", "4.2.7")
end
end
describe "upgrade_package" do
it "should run the port upgrade command with the correct version" do
- @current_resource.should_receive(:version).at_least(:once).and_return("4.1.6")
+ expect(@current_resource).to receive(:version).at_least(:once).and_return("4.1.6")
@provider.current_resource = @current_resource
- @provider.should_receive(:shell_out!).with("port upgrade zsh @4.2.7")
+ expect(@provider).to receive(:shell_out!).with("port upgrade zsh @4.2.7")
@provider.upgrade_package("zsh", "4.2.7")
end
it "should not run the port upgrade command if the version is already installed" do
- @current_resource.should_receive(:version).at_least(:once).and_return("4.2.7")
+ expect(@current_resource).to receive(:version).at_least(:once).and_return("4.2.7")
@provider.current_resource = @current_resource
- @provider.should_not_receive(:shell_out!)
+ expect(@provider).not_to receive(:shell_out!)
@provider.upgrade_package("zsh", "4.2.7")
end
it "should call install_package if the package isn't currently installed" do
- @current_resource.should_receive(:version).at_least(:once).and_return(nil)
+ expect(@current_resource).to receive(:version).at_least(:once).and_return(nil)
@provider.current_resource = @current_resource
- @provider.should_receive(:install_package).and_return(true)
+ expect(@provider).to receive(:install_package).and_return(true)
@provider.upgrade_package("zsh", "4.2.7")
end
it "should add options to the port command when specified" do
- @new_resource.stub(:options).and_return("-f")
- @current_resource.should_receive(:version).at_least(:once).and_return("4.1.6")
+ allow(@new_resource).to receive(:options).and_return("-f")
+ expect(@current_resource).to receive(:version).at_least(:once).and_return("4.1.6")
@provider.current_resource = @current_resource
- @provider.should_receive(:shell_out!).with("port -f upgrade zsh @4.2.7")
+ expect(@provider).to receive(:shell_out!).with("port -f upgrade zsh @4.2.7")
@provider.upgrade_package("zsh", "4.2.7")
end
diff --git a/spec/unit/provider/package/pacman_spec.rb b/spec/unit/provider/package/pacman_spec.rb
index ed10513350..9fa5f9667c 100644
--- a/spec/unit/provider/package/pacman_spec.rb
+++ b/spec/unit/provider/package/pacman_spec.rb
@@ -28,8 +28,8 @@ describe Chef::Provider::Package::Pacman do
@status = double("Status", :exitstatus => 0)
@provider = Chef::Provider::Package::Pacman.new(@new_resource, @run_context)
- Chef::Resource::Package.stub(:new).and_return(@current_resource)
- @provider.stub(:popen4).and_return(@status)
+ allow(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
+ allow(@provider).to receive(:popen4).and_return(@status)
@stdin = StringIO.new
@stdout = StringIO.new(<<-ERR)
error: package "nano" not found
@@ -40,29 +40,29 @@ ERR
describe "when determining the current package state" do
it "should create a current resource with the name of the new_resource" do
- Chef::Resource::Package.should_receive(:new).and_return(@current_resource)
+ expect(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
@provider.load_current_resource
end
it "should set the current resources package name to the new resources package name" do
- @current_resource.should_receive(:package_name).with(@new_resource.package_name)
+ expect(@current_resource).to receive(:package_name).with(@new_resource.package_name)
@provider.load_current_resource
end
it "should run pacman query with the package name" do
- @provider.should_receive(:popen4).with("pacman -Qi #{@new_resource.package_name}").and_return(@status)
+ expect(@provider).to receive(:popen4).with("pacman -Qi #{@new_resource.package_name}").and_return(@status)
@provider.load_current_resource
end
it "should read stdout on pacman" do
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
- @stdout.should_receive(:each).and_return(true)
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@stdout).to receive(:each).and_return(true)
@provider.load_current_resource
end
it "should set the installed version to nil on the current resource if pacman installed version not exists" do
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
- @current_resource.should_receive(:version).with(nil).and_return(true)
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@current_resource).to receive(:version).with(nil).and_return(true)
@provider.load_current_resource
end
@@ -88,16 +88,16 @@ Install Reason : Explicitly installed
Install Script : Yes
Description : Pico editor clone with enhancements
PACMAN
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
@provider.load_current_resource
- @current_resource.version.should == "2.2.2-1"
+ expect(@current_resource.version).to eq("2.2.2-1")
end
it "should set the candidate version if pacman has one" do
- @stdout.stub(:each).and_yield("core nano 2.2.3-1")
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ allow(@stdout).to receive(:each).and_yield("core nano 2.2.3-1")
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
@provider.load_current_resource
- @provider.candidate_version.should eql("2.2.3-1")
+ expect(@provider.candidate_version).to eql("2.2.3-1")
end
it "should use pacman.conf to determine valid repo names for package versions" do
@@ -119,45 +119,45 @@ Include = /etc/pacman.d/mirrorlist
Include = /etc/pacman.d/mirrorlist
PACMAN_CONF
- ::File.stub(:exists?).with("/etc/pacman.conf").and_return(true)
- ::File.stub(:read).with("/etc/pacman.conf").and_return(@pacman_conf)
- @stdout.stub(:each).and_yield("customrepo nano 1.2.3-4")
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ allow(::File).to receive(:exists?).with("/etc/pacman.conf").and_return(true)
+ allow(::File).to receive(:read).with("/etc/pacman.conf").and_return(@pacman_conf)
+ allow(@stdout).to receive(:each).and_yield("customrepo nano 1.2.3-4")
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
@provider.load_current_resource
- @provider.candidate_version.should eql("1.2.3-4")
+ expect(@provider.candidate_version).to eql("1.2.3-4")
end
it "should raise an exception if pacman fails" do
- @status.should_receive(:exitstatus).and_return(2)
- lambda { @provider.load_current_resource }.should raise_error(Chef::Exceptions::Package)
+ expect(@status).to receive(:exitstatus).and_return(2)
+ expect { @provider.load_current_resource }.to raise_error(Chef::Exceptions::Package)
end
it "should not raise an exception if pacman succeeds" do
- @status.should_receive(:exitstatus).and_return(0)
- lambda { @provider.load_current_resource }.should_not raise_error
+ expect(@status).to receive(:exitstatus).and_return(0)
+ expect { @provider.load_current_resource }.not_to raise_error
end
it "should raise an exception if pacman does not return a candidate version" do
- @stdout.stub(:each).and_yield("")
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
- lambda { @provider.candidate_version }.should raise_error(Chef::Exceptions::Package)
+ allow(@stdout).to receive(:each).and_yield("")
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect { @provider.candidate_version }.to raise_error(Chef::Exceptions::Package)
end
it "should return the current resouce" do
- @provider.load_current_resource.should eql(@current_resource)
+ expect(@provider.load_current_resource).to eql(@current_resource)
end
end
describe Chef::Provider::Package::Pacman, "install_package" do
it "should run pacman install with the package name and version" do
- @provider.should_receive(:shell_out!).with("pacman --sync --noconfirm --noprogressbar nano")
+ expect(@provider).to receive(:shell_out!).with("pacman --sync --noconfirm --noprogressbar nano")
@provider.install_package("nano", "1.0")
end
it "should run pacman install with the package name and version and options if specified" do
- @provider.should_receive(:shell_out!).with("pacman --sync --noconfirm --noprogressbar --debug nano")
- @new_resource.stub(:options).and_return("--debug")
+ expect(@provider).to receive(:shell_out!).with("pacman --sync --noconfirm --noprogressbar --debug nano")
+ allow(@new_resource).to receive(:options).and_return("--debug")
@provider.install_package("nano", "1.0")
end
@@ -165,20 +165,20 @@ PACMAN_CONF
describe Chef::Provider::Package::Pacman, "upgrade_package" do
it "should run install_package with the name and version" do
- @provider.should_receive(:install_package).with("nano", "1.0")
+ expect(@provider).to receive(:install_package).with("nano", "1.0")
@provider.upgrade_package("nano", "1.0")
end
end
describe Chef::Provider::Package::Pacman, "remove_package" do
it "should run pacman remove with the package name" do
- @provider.should_receive(:shell_out!).with("pacman --remove --noconfirm --noprogressbar nano")
+ expect(@provider).to receive(:shell_out!).with("pacman --remove --noconfirm --noprogressbar nano")
@provider.remove_package("nano", "1.0")
end
it "should run pacman remove with the package name and options if specified" do
- @provider.should_receive(:shell_out!).with("pacman --remove --noconfirm --noprogressbar --debug nano")
- @new_resource.stub(:options).and_return("--debug")
+ expect(@provider).to receive(:shell_out!).with("pacman --remove --noconfirm --noprogressbar --debug nano")
+ allow(@new_resource).to receive(:options).and_return("--debug")
@provider.remove_package("nano", "1.0")
end
@@ -186,7 +186,7 @@ PACMAN_CONF
describe Chef::Provider::Package::Pacman, "purge_package" do
it "should run remove_package with the name and version" do
- @provider.should_receive(:remove_package).with("nano", "1.0")
+ expect(@provider).to receive(:remove_package).with("nano", "1.0")
@provider.purge_package("nano", "1.0")
end
diff --git a/spec/unit/provider/package/paludis_spec.rb b/spec/unit/provider/package/paludis_spec.rb
index 8387bb1252..4ed5dfc003 100644
--- a/spec/unit/provider/package/paludis_spec.rb
+++ b/spec/unit/provider/package/paludis_spec.rb
@@ -28,7 +28,7 @@ describe Chef::Provider::Package::Paludis do
@run_context = Chef::RunContext.new(@node, {}, @events)
@new_resource = Chef::Resource::Package.new("net/ntp")
@current_resource = Chef::Resource::Package.new("net/ntp")
- Chef::Resource::Package.stub(:new).and_return(@current_resource)
+ allow(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
@provider = Chef::Provider::Package::Paludis.new(@new_resource, @run_context)
@stdin = StringIO.new
@@ -47,19 +47,19 @@ PKG_STATUS
context "when loading current resource" do
it "should create a current resource with the name of the new_resource" do
- @provider.should_receive(:shell_out!).and_return(@shell_out)
- Chef::Resource::Package.should_receive(:new).and_return(@current_resource)
+ expect(@provider).to receive(:shell_out!).and_return(@shell_out)
+ expect(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
@provider.load_current_resource
end
it "should set the current resources package name to the new resources package name" do
- @provider.should_receive(:shell_out!).and_return(@shell_out)
- @current_resource.should_receive(:package_name).with(@new_resource.package_name)
+ expect(@provider).to receive(:shell_out!).and_return(@shell_out)
+ expect(@current_resource).to receive(:package_name).with(@new_resource.package_name)
@provider.load_current_resource
end
it "should run pkg info with the package name" do
- @provider.should_receive(:shell_out!).with("cave -L warning print-ids -M none -m \"#{@new_resource.package_name}\" -f \"%c/%p %v %r\n\"").and_return(@shell_out)
+ expect(@provider).to receive(:shell_out!).with("cave -L warning print-ids -M none -m \"#{@new_resource.package_name}\" -f \"%c/%p %v %r\n\"").and_return(@shell_out)
@provider.load_current_resource
end
@@ -72,28 +72,28 @@ user/ntp 0 accounts
user/ntp 0 installed-accounts
net/ntp 4.2.6_p5-r1 installed
INSTALLED
- @provider.should_receive(:shell_out!).and_return(@shell_out)
+ expect(@provider).to receive(:shell_out!).and_return(@shell_out)
@provider.load_current_resource
- @current_resource.version.should == "4.2.6_p5-r1"
- @provider.candidate_version.should eql("4.2.6_p5-r2")
+ expect(@current_resource.version).to eq("4.2.6_p5-r1")
+ expect(@provider.candidate_version).to eql("4.2.6_p5-r2")
end
it "should return the current resource" do
- @provider.should_receive(:shell_out!).and_return(@shell_out)
- @provider.load_current_resource.should eql(@current_resource)
+ expect(@provider).to receive(:shell_out!).and_return(@shell_out)
+ expect(@provider.load_current_resource).to eql(@current_resource)
end
end
context "when installing a package" do
it "should run pkg install with the package name and version" do
- @provider.should_receive(:shell_out!).with("cave -L warning resolve -x \"=net/ntp-4.2.6_p5-r2\"", {:timeout=>@new_resource.timeout})
+ expect(@provider).to receive(:shell_out!).with("cave -L warning resolve -x \"=net/ntp-4.2.6_p5-r2\"", {:timeout=>@new_resource.timeout})
@provider.install_package("net/ntp", "4.2.6_p5-r2")
end
it "should run pkg install with the package name and version and options if specified" do
- @provider.should_receive(:shell_out!).with("cave -L warning resolve -x --preserve-world \"=net/ntp-4.2.6_p5-r2\"", {:timeout=>@new_resource.timeout})
- @new_resource.stub(:options).and_return("--preserve-world")
+ expect(@provider).to receive(:shell_out!).with("cave -L warning resolve -x --preserve-world \"=net/ntp-4.2.6_p5-r2\"", {:timeout=>@new_resource.timeout})
+ allow(@new_resource).to receive(:options).and_return("--preserve-world")
@provider.install_package("net/ntp", "4.2.6_p5-r2")
end
@@ -102,7 +102,7 @@ INSTALLED
sys-process/lsof 4.87 arbor
sys-process/lsof 4.87 x86_64
PKG_STATUS
- @provider.should_receive(:shell_out!).with("cave -L warning resolve -x \"=sys-process/lsof-4.87\"", {:timeout=>@new_resource.timeout})
+ expect(@provider).to receive(:shell_out!).with("cave -L warning resolve -x \"=sys-process/lsof-4.87\"", {:timeout=>@new_resource.timeout})
@provider.install_package("sys-process/lsof", "4.87")
end
@@ -111,23 +111,23 @@ PKG_STATUS
sys-process/lsof 4.87 arbor
sys-process/lsof 4.87 x86_64
PKG_STATUS
- @provider.should_receive(:shell_out!).and_return(@shell_out)
+ expect(@provider).to receive(:shell_out!).and_return(@shell_out)
@provider.load_current_resource
- @current_resource.version.should be_nil
- @provider.candidate_version.should eql("4.87")
+ expect(@current_resource.version).to be_nil
+ expect(@provider.candidate_version).to eql("4.87")
end
end
context "when upgrading a package" do
it "should run pkg install with the package name and version" do
- @provider.should_receive(:shell_out!).with("cave -L warning resolve -x \"=net/ntp-4.2.6_p5-r2\"", {:timeout=>@new_resource.timeout})
+ expect(@provider).to receive(:shell_out!).with("cave -L warning resolve -x \"=net/ntp-4.2.6_p5-r2\"", {:timeout=>@new_resource.timeout})
@provider.upgrade_package("net/ntp", "4.2.6_p5-r2")
end
end
context "when uninstalling a package" do
it "should run pkg uninstall with the package name and version" do
- @provider.should_receive(:shell_out!).with("cave -L warning uninstall -x \"=net/ntp-4.2.6_p5-r2\"")
+ expect(@provider).to receive(:shell_out!).with("cave -L warning uninstall -x \"=net/ntp-4.2.6_p5-r2\"")
@provider.remove_package("net/ntp", "4.2.6_p5-r2")
end
diff --git a/spec/unit/provider/package/portage_spec.rb b/spec/unit/provider/package/portage_spec.rb
index 570f123168..f83eda45de 100644
--- a/spec/unit/provider/package/portage_spec.rb
+++ b/spec/unit/provider/package/portage_spec.rb
@@ -27,73 +27,73 @@ describe Chef::Provider::Package::Portage, "load_current_resource" do
@current_resource = Chef::Resource::Package.new("dev-util/git")
@provider = Chef::Provider::Package::Portage.new(@new_resource, @run_context)
- Chef::Resource::Package.stub(:new).and_return(@current_resource)
+ allow(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
end
describe "when determining the current state of the package" do
it "should create a current resource with the name of new_resource" do
- ::Dir.stub(:[]).with("/var/db/pkg/dev-util/git-*").and_return(["/var/db/pkg/dev-util/git-1.0.0"])
- Chef::Resource::Package.should_receive(:new).and_return(@current_resource)
+ allow(::Dir).to receive(:[]).with("/var/db/pkg/dev-util/git-*").and_return(["/var/db/pkg/dev-util/git-1.0.0"])
+ expect(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
@provider.load_current_resource
end
it "should set the current resource package name to the new resource package name" do
- ::Dir.stub(:[]).with("/var/db/pkg/dev-util/git-*").and_return(["/var/db/pkg/dev-util/git-1.0.0"])
- @current_resource.should_receive(:package_name).with(@new_resource.package_name)
+ allow(::Dir).to receive(:[]).with("/var/db/pkg/dev-util/git-*").and_return(["/var/db/pkg/dev-util/git-1.0.0"])
+ expect(@current_resource).to receive(:package_name).with(@new_resource.package_name)
@provider.load_current_resource
end
it "should return a current resource with the correct version if the package is found" do
- ::Dir.stub(:[]).with("/var/db/pkg/dev-util/git-*").and_return(["/var/db/pkg/dev-util/git-foobar-0.9", "/var/db/pkg/dev-util/git-1.0.0"])
+ allow(::Dir).to receive(:[]).with("/var/db/pkg/dev-util/git-*").and_return(["/var/db/pkg/dev-util/git-foobar-0.9", "/var/db/pkg/dev-util/git-1.0.0"])
@provider.load_current_resource
- @provider.current_resource.version.should == "1.0.0"
+ expect(@provider.current_resource.version).to eq("1.0.0")
end
it "should return a current resource with the correct version if the package is found with revision" do
- ::Dir.stub(:[]).with("/var/db/pkg/dev-util/git-*").and_return(["/var/db/pkg/dev-util/git-1.0.0-r1"])
+ allow(::Dir).to receive(:[]).with("/var/db/pkg/dev-util/git-*").and_return(["/var/db/pkg/dev-util/git-1.0.0-r1"])
@provider.load_current_resource
- @provider.current_resource.version.should == "1.0.0-r1"
+ expect(@provider.current_resource.version).to eq("1.0.0-r1")
end
it "should return a current resource with a nil version if the package is not found" do
- ::Dir.stub(:[]).with("/var/db/pkg/dev-util/git-*").and_return(["/var/db/pkg/dev-util/notgit-1.0.0"])
+ allow(::Dir).to receive(:[]).with("/var/db/pkg/dev-util/git-*").and_return(["/var/db/pkg/dev-util/notgit-1.0.0"])
@provider.load_current_resource
- @provider.current_resource.version.should be_nil
+ expect(@provider.current_resource.version).to be_nil
end
it "should return a package name match from /var/db/pkg/* if a category isn't specified and a match is found" do
- ::Dir.stub(:[]).with("/var/db/pkg/*/git-*").and_return(["/var/db/pkg/dev-util/git-foobar-0.9", "/var/db/pkg/dev-util/git-1.0.0"])
+ allow(::Dir).to receive(:[]).with("/var/db/pkg/*/git-*").and_return(["/var/db/pkg/dev-util/git-foobar-0.9", "/var/db/pkg/dev-util/git-1.0.0"])
@provider = Chef::Provider::Package::Portage.new(@new_resource_without_category, @run_context)
@provider.load_current_resource
- @provider.current_resource.version.should == "1.0.0"
+ expect(@provider.current_resource.version).to eq("1.0.0")
end
it "should return a current resource with a nil version if a category isn't specified and a name match from /var/db/pkg/* is not found" do
- ::Dir.stub(:[]).with("/var/db/pkg/*/git-*").and_return(["/var/db/pkg/dev-util/notgit-1.0.0"])
+ allow(::Dir).to receive(:[]).with("/var/db/pkg/*/git-*").and_return(["/var/db/pkg/dev-util/notgit-1.0.0"])
@provider = Chef::Provider::Package::Portage.new(@new_resource_without_category, @run_context)
@provider.load_current_resource
- @provider.current_resource.version.should be_nil
+ expect(@provider.current_resource.version).to be_nil
end
it "should throw an exception if a category isn't specified and multiple packages are found" do
- ::Dir.stub(:[]).with("/var/db/pkg/*/git-*").and_return(["/var/db/pkg/dev-util/git-1.0.0", "/var/db/pkg/funny-words/git-1.0.0"])
+ allow(::Dir).to receive(:[]).with("/var/db/pkg/*/git-*").and_return(["/var/db/pkg/dev-util/git-1.0.0", "/var/db/pkg/funny-words/git-1.0.0"])
@provider = Chef::Provider::Package::Portage.new(@new_resource_without_category, @run_context)
- lambda { @provider.load_current_resource }.should raise_error(Chef::Exceptions::Package)
+ expect { @provider.load_current_resource }.to raise_error(Chef::Exceptions::Package)
end
it "should return a current resource with a nil version if a category is specified and multiple packages are found" do
- ::Dir.stub(:[]).with("/var/db/pkg/dev-util/git-*").and_return(["/var/db/pkg/dev-util/git-1.0.0", "/var/db/pkg/funny-words/git-1.0.0"])
+ allow(::Dir).to receive(:[]).with("/var/db/pkg/dev-util/git-*").and_return(["/var/db/pkg/dev-util/git-1.0.0", "/var/db/pkg/funny-words/git-1.0.0"])
@provider = Chef::Provider::Package::Portage.new(@new_resource, @run_context)
@provider.load_current_resource
- @provider.current_resource.version.should be_nil
+ expect(@provider.current_resource.version).to be_nil
end
it "should return a current resource with a nil version if a category is not specified and multiple packages from the same category are found" do
- ::Dir.stub(:[]).with("/var/db/pkg/*/git-*").and_return(["/var/db/pkg/dev-util/git-1.0.0", "/var/db/pkg/dev-util/git-1.0.1"])
+ allow(::Dir).to receive(:[]).with("/var/db/pkg/*/git-*").and_return(["/var/db/pkg/dev-util/git-1.0.0", "/var/db/pkg/dev-util/git-1.0.1"])
@provider = Chef::Provider::Package::Portage.new(@new_resource_without_category, @run_context)
@provider.load_current_resource
- @provider.current_resource.version.should be_nil
+ expect(@provider.current_resource.version).to be_nil
end
end
@@ -102,14 +102,14 @@ describe Chef::Provider::Package::Portage, "load_current_resource" do
describe Chef::Provider::Package::Portage, "candidate_version" do
it "should return the candidate_version variable if already set" do
@provider.candidate_version = "1.0.0"
- @provider.should_not_receive(:popen4)
+ expect(@provider).not_to receive(:popen4)
@provider.candidate_version
end
it "should throw an exception if the exitstatus is not 0" do
@status = double("Status", :exitstatus => 1)
- @provider.stub(:popen4).and_return(@status)
- lambda { @provider.candidate_version }.should raise_error(Chef::Exceptions::Package)
+ allow(@provider).to receive(:popen4).and_return(@status)
+ expect { @provider.candidate_version }.to raise_error(Chef::Exceptions::Package)
end
it "should find the candidate_version if a category is specifed and there are no duplicates" do
@@ -144,8 +144,8 @@ Searching...
EOF
@status = double("Status", :exitstatus => 0)
- @provider.should_receive(:popen4).and_yield(nil, nil, StringIO.new(output), nil).and_return(@status)
- @provider.candidate_version.should == "1.6.0.6"
+ expect(@provider).to receive(:popen4).and_yield(nil, nil, StringIO.new(output), nil).and_return(@status)
+ expect(@provider.candidate_version).to eq("1.6.0.6")
end
it "should find the candidate_version if a category is not specifed and there are no duplicates" do
@@ -181,8 +181,8 @@ EOF
@status = double("Status", :exitstatus => 0)
@provider = Chef::Provider::Package::Portage.new(@new_resource_without_category, @run_context)
- @provider.should_receive(:popen4).and_yield(nil, nil, StringIO.new(output), nil).and_return(@status)
- @provider.candidate_version.should == "1.6.0.6"
+ expect(@provider).to receive(:popen4).and_yield(nil, nil, StringIO.new(output), nil).and_return(@status)
+ expect(@provider.candidate_version).to eq("1.6.0.6")
end
it "should throw an exception if a category is not specified and there are duplicates" do
@@ -226,8 +226,8 @@ EOF
@status = double("Status", :exitstatus => 0)
@provider = Chef::Provider::Package::Portage.new(@new_resource_without_category, @run_context)
- @provider.should_receive(:popen4).and_yield(nil, nil, StringIO.new(output), nil).and_return(@status)
- lambda { @provider.candidate_version }.should raise_error(Chef::Exceptions::Package)
+ expect(@provider).to receive(:popen4).and_yield(nil, nil, StringIO.new(output), nil).and_return(@status)
+ expect { @provider.candidate_version }.to raise_error(Chef::Exceptions::Package)
end
it "should find the candidate_version if a category is specifed and there are category duplicates" do
@@ -271,25 +271,25 @@ EOF
@status = double("Status", :exitstatus => 0)
@provider = Chef::Provider::Package::Portage.new(@new_resource, @run_context)
- @provider.should_receive(:popen4).and_yield(nil, nil, StringIO.new(output), nil).and_return(@status)
- @provider.candidate_version.should == "1.6.0.6"
+ expect(@provider).to receive(:popen4).and_yield(nil, nil, StringIO.new(output), nil).and_return(@status)
+ expect(@provider.candidate_version).to eq("1.6.0.6")
end
end
describe Chef::Provider::Package::Portage, "install_package" do
it "should install a normally versioned package using portage" do
- @provider.should_receive(:shell_out!).with("emerge -g --color n --nospinner --quiet =dev-util/git-1.0.0")
+ expect(@provider).to receive(:shell_out!).with("emerge -g --color n --nospinner --quiet =dev-util/git-1.0.0")
@provider.install_package("dev-util/git", "1.0.0")
end
it "should install a tilde versioned package using portage" do
- @provider.should_receive(:shell_out!).with("emerge -g --color n --nospinner --quiet ~dev-util/git-1.0.0")
+ expect(@provider).to receive(:shell_out!).with("emerge -g --color n --nospinner --quiet ~dev-util/git-1.0.0")
@provider.install_package("dev-util/git", "~1.0.0")
end
it "should add options to the emerge command when specified" do
- @provider.should_receive(:shell_out!).with("emerge -g --color n --nospinner --quiet --oneshot =dev-util/git-1.0.0")
- @new_resource.stub(:options).and_return("--oneshot")
+ expect(@provider).to receive(:shell_out!).with("emerge -g --color n --nospinner --quiet --oneshot =dev-util/git-1.0.0")
+ allow(@new_resource).to receive(:options).and_return("--oneshot")
@provider.install_package("dev-util/git", "1.0.0")
end
@@ -297,12 +297,12 @@ EOF
describe Chef::Provider::Package::Portage, "remove_package" do
it "should un-emerge the package with no version specified" do
- @provider.should_receive(:shell_out!).with("emerge --unmerge --color n --nospinner --quiet dev-util/git")
+ expect(@provider).to receive(:shell_out!).with("emerge --unmerge --color n --nospinner --quiet dev-util/git")
@provider.remove_package("dev-util/git", nil)
end
it "should un-emerge the package with a version specified" do
- @provider.should_receive(:shell_out!).with("emerge --unmerge --color n --nospinner --quiet =dev-util/git-1.0.0")
+ expect(@provider).to receive(:shell_out!).with("emerge --unmerge --color n --nospinner --quiet =dev-util/git-1.0.0")
@provider.remove_package("dev-util/git", "1.0.0")
end
end
diff --git a/spec/unit/provider/package/rpm_spec.rb b/spec/unit/provider/package/rpm_spec.rb
index 9a96d829b8..2aceee59a5 100644
--- a/spec/unit/provider/package/rpm_spec.rb
+++ b/spec/unit/provider/package/rpm_spec.rb
@@ -30,55 +30,55 @@ describe Chef::Provider::Package::Rpm do
@provider = Chef::Provider::Package::Rpm.new(@new_resource, @run_context)
@status = double("Status", :exitstatus => 0)
- ::File.stub(:exists?).and_return(true)
+ allow(::File).to receive(:exists?).and_return(true)
end
describe "when determining the current state of the package" do
it "should create a current resource with the name of new_resource" do
- @provider.stub(:popen4).and_return(@status)
+ allow(@provider).to receive(:popen4).and_return(@status)
@provider.load_current_resource
- @provider.current_resource.name.should == "ImageMagick-c++"
+ expect(@provider.current_resource.name).to eq("ImageMagick-c++")
end
it "should set the current reource package name to the new resource package name" do
- @provider.stub(:popen4).and_return(@status)
+ allow(@provider).to receive(:popen4).and_return(@status)
@provider.load_current_resource
- @provider.current_resource.package_name.should == 'ImageMagick-c++'
+ expect(@provider.current_resource.package_name).to eq('ImageMagick-c++')
end
it "should raise an exception if a source is supplied but not found" do
- ::File.stub(:exists?).and_return(false)
- lambda { @provider.run_action(:any) }.should raise_error(Chef::Exceptions::Package)
+ allow(::File).to receive(:exists?).and_return(false)
+ expect { @provider.run_action(:any) }.to raise_error(Chef::Exceptions::Package)
end
it "should get the source package version from rpm if provided" do
@stdout = StringIO.new("ImageMagick-c++ 6.5.4.7-7.el6_5")
- @provider.should_receive(:popen4).with("rpm -qp --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
- @provider.should_receive(:popen4).with("rpm -q --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' ImageMagick-c++").and_return(@status)
+ expect(@provider).to receive(:popen4).with("rpm -qp --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@provider).to receive(:popen4).with("rpm -q --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' ImageMagick-c++").and_return(@status)
@provider.load_current_resource
- @provider.current_resource.package_name.should == "ImageMagick-c++"
- @provider.new_resource.version.should == "6.5.4.7-7.el6_5"
+ expect(@provider.current_resource.package_name).to eq("ImageMagick-c++")
+ expect(@provider.new_resource.version).to eq("6.5.4.7-7.el6_5")
end
it "should return the current version installed if found by rpm" do
@stdout = StringIO.new("ImageMagick-c++ 6.5.4.7-7.el6_5")
- @provider.should_receive(:popen4).with("rpm -qp --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm").and_return(@status)
- @provider.should_receive(:popen4).with("rpm -q --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' ImageMagick-c++").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@provider).to receive(:popen4).with("rpm -qp --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm").and_return(@status)
+ expect(@provider).to receive(:popen4).with("rpm -q --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' ImageMagick-c++").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
@provider.load_current_resource
- @provider.current_resource.version.should == "6.5.4.7-7.el6_5"
+ expect(@provider.current_resource.version).to eq("6.5.4.7-7.el6_5")
end
it "should raise an exception if the source is not set but we are installing" do
new_resource = Chef::Resource::Package.new("ImageMagick-c++")
provider = Chef::Provider::Package::Rpm.new(new_resource, @run_context)
- lambda { provider.run_action(:any) }.should raise_error(Chef::Exceptions::Package)
+ expect { provider.run_action(:any) }.to raise_error(Chef::Exceptions::Package)
end
it "should raise an exception if rpm fails to run" do
status = double("Status", :exitstatus => -1)
- @provider.stub(:popen4).and_return(status)
- lambda { @provider.run_action(:any) }.should raise_error(Chef::Exceptions::Package)
+ allow(@provider).to receive(:popen4).and_return(status)
+ expect { @provider.run_action(:any) }.to raise_error(Chef::Exceptions::Package)
end
it "should not detect the package name as version when not installed" do
@@ -87,10 +87,10 @@ describe Chef::Provider::Package::Rpm do
@new_resource = Chef::Resource::Package.new("openssh-askpass")
@new_resource.source 'openssh-askpass'
@provider = Chef::Provider::Package::Rpm.new(@new_resource, @run_context)
- @provider.should_receive(:popen4).with("rpm -qp --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' openssh-askpass").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
- @provider.should_receive(:popen4).with("rpm -q --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' openssh-askpass").and_return(@status)
+ expect(@provider).to receive(:popen4).with("rpm -qp --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' openssh-askpass").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@provider).to receive(:popen4).with("rpm -q --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' openssh-askpass").and_return(@status)
@provider.load_current_resource
- @provider.current_resource.version.should be_nil
+ expect(@provider.current_resource.version).to be_nil
end
end
@@ -102,54 +102,54 @@ describe Chef::Provider::Package::Rpm do
describe "when installing or upgrading" do
it "should run rpm -i with the package source to install" do
- @provider.should_receive(:shell_out!).with("rpm -i /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
+ expect(@provider).to receive(:shell_out!).with("rpm -i /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
@provider.install_package("ImageMagick-c++", "6.5.4.7-7.el6_5")
end
it "should run rpm -U with the package source to upgrade" do
@current_resource.version("21.4-19.el5")
- @provider.should_receive(:shell_out!).with("rpm -U /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
+ expect(@provider).to receive(:shell_out!).with("rpm -U /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
@provider.upgrade_package("ImageMagick-c++", "6.5.4.7-7.el6_5")
end
it "should install package if missing and set to upgrade" do
@current_resource.version("ImageMagick-c++")
- @provider.should_receive(:shell_out!).with("rpm -U /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
+ expect(@provider).to receive(:shell_out!).with("rpm -U /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
@provider.upgrade_package("ImageMagick-c++", "6.5.4.7-7.el6_5")
end
it "should install from a path when the package is a path and the source is nil" do
@new_resource = Chef::Resource::Package.new("/tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
@provider = Chef::Provider::Package::Rpm.new(@new_resource, @run_context)
- @new_resource.source.should == "/tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm"
+ expect(@new_resource.source).to eq("/tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
@current_resource = Chef::Resource::Package.new("ImageMagick-c++")
@provider.current_resource = @current_resource
- @provider.should_receive(:shell_out!).with("rpm -i /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
+ expect(@provider).to receive(:shell_out!).with("rpm -i /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
@provider.install_package("/tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm", "6.5.4.7-7.el6_5")
end
it "should uprgrade from a path when the package is a path and the source is nil" do
@new_resource = Chef::Resource::Package.new("/tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
@provider = Chef::Provider::Package::Rpm.new(@new_resource, @run_context)
- @new_resource.source.should == "/tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm"
+ expect(@new_resource.source).to eq("/tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
@current_resource = Chef::Resource::Package.new("ImageMagick-c++")
@current_resource.version("21.4-19.el5")
@provider.current_resource = @current_resource
- @provider.should_receive(:shell_out!).with("rpm -U /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
+ expect(@provider).to receive(:shell_out!).with("rpm -U /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
@provider.upgrade_package("/tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm", "6.5.4.7-7.el6_5")
end
it "installs with custom options specified in the resource" do
@provider.candidate_version = '11'
@new_resource.options("--dbpath /var/lib/rpm")
- @provider.should_receive(:shell_out!).with("rpm --dbpath /var/lib/rpm -i /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
+ expect(@provider).to receive(:shell_out!).with("rpm --dbpath /var/lib/rpm -i /tmp/ImageMagick-c++-6.5.4.7-7.el6_5.x86_64.rpm")
@provider.install_package(@new_resource.name, @provider.candidate_version)
end
end
describe "when removing the package" do
it "should run rpm -e to remove the package" do
- @provider.should_receive(:shell_out!).with("rpm -e ImageMagick-c++-6.5.4.7-7.el6_5")
+ expect(@provider).to receive(:shell_out!).with("rpm -e ImageMagick-c++-6.5.4.7-7.el6_5")
@provider.remove_package("ImageMagick-c++", "6.5.4.7-7.el6_5")
end
end
diff --git a/spec/unit/provider/package/rubygems_spec.rb b/spec/unit/provider/package/rubygems_spec.rb
index f4d0cebf62..bce0054220 100644
--- a/spec/unit/provider/package/rubygems_spec.rb
+++ b/spec/unit/provider/package/rubygems_spec.rb
@@ -39,23 +39,23 @@ describe Chef::Provider::Package::Rubygems::CurrentGemEnvironment do
end
it "determines the gem paths from the in memory rubygems" do
- @gem_env.gem_paths.should == Gem.path
+ expect(@gem_env.gem_paths).to eq(Gem.path)
end
it "determines the installed versions of gems from Gem.source_index" do
gems = [gemspec('rspec-core', Gem::Version.new('1.2.9')), gemspec('rspec-core', Gem::Version.new('1.3.0'))]
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.8.0')
- Gem::Specification.should_receive(:find_all_by_name).with('rspec-core', Gem::Dependency.new('rspec-core').requirement).and_return(gems)
+ expect(Gem::Specification).to receive(:find_all_by_name).with('rspec-core', Gem::Dependency.new('rspec-core').requirement).and_return(gems)
else
- Gem.source_index.should_receive(:search).with(Gem::Dependency.new('rspec-core', nil)).and_return(gems)
+ expect(Gem.source_index).to receive(:search).with(Gem::Dependency.new('rspec-core', nil)).and_return(gems)
end
- @gem_env.installed_versions(Gem::Dependency.new('rspec-core', nil)).should == gems
+ expect(@gem_env.installed_versions(Gem::Dependency.new('rspec-core', nil))).to eq(gems)
end
it "determines the installed versions of gems from the source index (part2: the unmockening)" do
expected = ['rspec-core', Gem::Version.new(RSpec::Core::Version::STRING)]
actual = @gem_env.installed_versions(Gem::Dependency.new('rspec-core', nil)).map { |spec| [spec.name, spec.version] }
- actual.should include(expected)
+ expect(actual).to include(expected)
end
it "yields to a block with an alternate source list set" do
@@ -68,8 +68,8 @@ describe Chef::Provider::Package::Rubygems::CurrentGemEnvironment do
end
rescue RuntimeError
end
- sources_in_block.should == %w{http://gems.example.org}
- Gem.sources.should == normal_sources
+ expect(sources_in_block).to eq(%w{http://gems.example.org})
+ expect(Gem.sources).to eq(normal_sources)
end
it "it doesnt alter the gem sources if none are set" do
@@ -82,29 +82,29 @@ describe Chef::Provider::Package::Rubygems::CurrentGemEnvironment do
end
rescue RuntimeError
end
- sources_in_block.should == normal_sources
- Gem.sources.should == normal_sources
+ expect(sources_in_block).to eq(normal_sources)
+ expect(Gem.sources).to eq(normal_sources)
end
it "finds a matching gem candidate version" do
dep = Gem::Dependency.new('rspec', '>= 0')
dep_installer = Gem::DependencyInstaller.new
- @gem_env.stub(:dependency_installer).and_return(dep_installer)
+ allow(@gem_env).to receive(:dependency_installer).and_return(dep_installer)
latest = [[gemspec("rspec", Gem::Version.new("1.3.0")), "http://rubygems.org/"]]
- dep_installer.should_receive(:find_gems_with_sources).with(dep).and_return(latest)
- @gem_env.candidate_version_from_remote(Gem::Dependency.new('rspec', '>= 0')).should == Gem::Version.new('1.3.0')
+ expect(dep_installer).to receive(:find_gems_with_sources).with(dep).and_return(latest)
+ expect(@gem_env.candidate_version_from_remote(Gem::Dependency.new('rspec', '>= 0'))).to eq(Gem::Version.new('1.3.0'))
end
it "finds a matching gem candidate version on rubygems 2.0.0+" do
dep = Gem::Dependency.new('rspec', '>= 0')
dep_installer = Gem::DependencyInstaller.new
- @gem_env.stub(:dependency_installer).and_return(dep_installer)
+ allow(@gem_env).to receive(:dependency_installer).and_return(dep_installer)
best_gem = double("best gem match", :spec => gemspec("rspec", Gem::Version.new("1.3.0")), :source => "https://rubygems.org")
available_set = double("Gem::AvailableSet test double")
- available_set.should_receive(:pick_best!)
- available_set.should_receive(:set).and_return([best_gem])
- dep_installer.should_receive(:find_gems_with_sources).with(dep).and_return(available_set)
- @gem_env.candidate_version_from_remote(Gem::Dependency.new('rspec', '>= 0')).should == Gem::Version.new('1.3.0')
+ expect(available_set).to receive(:pick_best!)
+ expect(available_set).to receive(:set).and_return([best_gem])
+ expect(dep_installer).to receive(:find_gems_with_sources).with(dep).and_return(available_set)
+ expect(@gem_env.candidate_version_from_remote(Gem::Dependency.new('rspec', '>= 0'))).to eq(Gem::Version.new('1.3.0'))
end
context "when rubygems was upgraded from 1.8->2.0" do
@@ -121,7 +121,7 @@ describe Chef::Provider::Package::Rubygems::CurrentGemEnvironment do
Gem.const_set(:Format, Object.new)
@remove_gem_format = true
end
- Gem::Package.stub(:respond_to?).with(:open).and_return(false)
+ allow(Gem::Package).to receive(:respond_to?).with(:open).and_return(false)
end
after do
@@ -132,8 +132,8 @@ describe Chef::Provider::Package::Rubygems::CurrentGemEnvironment do
it "finds a matching gem candidate version on rubygems 2.0+ with some rubygems 1.8 code loaded" do
package = double("Gem::Package", :spec => "a gemspec from package")
- Gem::Package.should_receive(:new).with("/path/to/package.gem").and_return(package)
- @gem_env.spec_from_file("/path/to/package.gem").should == "a gemspec from package"
+ expect(Gem::Package).to receive(:new).with("/path/to/package.gem").and_return(package)
+ expect(@gem_env.spec_from_file("/path/to/package.gem")).to eq("a gemspec from package")
end
end
@@ -142,54 +142,54 @@ describe Chef::Provider::Package::Rubygems::CurrentGemEnvironment do
dep = Gem::Dependency.new('rspec', '>= 0')
latest = []
dep_installer = Gem::DependencyInstaller.new
- @gem_env.stub(:dependency_installer).and_return(dep_installer)
- dep_installer.should_receive(:find_gems_with_sources).with(dep).and_return(latest)
- @gem_env.candidate_version_from_remote(Gem::Dependency.new('rspec', '>= 0')).should be_nil
+ allow(@gem_env).to receive(:dependency_installer).and_return(dep_installer)
+ expect(dep_installer).to receive(:find_gems_with_sources).with(dep).and_return(latest)
+ expect(@gem_env.candidate_version_from_remote(Gem::Dependency.new('rspec', '>= 0'))).to be_nil
end
it "finds a matching candidate version from a .gem file when the path to the gem is supplied" do
location = CHEF_SPEC_DATA + '/gems/chef-integration-test-0.1.0.gem'
- @gem_env.candidate_version_from_file(Gem::Dependency.new('chef-integration-test', '>= 0'), location).should == Gem::Version.new('0.1.0')
- @gem_env.candidate_version_from_file(Gem::Dependency.new('chef-integration-test', '>= 0.2.0'), location).should be_nil
+ expect(@gem_env.candidate_version_from_file(Gem::Dependency.new('chef-integration-test', '>= 0'), location)).to eq(Gem::Version.new('0.1.0'))
+ expect(@gem_env.candidate_version_from_file(Gem::Dependency.new('chef-integration-test', '>= 0.2.0'), location)).to be_nil
end
it "finds a matching gem from a specific gemserver when explicit sources are given" do
dep = Gem::Dependency.new('rspec', '>= 0')
latest = [[gemspec("rspec", Gem::Version.new("1.3.0")), "http://rubygems.org/"]]
- @gem_env.should_receive(:with_gem_sources).with('http://gems.example.com').and_yield
+ expect(@gem_env).to receive(:with_gem_sources).with('http://gems.example.com').and_yield
dep_installer = Gem::DependencyInstaller.new
- @gem_env.stub(:dependency_installer).and_return(dep_installer)
- dep_installer.should_receive(:find_gems_with_sources).with(dep).and_return(latest)
- @gem_env.candidate_version_from_remote(Gem::Dependency.new('rspec', '>=0'), 'http://gems.example.com').should == Gem::Version.new('1.3.0')
+ allow(@gem_env).to receive(:dependency_installer).and_return(dep_installer)
+ expect(dep_installer).to receive(:find_gems_with_sources).with(dep).and_return(latest)
+ expect(@gem_env.candidate_version_from_remote(Gem::Dependency.new('rspec', '>=0'), 'http://gems.example.com')).to eq(Gem::Version.new('1.3.0'))
end
it "installs a gem with a hash of options for the dependency installer" do
dep_installer = Gem::DependencyInstaller.new
- @gem_env.should_receive(:dependency_installer).with(:install_dir => '/foo/bar').and_return(dep_installer)
- @gem_env.should_receive(:with_gem_sources).with('http://gems.example.com').and_yield
- dep_installer.should_receive(:install).with(Gem::Dependency.new('rspec', '>= 0'))
+ expect(@gem_env).to receive(:dependency_installer).with(:install_dir => '/foo/bar').and_return(dep_installer)
+ expect(@gem_env).to receive(:with_gem_sources).with('http://gems.example.com').and_yield
+ expect(dep_installer).to receive(:install).with(Gem::Dependency.new('rspec', '>= 0'))
@gem_env.install(Gem::Dependency.new('rspec', '>= 0'), :install_dir => '/foo/bar', :sources => ['http://gems.example.com'])
end
it "builds an uninstaller for a gem with options set to avoid requiring user input" do
# default options for uninstaller should be:
# :ignore => true, :executables => true
- Gem::Uninstaller.should_receive(:new).with('rspec', :ignore => true, :executables => true)
+ expect(Gem::Uninstaller).to receive(:new).with('rspec', :ignore => true, :executables => true)
@gem_env.uninstaller('rspec')
end
it "uninstalls all versions of a gem" do
uninstaller = double('gem uninstaller')
- uninstaller.should_receive(:uninstall)
- @gem_env.should_receive(:uninstaller).with('rspec', :all => true).and_return(uninstaller)
+ expect(uninstaller).to receive(:uninstall)
+ expect(@gem_env).to receive(:uninstaller).with('rspec', :all => true).and_return(uninstaller)
@gem_env.uninstall('rspec')
end
it "uninstalls a specific version of a gem" do
uninstaller = double('gem uninstaller')
- uninstaller.should_receive(:uninstall)
- @gem_env.should_receive(:uninstaller).with('rspec', :version => '1.2.3').and_return(uninstaller)
+ expect(uninstaller).to receive(:uninstall)
+ expect(@gem_env).to receive(:uninstaller).with('rspec', :version => '1.2.3').and_return(uninstaller)
@gem_env.uninstall('rspec', '1.2.3')
end
@@ -207,35 +207,35 @@ describe Chef::Provider::Package::Rubygems::AlternateGemEnvironment do
it "determines the gem paths from shelling out to gem env" do
gem_env_output = ['/path/to/gems', '/another/path/to/gems'].join(File::PATH_SEPARATOR)
shell_out_result = OpenStruct.new(:stdout => gem_env_output)
- @gem_env.should_receive(:shell_out!).with('/usr/weird/bin/gem env gempath').and_return(shell_out_result)
- @gem_env.gem_paths.should == ['/path/to/gems', '/another/path/to/gems']
+ expect(@gem_env).to receive(:shell_out!).with('/usr/weird/bin/gem env gempath').and_return(shell_out_result)
+ expect(@gem_env.gem_paths).to eq(['/path/to/gems', '/another/path/to/gems'])
end
it "caches the gempaths by gem_binary" do
gem_env_output = ['/path/to/gems', '/another/path/to/gems'].join(File::PATH_SEPARATOR)
shell_out_result = OpenStruct.new(:stdout => gem_env_output)
- @gem_env.should_receive(:shell_out!).with('/usr/weird/bin/gem env gempath').and_return(shell_out_result)
+ expect(@gem_env).to receive(:shell_out!).with('/usr/weird/bin/gem env gempath').and_return(shell_out_result)
expected = ['/path/to/gems', '/another/path/to/gems']
- @gem_env.gem_paths.should == ['/path/to/gems', '/another/path/to/gems']
- Chef::Provider::Package::Rubygems::AlternateGemEnvironment.gempath_cache['/usr/weird/bin/gem'].should == expected
+ expect(@gem_env.gem_paths).to eq(['/path/to/gems', '/another/path/to/gems'])
+ expect(Chef::Provider::Package::Rubygems::AlternateGemEnvironment.gempath_cache['/usr/weird/bin/gem']).to eq(expected)
end
it "uses the cached result for gem paths when available" do
gem_env_output = ['/path/to/gems', '/another/path/to/gems'].join(File::PATH_SEPARATOR)
shell_out_result = OpenStruct.new(:stdout => gem_env_output)
- @gem_env.should_not_receive(:shell_out!)
+ expect(@gem_env).not_to receive(:shell_out!)
expected = ['/path/to/gems', '/another/path/to/gems']
Chef::Provider::Package::Rubygems::AlternateGemEnvironment.gempath_cache['/usr/weird/bin/gem']= expected
- @gem_env.gem_paths.should == ['/path/to/gems', '/another/path/to/gems']
+ expect(@gem_env.gem_paths).to eq(['/path/to/gems', '/another/path/to/gems'])
end
it "builds the gems source index from the gem paths" do
- @gem_env.stub(:gem_paths).and_return(['/path/to/gems', '/another/path/to/gems'])
+ allow(@gem_env).to receive(:gem_paths).and_return(['/path/to/gems', '/another/path/to/gems'])
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.8.0')
@gem_env.gem_specification
- Gem::Specification.dirs.should == [ '/path/to/gems/specifications', '/another/path/to/gems/specifications' ]
+ expect(Gem::Specification.dirs).to eq([ '/path/to/gems/specifications', '/another/path/to/gems/specifications' ])
else
- Gem::SourceIndex.should_receive(:from_gems_in).with('/path/to/gems/specifications', '/another/path/to/gems/specifications')
+ expect(Gem::SourceIndex).to receive(:from_gems_in).with('/path/to/gems/specifications', '/another/path/to/gems/specifications')
@gem_env.gem_source_index
end
end
@@ -244,17 +244,17 @@ describe Chef::Provider::Package::Rubygems::AlternateGemEnvironment do
gems = [gemspec('rspec', Gem::Version.new('1.2.9')), gemspec('rspec', Gem::Version.new('1.3.0'))]
rspec_dep = Gem::Dependency.new('rspec', nil)
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.8.0')
- @gem_env.stub(:gem_specification).and_return(Gem::Specification)
- @gem_env.gem_specification.should_receive(:find_all_by_name).with(rspec_dep.name, rspec_dep.requirement).and_return(gems)
+ allow(@gem_env).to receive(:gem_specification).and_return(Gem::Specification)
+ expect(@gem_env.gem_specification).to receive(:find_all_by_name).with(rspec_dep.name, rspec_dep.requirement).and_return(gems)
else
- @gem_env.stub(:gem_source_index).and_return(Gem.source_index)
- @gem_env.gem_source_index.should_receive(:search).with(rspec_dep).and_return(gems)
+ allow(@gem_env).to receive(:gem_source_index).and_return(Gem.source_index)
+ expect(@gem_env.gem_source_index).to receive(:search).with(rspec_dep).and_return(gems)
end
- @gem_env.installed_versions(Gem::Dependency.new('rspec', nil)).should == gems
+ expect(@gem_env.installed_versions(Gem::Dependency.new('rspec', nil))).to eq(gems)
end
it "determines the installed versions of gems from the source index (part2: the unmockening)" do
- $stdout.stub(:write)
+ allow($stdout).to receive(:write)
path_to_gem = if windows?
`where gem`.split[1]
else
@@ -264,7 +264,7 @@ describe Chef::Provider::Package::Rubygems::AlternateGemEnvironment do
gem_env = Chef::Provider::Package::Rubygems::AlternateGemEnvironment.new(path_to_gem)
expected = ['rspec-core', Gem::Version.new(RSpec::Core::Version::STRING)]
actual = gem_env.installed_versions(Gem::Dependency.new('rspec-core', nil)).map { |s| [s.name, s.version] }
- actual.should include(expected)
+ expect(actual).to include(expected)
end
it "detects when the target gem environment is the jruby platform" do
@@ -295,18 +295,18 @@ RubyGems Environment:
- http://rubygems.org/
- http://gems.github.com/
JRUBY_GEM_ENV
- @gem_env.should_receive(:shell_out!).with('/usr/weird/bin/gem env').and_return(double('jruby_gem_env', :stdout => gem_env_out))
+ expect(@gem_env).to receive(:shell_out!).with('/usr/weird/bin/gem env').and_return(double('jruby_gem_env', :stdout => gem_env_out))
expected = ['ruby', Gem::Platform.new('universal-java-1.6')]
- @gem_env.gem_platforms.should == expected
+ expect(@gem_env.gem_platforms).to eq(expected)
# it should also cache the result
- Chef::Provider::Package::Rubygems::AlternateGemEnvironment.platform_cache['/usr/weird/bin/gem'].should == expected
+ expect(Chef::Provider::Package::Rubygems::AlternateGemEnvironment.platform_cache['/usr/weird/bin/gem']).to eq(expected)
end
it "uses the cached result for gem platforms if available" do
- @gem_env.should_not_receive(:shell_out!)
+ expect(@gem_env).not_to receive(:shell_out!)
expected = ['ruby', Gem::Platform.new('universal-java-1.6')]
Chef::Provider::Package::Rubygems::AlternateGemEnvironment.platform_cache['/usr/weird/bin/gem']= expected
- @gem_env.gem_platforms.should == expected
+ expect(@gem_env.gem_platforms).to eq(expected)
end
it "uses the current gem platforms when the target env is not jruby" do
@@ -337,9 +337,9 @@ RubyGems Environment:
- http://rubygems.org/
- http://gems.github.com/
RBX_GEM_ENV
- @gem_env.should_receive(:shell_out!).with('/usr/weird/bin/gem env').and_return(double('rbx_gem_env', :stdout => gem_env_out))
- @gem_env.gem_platforms.should == Gem.platforms
- Chef::Provider::Package::Rubygems::AlternateGemEnvironment.platform_cache['/usr/weird/bin/gem'].should == Gem.platforms
+ expect(@gem_env).to receive(:shell_out!).with('/usr/weird/bin/gem env').and_return(double('rbx_gem_env', :stdout => gem_env_out))
+ expect(@gem_env.gem_platforms).to eq(Gem.platforms)
+ expect(Chef::Provider::Package::Rubygems::AlternateGemEnvironment.platform_cache['/usr/weird/bin/gem']).to eq(Gem.platforms)
end
it "yields to a block while masquerading as a different gems platform" do
@@ -352,8 +352,8 @@ RBX_GEM_ENV
end
rescue RuntimeError
end
- platforms_in_block.should == ['ruby', Gem::Platform.new('sparc64-java-1.7')]
- Gem.platforms.should == original_platforms
+ expect(platforms_in_block).to eq(['ruby', Gem::Platform.new('sparc64-java-1.7')])
+ expect(Gem.platforms).to eq(original_platforms)
end
end
@@ -369,7 +369,7 @@ describe Chef::Provider::Package::Rubygems do
@run_context = Chef::RunContext.new(@node, {}, @events)
# We choose detect omnibus via RbConfig::CONFIG['bindir'] in Chef::Provider::Package::Rubygems.new
- RbConfig::CONFIG.stub(:[]).with('bindir').and_return("/usr/bin/ruby")
+ allow(RbConfig::CONFIG).to receive(:[]).with('bindir').and_return("/usr/bin/ruby")
@provider = Chef::Provider::Package::Rubygems.new(@new_resource, @run_context)
end
@@ -378,7 +378,7 @@ describe Chef::Provider::Package::Rubygems do
it "target_version_already_installed? should return false so that we can search for candidates" do
@provider.load_current_resource
- @provider.target_version_already_installed?.should be_false
+ expect(@provider.target_version_already_installed?).to be_false
end
end
@@ -387,74 +387,74 @@ describe Chef::Provider::Package::Rubygems do
it "triggers a gem configuration load so a later one will not stomp its config values" do
# ugly, is there a better way?
- Gem.instance_variable_get(:@configuration).should_not be_nil
+ expect(Gem.instance_variable_get(:@configuration)).not_to be_nil
end
it "uses the CurrentGemEnvironment implementation when no gem_binary_path is provided" do
- @provider.gem_env.should be_a_kind_of(Chef::Provider::Package::Rubygems::CurrentGemEnvironment)
+ expect(@provider.gem_env).to be_a_kind_of(Chef::Provider::Package::Rubygems::CurrentGemEnvironment)
end
it "uses the AlternateGemEnvironment implementation when a gem_binary_path is provided" do
@new_resource.gem_binary('/usr/weird/bin/gem')
provider = Chef::Provider::Package::Rubygems.new(@new_resource, @run_context)
- provider.gem_env.gem_binary_location.should == '/usr/weird/bin/gem'
+ expect(provider.gem_env.gem_binary_location).to eq('/usr/weird/bin/gem')
end
it "searches for a gem binary when running on Omnibus on Unix" do
platform_mock :unix do
- RbConfig::CONFIG.stub(:[]).with('bindir').and_return("/opt/chef/embedded/bin")
- ENV.stub(:[]).with('PATH').and_return("/usr/bin:/usr/sbin:/opt/chef/embedded/bin")
- File.stub(:exists?).with('/usr/bin/gem').and_return(false)
- File.stub(:exists?).with('/usr/sbin/gem').and_return(true)
- File.stub(:exists?).with('/opt/chef/embedded/bin/gem').and_return(true) # should not get here
+ allow(RbConfig::CONFIG).to receive(:[]).with('bindir').and_return("/opt/chef/embedded/bin")
+ allow(ENV).to receive(:[]).with('PATH').and_return("/usr/bin:/usr/sbin:/opt/chef/embedded/bin")
+ allow(File).to receive(:exists?).with('/usr/bin/gem').and_return(false)
+ allow(File).to receive(:exists?).with('/usr/sbin/gem').and_return(true)
+ allow(File).to receive(:exists?).with('/opt/chef/embedded/bin/gem').and_return(true) # should not get here
provider = Chef::Provider::Package::Rubygems.new(@new_resource, @run_context)
- provider.gem_env.gem_binary_location.should == '/usr/sbin/gem'
+ expect(provider.gem_env.gem_binary_location).to eq('/usr/sbin/gem')
end
end
it "searches for a gem binary when running on Omnibus on Windows" do
platform_mock :windows do
- RbConfig::CONFIG.stub(:[]).with('bindir').and_return("d:/opscode/chef/embedded/bin")
- ENV.stub(:[]).with('PATH').and_return('C:\windows\system32;C:\windows;C:\Ruby186\bin;d:\opscode\chef\embedded\bin')
- File.stub(:exists?).with('C:\\windows\\system32\\gem').and_return(false)
- File.stub(:exists?).with('C:\\windows\\gem').and_return(false)
- File.stub(:exists?).with('C:\\Ruby186\\bin\\gem').and_return(true)
- File.stub(:exists?).with('d:\\opscode\\chef\\bin\\gem').and_return(false) # should not get here
- File.stub(:exists?).with('d:\\opscode\\chef\\embedded\\bin\\gem').and_return(false) # should not get here
+ allow(RbConfig::CONFIG).to receive(:[]).with('bindir').and_return("d:/opscode/chef/embedded/bin")
+ allow(ENV).to receive(:[]).with('PATH').and_return('C:\windows\system32;C:\windows;C:\Ruby186\bin;d:\opscode\chef\embedded\bin')
+ allow(File).to receive(:exists?).with('C:\\windows\\system32\\gem').and_return(false)
+ allow(File).to receive(:exists?).with('C:\\windows\\gem').and_return(false)
+ allow(File).to receive(:exists?).with('C:\\Ruby186\\bin\\gem').and_return(true)
+ allow(File).to receive(:exists?).with('d:\\opscode\\chef\\bin\\gem').and_return(false) # should not get here
+ allow(File).to receive(:exists?).with('d:\\opscode\\chef\\embedded\\bin\\gem').and_return(false) # should not get here
provider = Chef::Provider::Package::Rubygems.new(@new_resource, @run_context)
- provider.gem_env.gem_binary_location.should == 'C:\Ruby186\bin\gem'
+ expect(provider.gem_env.gem_binary_location).to eq('C:\Ruby186\bin\gem')
end
end
it "smites you when you try to use a hash of install options with an explicit gem binary" do
@new_resource.gem_binary('/foo/bar')
@new_resource.options(:fail => :burger)
- lambda {Chef::Provider::Package::Rubygems.new(@new_resource, @run_context)}.should raise_error(ArgumentError)
+ expect {Chef::Provider::Package::Rubygems.new(@new_resource, @run_context)}.to raise_error(ArgumentError)
end
it "converts the new resource into a gem dependency" do
- @provider.gem_dependency.should == Gem::Dependency.new('rspec-core', @spec_version)
+ expect(@provider.gem_dependency).to eq(Gem::Dependency.new('rspec-core', @spec_version))
@new_resource.version('~> 1.2.0')
- @provider.gem_dependency.should == Gem::Dependency.new('rspec-core', '~> 1.2.0')
+ expect(@provider.gem_dependency).to eq(Gem::Dependency.new('rspec-core', '~> 1.2.0'))
end
describe "when determining the currently installed version" do
it "sets the current version to the version specified by the new resource if that version is installed" do
@provider.load_current_resource
- @provider.current_resource.version.should == @spec_version
+ expect(@provider.current_resource.version).to eq(@spec_version)
end
it "sets the current version to the highest installed version if the requested version is not installed" do
@new_resource.version('9000.0.2')
@provider.load_current_resource
- @provider.current_resource.version.should == @spec_version
+ expect(@provider.current_resource.version).to eq(@spec_version)
end
it "leaves the current version at nil if the package is not installed" do
@new_resource.package_name("no-such-gem-should-exist-with-this-name")
@provider.load_current_resource
- @provider.current_resource.version.should be_nil
+ expect(@provider.current_resource.version).to be_nil
end
end
@@ -463,23 +463,23 @@ describe Chef::Provider::Package::Rubygems do
it "does not query for available versions when the current version is the target version" do
@provider.current_resource = @new_resource.dup
- @provider.candidate_version.should be_nil
+ expect(@provider.candidate_version).to be_nil
end
it "determines the candidate version by querying the remote gem servers" do
@new_resource.source('http://mygems.example.com')
version = Gem::Version.new(@spec_version)
- @provider.gem_env.should_receive(:candidate_version_from_remote).
+ expect(@provider.gem_env).to receive(:candidate_version_from_remote).
with(Gem::Dependency.new('rspec-core', @spec_version), "http://mygems.example.com").
and_return(version)
- @provider.candidate_version.should == @spec_version
+ expect(@provider.candidate_version).to eq(@spec_version)
end
it "parses the gem's specification if the requested source is a file" do
@new_resource.package_name('chef-integration-test')
@new_resource.version('>= 0')
@new_resource.source(CHEF_SPEC_DATA + '/gems/chef-integration-test-0.1.0.gem')
- @provider.candidate_version.should == '0.1.0'
+ expect(@provider.candidate_version).to eq('0.1.0')
end
end
@@ -489,56 +489,56 @@ describe Chef::Provider::Package::Rubygems do
@current_resource = Chef::Resource::GemPackage.new('rspec-core')
@provider.current_resource = @current_resource
@gem_dep = Gem::Dependency.new('rspec-core', @spec_version)
- @provider.stub(:load_current_resource)
+ allow(@provider).to receive(:load_current_resource)
end
describe "in the current gem environment" do
it "installs the gem via the gems api when no explicit options are used" do
- @provider.gem_env.should_receive(:install).with(@gem_dep, :sources => nil)
- @provider.action_install.should be_true
+ expect(@provider.gem_env).to receive(:install).with(@gem_dep, :sources => nil)
+ expect(@provider.action_install).to be_true
end
it "installs the gem via the gems api when a remote source is provided" do
@new_resource.source('http://gems.example.org')
sources = ['http://gems.example.org']
- @provider.gem_env.should_receive(:install).with(@gem_dep, :sources => sources)
- @provider.action_install.should be_true
+ expect(@provider.gem_env).to receive(:install).with(@gem_dep, :sources => sources)
+ expect(@provider.action_install).to be_true
end
it "installs the gem from file via the gems api when no explicit options are used" do
@new_resource.source(CHEF_SPEC_DATA + '/gems/chef-integration-test-0.1.0.gem')
- @provider.gem_env.should_receive(:install).with(CHEF_SPEC_DATA + '/gems/chef-integration-test-0.1.0.gem')
- @provider.action_install.should be_true
+ expect(@provider.gem_env).to receive(:install).with(CHEF_SPEC_DATA + '/gems/chef-integration-test-0.1.0.gem')
+ expect(@provider.action_install).to be_true
end
it "installs the gem from file via the gems api when the package is a path and the source is nil" do
@new_resource = Chef::Resource::GemPackage.new(CHEF_SPEC_DATA + '/gems/chef-integration-test-0.1.0.gem')
@provider = Chef::Provider::Package::Rubygems.new(@new_resource, @run_context)
@provider.current_resource = @current_resource
- @new_resource.source.should == CHEF_SPEC_DATA + '/gems/chef-integration-test-0.1.0.gem'
- @provider.gem_env.should_receive(:install).with(CHEF_SPEC_DATA + '/gems/chef-integration-test-0.1.0.gem')
- @provider.action_install.should be_true
+ expect(@new_resource.source).to eq(CHEF_SPEC_DATA + '/gems/chef-integration-test-0.1.0.gem')
+ expect(@provider.gem_env).to receive(:install).with(CHEF_SPEC_DATA + '/gems/chef-integration-test-0.1.0.gem')
+ expect(@provider.action_install).to be_true
end
# this catches 'gem_package "foo"' when "./foo" is a file in the cwd, and instead of installing './foo' it fetches the remote gem
it "installs the gem via the gems api, when the package has no file separator characters in it, but a matching file exists in cwd" do
- ::File.stub(:exists?).and_return(true)
+ allow(::File).to receive(:exists?).and_return(true)
@new_resource.package_name('rspec-core')
- @provider.gem_env.should_receive(:install).with(@gem_dep, :sources => nil)
- @provider.action_install.should be_true
+ expect(@provider.gem_env).to receive(:install).with(@gem_dep, :sources => nil)
+ expect(@provider.action_install).to be_true
end
it "installs the gem by shelling out when options are provided as a String" do
@new_resource.options('-i /alt/install/location')
expected ="gem install rspec-core -q --no-rdoc --no-ri -v \"#{@spec_version}\" -i /alt/install/location"
- @provider.should_receive(:shell_out!).with(expected, :env => nil)
- @provider.action_install.should be_true
+ expect(@provider).to receive(:shell_out!).with(expected, :env => nil)
+ expect(@provider.action_install).to be_true
end
it "installs the gem via the gems api when options are given as a Hash" do
@new_resource.options(:install_dir => '/alt/install/location')
- @provider.gem_env.should_receive(:install).with(@gem_dep, :sources => nil, :install_dir => '/alt/install/location')
- @provider.action_install.should be_true
+ expect(@provider.gem_env).to receive(:install).with(@gem_dep, :sources => nil, :install_dir => '/alt/install/location')
+ expect(@provider.action_install).to be_true
end
describe "at a specific version" do
@@ -547,24 +547,24 @@ describe Chef::Provider::Package::Rubygems do
end
it "installs the gem via the gems api" do
- @provider.gem_env.should_receive(:install).with(@gem_dep, :sources => nil)
- @provider.action_install.should be_true
+ expect(@provider.gem_env).to receive(:install).with(@gem_dep, :sources => nil)
+ expect(@provider.action_install).to be_true
end
end
describe "at version specified with comparison operator" do
it "skips install if current version satisifies requested version" do
- @current_resource.stub(:version).and_return("2.3.3")
- @new_resource.stub(:version).and_return(">=2.3.0")
+ allow(@current_resource).to receive(:version).and_return("2.3.3")
+ allow(@new_resource).to receive(:version).and_return(">=2.3.0")
- @provider.gem_env.should_not_receive(:install)
+ expect(@provider.gem_env).not_to receive(:install)
@provider.action_install
end
it "allows user to specify gem version with fuzzy operator" do
- @current_resource.stub(:version).and_return("2.3.3")
- @new_resource.stub(:version).and_return("~>2.3.0")
+ allow(@current_resource).to receive(:version).and_return("2.3.3")
+ allow(@new_resource).to receive(:version).and_return("~>2.3.0")
- @provider.gem_env.should_not_receive(:install)
+ expect(@provider.gem_env).not_to receive(:install)
@provider.action_install
end
end
@@ -573,16 +573,16 @@ describe Chef::Provider::Package::Rubygems do
describe "in an alternate gem environment" do
it "installs the gem by shelling out to gem install" do
@new_resource.gem_binary('/usr/weird/bin/gem')
- @provider.should_receive(:shell_out!).with("/usr/weird/bin/gem install rspec-core -q --no-rdoc --no-ri -v \"#{@spec_version}\"", :env=>nil)
- @provider.action_install.should be_true
+ expect(@provider).to receive(:shell_out!).with("/usr/weird/bin/gem install rspec-core -q --no-rdoc --no-ri -v \"#{@spec_version}\"", :env=>nil)
+ expect(@provider.action_install).to be_true
end
it "installs the gem from file by shelling out to gem install" do
@new_resource.gem_binary('/usr/weird/bin/gem')
@new_resource.source(CHEF_SPEC_DATA + '/gems/chef-integration-test-0.1.0.gem')
@new_resource.version('>= 0')
- @provider.should_receive(:shell_out!).with("/usr/weird/bin/gem install #{CHEF_SPEC_DATA}/gems/chef-integration-test-0.1.0.gem -q --no-rdoc --no-ri -v \">= 0\"", :env=>nil)
- @provider.action_install.should be_true
+ expect(@provider).to receive(:shell_out!).with("/usr/weird/bin/gem install #{CHEF_SPEC_DATA}/gems/chef-integration-test-0.1.0.gem -q --no-rdoc --no-ri -v \">= 0\"", :env=>nil)
+ expect(@provider.action_install).to be_true
end
it "installs the gem from file by shelling out to gem install when the package is a path and the source is nil" do
@@ -591,9 +591,9 @@ describe Chef::Provider::Package::Rubygems do
@provider.current_resource = @current_resource
@new_resource.gem_binary('/usr/weird/bin/gem')
@new_resource.version('>= 0')
- @new_resource.source.should == CHEF_SPEC_DATA + '/gems/chef-integration-test-0.1.0.gem'
- @provider.should_receive(:shell_out!).with("/usr/weird/bin/gem install #{CHEF_SPEC_DATA}/gems/chef-integration-test-0.1.0.gem -q --no-rdoc --no-ri -v \">= 0\"", :env=>nil)
- @provider.action_install.should be_true
+ expect(@new_resource.source).to eq(CHEF_SPEC_DATA + '/gems/chef-integration-test-0.1.0.gem')
+ expect(@provider).to receive(:shell_out!).with("/usr/weird/bin/gem install #{CHEF_SPEC_DATA}/gems/chef-integration-test-0.1.0.gem -q --no-rdoc --no-ri -v \">= 0\"", :env=>nil)
+ expect(@provider.action_install).to be_true
end
end
@@ -611,32 +611,32 @@ describe Chef::Provider::Package::Rubygems do
describe "in the current gem environment" do
it "uninstalls via the api when no explicit options are used" do
# pre-reqs for action_remove to actually remove the package:
- @provider.new_resource.version.should be_nil
- @provider.current_resource.version.should_not be_nil
+ expect(@provider.new_resource.version).to be_nil
+ expect(@provider.current_resource.version).not_to be_nil
# the behavior we're testing:
- @provider.gem_env.should_receive(:uninstall).with('rspec', nil)
+ expect(@provider.gem_env).to receive(:uninstall).with('rspec', nil)
@provider.action_remove
end
it "uninstalls via the api when options are given as a Hash" do
# pre-reqs for action_remove to actually remove the package:
- @provider.new_resource.version.should be_nil
- @provider.current_resource.version.should_not be_nil
+ expect(@provider.new_resource.version).to be_nil
+ expect(@provider.current_resource.version).not_to be_nil
# the behavior we're testing:
@new_resource.options(:install_dir => '/alt/install/location')
- @provider.gem_env.should_receive(:uninstall).with('rspec', nil, :install_dir => '/alt/install/location')
+ expect(@provider.gem_env).to receive(:uninstall).with('rspec', nil, :install_dir => '/alt/install/location')
@provider.action_remove
end
it "uninstalls via the gem command when options are given as a String" do
@new_resource.options('-i /alt/install/location')
- @provider.should_receive(:shell_out!).with("gem uninstall rspec -q -x -I -a -i /alt/install/location", :env=>nil)
+ expect(@provider).to receive(:shell_out!).with("gem uninstall rspec -q -x -I -a -i /alt/install/location", :env=>nil)
@provider.action_remove
end
it "uninstalls a specific version of a gem when a version is provided" do
@new_resource.version('1.2.3')
- @provider.gem_env.should_receive(:uninstall).with('rspec', '1.2.3')
+ expect(@provider.gem_env).to receive(:uninstall).with('rspec', '1.2.3')
@provider.action_remove
end
end
@@ -644,7 +644,7 @@ describe Chef::Provider::Package::Rubygems do
describe "in an alternate gem environment" do
it "uninstalls via the gem command" do
@new_resource.gem_binary('/usr/weird/bin/gem')
- @provider.should_receive(:shell_out!).with("/usr/weird/bin/gem uninstall rspec -q -x -I -a", :env=>nil)
+ expect(@provider).to receive(:shell_out!).with("/usr/weird/bin/gem uninstall rspec -q -x -I -a", :env=>nil)
@provider.action_remove
end
end
diff --git a/spec/unit/provider/package/smartos_spec.rb b/spec/unit/provider/package/smartos_spec.rb
index 1c690acbf5..db39589b85 100644
--- a/spec/unit/provider/package/smartos_spec.rb
+++ b/spec/unit/provider/package/smartos_spec.rb
@@ -31,7 +31,7 @@ describe Chef::Provider::Package::SmartOS, "load_current_resource" do
@status = double("Status", :exitstatus => 0)
@provider = Chef::Provider::Package::SmartOS.new(@new_resource, @run_context)
- Chef::Resource::Package.stub(:new).and_return(@current_resource)
+ allow(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
@stdin = StringIO.new
@stdout = "varnish-2.1.5nb2\n"
@stderr = StringIO.new
@@ -42,28 +42,28 @@ describe Chef::Provider::Package::SmartOS, "load_current_resource" do
describe "when loading current resource" do
it "should create a current resource with the name of the new_resource" do
- @provider.should_receive(:shell_out!).and_return(@shell_out)
- Chef::Resource::Package.should_receive(:new).and_return(@current_resource)
+ expect(@provider).to receive(:shell_out!).and_return(@shell_out)
+ expect(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
@provider.load_current_resource
end
it "should set the current resource package name" do
- @provider.should_receive(:shell_out!).and_return(@shell_out)
- @current_resource.should_receive(:package_name).with(@new_resource.package_name)
+ expect(@provider).to receive(:shell_out!).and_return(@shell_out)
+ expect(@current_resource).to receive(:package_name).with(@new_resource.package_name)
@provider.load_current_resource
end
it "should set the installed version if it is installed" do
- @provider.should_receive(:shell_out!).and_return(@shell_out)
+ expect(@provider).to receive(:shell_out!).and_return(@shell_out)
@provider.load_current_resource
- @current_resource.version.should == "2.1.5nb2"
+ expect(@current_resource.version).to eq("2.1.5nb2")
end
it "should set the installed version to nil if it's not installed" do
out = OpenStruct.new(:stdout => nil)
- @provider.should_receive(:shell_out!).and_return(out)
+ expect(@provider).to receive(:shell_out!).and_return(out)
@provider.load_current_resource
- @current_resource.version.should == nil
+ expect(@current_resource.version).to eq(nil)
end
@@ -72,18 +72,18 @@ describe Chef::Provider::Package::SmartOS, "load_current_resource" do
describe "candidate_version" do
it "should return the candidate_version variable if already setup" do
@provider.candidate_version = "2.1.1"
- @provider.should_not_receive(:shell_out!)
+ expect(@provider).not_to receive(:shell_out!)
@provider.candidate_version
end
it "should lookup the candidate_version if the variable is not already set" do
search = double()
- search.should_receive(:each_line).
+ expect(search).to receive(:each_line).
and_yield("something-varnish-1.1.1 something varnish like\n").
and_yield("varnish-2.3.4 actual varnish\n")
@shell_out = double('shell_out!', :stdout => search)
- @provider.should_receive(:shell_out!).with('/opt/local/bin/pkgin se varnish', :env => nil, :returns => [0,1]).and_return(@shell_out)
- @provider.candidate_version.should == "2.3.4"
+ expect(@provider).to receive(:shell_out!).with('/opt/local/bin/pkgin se varnish', :env => nil, :returns => [0,1]).and_return(@shell_out)
+ expect(@provider.candidate_version).to eq("2.3.4")
end
end
@@ -91,8 +91,8 @@ describe Chef::Provider::Package::SmartOS, "load_current_resource" do
it "run pkgin and install the package" do
out = OpenStruct.new(:stdout => nil)
- @provider.should_receive(:shell_out!).with("/opt/local/sbin/pkg_info -E \"varnish*\"", {:env => nil, :returns=>[0,1]}).and_return(@shell_out)
- @provider.should_receive(:shell_out!).with("/opt/local/bin/pkgin -y install varnish-2.1.5nb2", {:env=>nil}).and_return(out)
+ expect(@provider).to receive(:shell_out!).with("/opt/local/sbin/pkg_info -E \"varnish*\"", {:env => nil, :returns=>[0,1]}).and_return(@shell_out)
+ expect(@provider).to receive(:shell_out!).with("/opt/local/bin/pkgin -y install varnish-2.1.5nb2", {:env=>nil}).and_return(out)
@provider.load_current_resource
@provider.install_package("varnish", "2.1.5nb2")
end
diff --git a/spec/unit/provider/package/solaris_spec.rb b/spec/unit/provider/package/solaris_spec.rb
index d83ccbdf06..8438202576 100644
--- a/spec/unit/provider/package/solaris_spec.rb
+++ b/spec/unit/provider/package/solaris_spec.rb
@@ -27,7 +27,7 @@ describe Chef::Provider::Package::Solaris do
@new_resource.source("/tmp/bash.pkg")
@provider = Chef::Provider::Package::Solaris.new(@new_resource, @run_context)
- ::File.stub(:exists?).and_return(true)
+ allow(::File).to receive(:exists?).and_return(true)
end
describe "assessing the current package status" do
@@ -50,119 +50,119 @@ PKGINFO
end
it "should create a current resource with the name of new_resource" do
- @provider.stub(:popen4).and_return(@status)
+ allow(@provider).to receive(:popen4).and_return(@status)
@provider.load_current_resource
- @provider.current_resource.name.should == "SUNWbash"
+ expect(@provider.current_resource.name).to eq("SUNWbash")
end
it "should set the current reource package name to the new resource package name" do
- @provider.stub(:popen4).and_return(@status)
+ allow(@provider).to receive(:popen4).and_return(@status)
@provider.load_current_resource
- @provider.current_resource.package_name.should == "SUNWbash"
+ expect(@provider.current_resource.package_name).to eq("SUNWbash")
end
it "should raise an exception if a source is supplied but not found" do
- @provider.stub(:popen4).and_return(@status)
- ::File.stub(:exists?).and_return(false)
+ allow(@provider).to receive(:popen4).and_return(@status)
+ allow(::File).to receive(:exists?).and_return(false)
@provider.define_resource_requirements
@provider.load_current_resource
- lambda { @provider.process_resource_requirements }.should raise_error(Chef::Exceptions::Package)
+ expect { @provider.process_resource_requirements }.to raise_error(Chef::Exceptions::Package)
end
it "should get the source package version from pkginfo if provided" do
@stdout = StringIO.new(@pkginfo)
@stdin, @stderr = StringIO.new, StringIO.new
- @provider.should_receive(:popen4).with("pkginfo -l -d /tmp/bash.pkg SUNWbash").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
- @provider.should_receive(:popen4).with("pkginfo -l SUNWbash").and_return(@status)
+ expect(@provider).to receive(:popen4).with("pkginfo -l -d /tmp/bash.pkg SUNWbash").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@provider).to receive(:popen4).with("pkginfo -l SUNWbash").and_return(@status)
@provider.load_current_resource
- @provider.current_resource.package_name.should == "SUNWbash"
- @new_resource.version.should == "11.10.0,REV=2005.01.08.05.16"
+ expect(@provider.current_resource.package_name).to eq("SUNWbash")
+ expect(@new_resource.version).to eq("11.10.0,REV=2005.01.08.05.16")
end
it "should return the current version installed if found by pkginfo" do
@stdout = StringIO.new(@pkginfo)
@stdin, @stderr = StringIO.new, StringIO.new
- @provider.should_receive(:popen4).with("pkginfo -l -d /tmp/bash.pkg SUNWbash").and_return(@status)
- @provider.should_receive(:popen4).with("pkginfo -l SUNWbash").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@provider).to receive(:popen4).with("pkginfo -l -d /tmp/bash.pkg SUNWbash").and_return(@status)
+ expect(@provider).to receive(:popen4).with("pkginfo -l SUNWbash").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
@provider.load_current_resource
- @provider.current_resource.version.should == "11.10.0,REV=2005.01.08.05.16"
+ expect(@provider.current_resource.version).to eq("11.10.0,REV=2005.01.08.05.16")
end
it "should raise an exception if the source is not set but we are installing" do
@new_resource = Chef::Resource::Package.new("SUNWbash")
@provider = Chef::Provider::Package::Solaris.new(@new_resource, @run_context)
- @provider.stub(:popen4).and_return(@status)
- lambda { @provider.run_action(:install) }.should raise_error(Chef::Exceptions::Package)
+ allow(@provider).to receive(:popen4).and_return(@status)
+ expect { @provider.run_action(:install) }.to raise_error(Chef::Exceptions::Package)
end
it "should raise an exception if pkginfo fails to run" do
@status = double("Status", :exitstatus => -1)
- @provider.stub(:popen4).and_return(@status)
- lambda { @provider.load_current_resource }.should raise_error(Chef::Exceptions::Package)
+ allow(@provider).to receive(:popen4).and_return(@status)
+ expect { @provider.load_current_resource }.to raise_error(Chef::Exceptions::Package)
end
it "should return a current resource with a nil version if the package is not found" do
@stdout = StringIO.new
- @provider.should_receive(:popen4).with("pkginfo -l -d /tmp/bash.pkg SUNWbash").and_return(@status)
- @provider.should_receive(:popen4).with("pkginfo -l SUNWbash").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@provider).to receive(:popen4).with("pkginfo -l -d /tmp/bash.pkg SUNWbash").and_return(@status)
+ expect(@provider).to receive(:popen4).with("pkginfo -l SUNWbash").and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
@provider.load_current_resource
- @provider.current_resource.version.should be_nil
+ expect(@provider.current_resource.version).to be_nil
end
end
describe "candidate_version" do
it "should return the candidate_version variable if already setup" do
@provider.candidate_version = "11.10.0,REV=2005.01.08.05.16"
- @provider.should_not_receive(:popen4)
+ expect(@provider).not_to receive(:popen4)
@provider.candidate_version
end
it "should lookup the candidate_version if the variable is not already set" do
@status = double("Status", :exitstatus => 0)
- @provider.stub(:popen4).and_return(@status)
- @provider.should_receive(:popen4)
+ allow(@provider).to receive(:popen4).and_return(@status)
+ expect(@provider).to receive(:popen4)
@provider.candidate_version
end
it "should throw and exception if the exitstatus is not 0" do
@status = double("Status", :exitstatus => 1)
- @provider.stub(:popen4).and_return(@status)
- lambda { @provider.candidate_version }.should raise_error(Chef::Exceptions::Package)
+ allow(@provider).to receive(:popen4).and_return(@status)
+ expect { @provider.candidate_version }.to raise_error(Chef::Exceptions::Package)
end
end
describe "install and upgrade" do
it "should run pkgadd -n -d with the package source to install" do
- @provider.should_receive(:shell_out!).with("pkgadd -n -d /tmp/bash.pkg all")
+ expect(@provider).to receive(:shell_out!).with("pkgadd -n -d /tmp/bash.pkg all")
@provider.install_package("SUNWbash", "11.10.0,REV=2005.01.08.05.16")
end
it "should run pkgadd -n -d when the package is a path to install" do
@new_resource = Chef::Resource::Package.new("/tmp/bash.pkg")
@provider = Chef::Provider::Package::Solaris.new(@new_resource, @run_context)
- @new_resource.source.should == "/tmp/bash.pkg"
- @provider.should_receive(:shell_out!).with("pkgadd -n -d /tmp/bash.pkg all")
+ expect(@new_resource.source).to eq("/tmp/bash.pkg")
+ expect(@provider).to receive(:shell_out!).with("pkgadd -n -d /tmp/bash.pkg all")
@provider.install_package("/tmp/bash.pkg", "11.10.0,REV=2005.01.08.05.16")
end
it "should run pkgadd -n -a /tmp/myadmin -d with the package options -a /tmp/myadmin" do
- @new_resource.stub(:options).and_return("-a /tmp/myadmin")
- @provider.should_receive(:shell_out!).with("pkgadd -n -a /tmp/myadmin -d /tmp/bash.pkg all")
+ allow(@new_resource).to receive(:options).and_return("-a /tmp/myadmin")
+ expect(@provider).to receive(:shell_out!).with("pkgadd -n -a /tmp/myadmin -d /tmp/bash.pkg all")
@provider.install_package("SUNWbash", "11.10.0,REV=2005.01.08.05.16")
end
end
describe "remove" do
it "should run pkgrm -n to remove the package" do
- @provider.should_receive(:shell_out!).with("pkgrm -n SUNWbash")
+ expect(@provider).to receive(:shell_out!).with("pkgrm -n SUNWbash")
@provider.remove_package("SUNWbash", "11.10.0,REV=2005.01.08.05.16")
end
it "should run pkgrm -n -a /tmp/myadmin with options -a /tmp/myadmin" do
- @new_resource.stub(:options).and_return("-a /tmp/myadmin")
- @provider.should_receive(:shell_out!).with("pkgrm -n -a /tmp/myadmin SUNWbash")
+ allow(@new_resource).to receive(:options).and_return("-a /tmp/myadmin")
+ expect(@provider).to receive(:shell_out!).with("pkgrm -n -a /tmp/myadmin SUNWbash")
@provider.remove_package("SUNWbash", "11.10.0,REV=2005.01.08.05.16")
end
diff --git a/spec/unit/provider/package/windows/msi_spec.rb b/spec/unit/provider/package/windows/msi_spec.rb
index c8a63ad066..e539bbbb79 100644
--- a/spec/unit/provider/package/windows/msi_spec.rb
+++ b/spec/unit/provider/package/windows/msi_spec.rb
@@ -37,15 +37,15 @@ describe Chef::Provider::Package::Windows::MSI, :windows_only do
describe "installed_version" do
it "returns the installed version" do
- provider.stub(:get_product_property).and_return("{23170F69-40C1-2702-0920-000001000000}")
- provider.stub(:get_installed_version).with("{23170F69-40C1-2702-0920-000001000000}").and_return("3.14159.1337.42")
+ allow(provider).to receive(:get_product_property).and_return("{23170F69-40C1-2702-0920-000001000000}")
+ allow(provider).to receive(:get_installed_version).with("{23170F69-40C1-2702-0920-000001000000}").and_return("3.14159.1337.42")
expect(provider.installed_version).to eql("3.14159.1337.42")
end
end
describe "package_version" do
it "returns the version of a package" do
- provider.stub(:get_product_property).with(/calculator.msi$/, "ProductVersion").and_return(42)
+ allow(provider).to receive(:get_product_property).with(/calculator.msi$/, "ProductVersion").and_return(42)
expect(provider.package_version).to eql(42)
end
end
diff --git a/spec/unit/provider/package/windows_spec.rb b/spec/unit/provider/package/windows_spec.rb
index b4ababb243..5ab84e7ac7 100644
--- a/spec/unit/provider/package/windows_spec.rb
+++ b/spec/unit/provider/package/windows_spec.rb
@@ -27,8 +27,8 @@ describe Chef::Provider::Package::Windows, :windows_only do
describe "load_current_resource" do
before(:each) do
- Chef::Util::PathHelper.stub(:validate_path)
- provider.stub(:package_provider).and_return(double('package_provider',
+ allow(Chef::Util::PathHelper).to receive(:validate_path)
+ allow(provider).to receive(:package_provider).and_return(double('package_provider',
:installed_version => "1.0", :package_version => "2.0"))
end
@@ -56,12 +56,12 @@ describe Chef::Provider::Package::Windows, :windows_only do
describe "package_provider" do
it "sets the package provider to MSI if the the installer type is :msi" do
- provider.stub(:installer_type).and_return(:msi)
+ allow(provider).to receive(:installer_type).and_return(:msi)
expect(provider.package_provider).to be_a(Chef::Provider::Package::Windows::MSI)
end
it "raises an error if the installer_type is unknown" do
- provider.stub(:installer_type).and_return(:apt_for_windows)
+ allow(provider).to receive(:installer_type).and_return(:apt_for_windows)
expect { provider.package_provider }.to raise_error
end
end
diff --git a/spec/unit/provider/package/yum_spec.rb b/spec/unit/provider/package/yum_spec.rb
index 9b3b6b60e0..0d2a44f3ae 100644
--- a/spec/unit/provider/package/yum_spec.rb
+++ b/spec/unit/provider/package/yum_spec.rb
@@ -37,7 +37,7 @@ describe Chef::Provider::Package::Yum do
:package_repository => "base",
:disable_extra_repo_control => true
)
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@pid = double("PID")
end
@@ -45,32 +45,32 @@ describe Chef::Provider::Package::Yum do
describe "when loading the current system state" do
it "should create a current resource with the name of the new_resource" do
@provider.load_current_resource
- @provider.current_resource.name.should == "cups"
+ expect(@provider.current_resource.name).to eq("cups")
end
it "should set the current resources package name to the new resources package name" do
@provider.load_current_resource
- @provider.current_resource.package_name.should == "cups"
+ expect(@provider.current_resource.package_name).to eq("cups")
end
it "should set the installed version to nil on the current resource if no installed package" do
- @yum_cache.stub(:installed_version).and_return(nil)
+ allow(@yum_cache).to receive(:installed_version).and_return(nil)
@provider.load_current_resource
- @provider.current_resource.version.should be_nil
+ expect(@provider.current_resource.version).to be_nil
end
it "should set the installed version if yum has one" do
@provider.load_current_resource
- @provider.current_resource.version.should == "1.2.4-11.18.el5"
+ expect(@provider.current_resource.version).to eq("1.2.4-11.18.el5")
end
it "should set the candidate version if yum info has one" do
@provider.load_current_resource
- @provider.candidate_version.should eql("1.2.4-11.18.el5_2.3")
+ expect(@provider.candidate_version).to eql("1.2.4-11.18.el5_2.3")
end
it "should return the current resouce" do
- @provider.load_current_resource.should eql(@provider.current_resource)
+ expect(@provider.load_current_resource).to eql(@provider.current_resource)
end
describe "when arch in package_name" do
@@ -79,11 +79,11 @@ describe Chef::Provider::Package::Yum do
@yum_cache = double(
'Chef::Provider::Yum::YumCache'
)
- @yum_cache.stub(:installed_version) do |package_name, arch|
+ allow(@yum_cache).to receive(:installed_version) do |package_name, arch|
# nothing installed for package_name/new_package_name
nil
end
- @yum_cache.stub(:candidate_version) do |package_name, arch|
+ allow(@yum_cache).to receive(:candidate_version) do |package_name, arch|
if package_name == "testing.noarch" || package_name == "testing.more.noarch"
nil
# candidate for new_package_name
@@ -91,21 +91,21 @@ describe Chef::Provider::Package::Yum do
"1.1"
end
end
- @yum_cache.stub(:package_available?).and_return(true)
- @yum_cache.stub(:disable_extra_repo_control).and_return(true)
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
+ allow(@yum_cache).to receive(:package_available?).and_return(true)
+ allow(@yum_cache).to receive(:disable_extra_repo_control).and_return(true)
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@provider.load_current_resource
- @provider.new_resource.package_name.should == "testing"
- @provider.new_resource.arch.should == "noarch"
- @provider.arch.should == "noarch"
+ expect(@provider.new_resource.package_name).to eq("testing")
+ expect(@provider.new_resource.arch).to eq("noarch")
+ expect(@provider.arch).to eq("noarch")
@new_resource = Chef::Resource::YumPackage.new('testing.more.noarch')
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@provider.load_current_resource
- @provider.new_resource.package_name.should == "testing.more"
- @provider.new_resource.arch.should == "noarch"
- @provider.arch.should == "noarch"
+ expect(@provider.new_resource.package_name).to eq("testing.more")
+ expect(@provider.new_resource.arch).to eq("noarch")
+ expect(@provider.arch).to eq("noarch")
end
it "should not set the arch when an existing package_name is found" do
@@ -113,7 +113,7 @@ describe Chef::Provider::Package::Yum do
@yum_cache = double(
'Chef::Provider::Yum::YumCache'
)
- @yum_cache.stub(:installed_version) do |package_name, arch|
+ allow(@yum_cache).to receive(:installed_version) do |package_name, arch|
# installed for package_name
if package_name == "testing.beta3" || package_name == "testing.beta3.more"
"1.1"
@@ -121,26 +121,26 @@ describe Chef::Provider::Package::Yum do
nil
end
end
- @yum_cache.stub(:candidate_version) do |package_name, arch|
+ allow(@yum_cache).to receive(:candidate_version) do |package_name, arch|
# no candidate for package_name/new_package_name
nil
end
- @yum_cache.stub(:package_available?).and_return(true)
- @yum_cache.stub(:disable_extra_repo_control).and_return(true)
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
+ allow(@yum_cache).to receive(:package_available?).and_return(true)
+ allow(@yum_cache).to receive(:disable_extra_repo_control).and_return(true)
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
# annoying side effect of the fun stub'ing above
@provider.load_current_resource
- @provider.new_resource.package_name.should == "testing.beta3"
- @provider.new_resource.arch.should == nil
- @provider.arch.should == nil
+ expect(@provider.new_resource.package_name).to eq("testing.beta3")
+ expect(@provider.new_resource.arch).to eq(nil)
+ expect(@provider.arch).to eq(nil)
@new_resource = Chef::Resource::YumPackage.new('testing.beta3.more')
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@provider.load_current_resource
- @provider.new_resource.package_name.should == "testing.beta3.more"
- @provider.new_resource.arch.should == nil
- @provider.arch.should == nil
+ expect(@provider.new_resource.package_name).to eq("testing.beta3.more")
+ expect(@provider.new_resource.arch).to eq(nil)
+ expect(@provider.arch).to eq(nil)
end
it "should not set the arch when no existing package_name or new_package_name+new_arch is found" do
@@ -148,29 +148,29 @@ describe Chef::Provider::Package::Yum do
@yum_cache = double(
'Chef::Provider::Yum::YumCache'
)
- @yum_cache.stub(:installed_version) do |package_name, arch|
+ allow(@yum_cache).to receive(:installed_version) do |package_name, arch|
# nothing installed for package_name/new_package_name
nil
end
- @yum_cache.stub(:candidate_version) do |package_name, arch|
+ allow(@yum_cache).to receive(:candidate_version) do |package_name, arch|
# no candidate for package_name/new_package_name
nil
end
- @yum_cache.stub(:package_available?).and_return(true)
- @yum_cache.stub(:disable_extra_repo_control).and_return(true)
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
+ allow(@yum_cache).to receive(:package_available?).and_return(true)
+ allow(@yum_cache).to receive(:disable_extra_repo_control).and_return(true)
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@provider.load_current_resource
- @provider.new_resource.package_name.should == "testing.beta3"
- @provider.new_resource.arch.should == nil
- @provider.arch.should == nil
+ expect(@provider.new_resource.package_name).to eq("testing.beta3")
+ expect(@provider.new_resource.arch).to eq(nil)
+ expect(@provider.arch).to eq(nil)
@new_resource = Chef::Resource::YumPackage.new('testing.beta3.more')
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@provider.load_current_resource
- @provider.new_resource.package_name.should == "testing.beta3.more"
- @provider.new_resource.arch.should == nil
- @provider.arch.should == nil
+ expect(@provider.new_resource.package_name).to eq("testing.beta3.more")
+ expect(@provider.new_resource.arch).to eq(nil)
+ expect(@provider.arch).to eq(nil)
end
it "should ensure it doesn't clobber an existing arch if passed" do
@@ -179,11 +179,11 @@ describe Chef::Provider::Package::Yum do
@yum_cache = double(
'Chef::Provider::Yum::YumCache'
)
- @yum_cache.stub(:installed_version) do |package_name, arch|
+ allow(@yum_cache).to receive(:installed_version) do |package_name, arch|
# nothing installed for package_name/new_package_name
nil
end
- @yum_cache.stub(:candidate_version) do |package_name, arch|
+ allow(@yum_cache).to receive(:candidate_version) do |package_name, arch|
if package_name == "testing.noarch"
nil
# candidate for new_package_name
@@ -191,43 +191,43 @@ describe Chef::Provider::Package::Yum do
"1.1"
end
end.and_return("something")
- @yum_cache.stub(:package_available?).and_return(true)
- @yum_cache.stub(:disable_extra_repo_control).and_return(true)
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
+ allow(@yum_cache).to receive(:package_available?).and_return(true)
+ allow(@yum_cache).to receive(:disable_extra_repo_control).and_return(true)
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@provider.load_current_resource
- @provider.new_resource.package_name.should == "testing.i386"
- @provider.new_resource.arch.should == "x86_64"
+ expect(@provider.new_resource.package_name).to eq("testing.i386")
+ expect(@provider.new_resource.arch).to eq("x86_64")
end
end
it "should flush the cache if :before is true" do
- @new_resource.stub(:flush_cache).and_return({:after => false, :before => true})
- @yum_cache.should_receive(:reload).once
+ allow(@new_resource).to receive(:flush_cache).and_return({:after => false, :before => true})
+ expect(@yum_cache).to receive(:reload).once
@provider.load_current_resource
end
it "should flush the cache if :before is false" do
- @new_resource.stub(:flush_cache).and_return({:after => false, :before => false})
- @yum_cache.should_not_receive(:reload)
+ allow(@new_resource).to receive(:flush_cache).and_return({:after => false, :before => false})
+ expect(@yum_cache).not_to receive(:reload)
@provider.load_current_resource
end
it "should detect --enablerepo or --disablerepo when passed among options, collect them preserving order and notify the yum cache" do
- @new_resource.stub(:options).and_return("--stuff --enablerepo=foo --otherthings --disablerepo=a,b,c --enablerepo=bar")
- @yum_cache.should_receive(:enable_extra_repo_control).with("--enablerepo=foo --disablerepo=a,b,c --enablerepo=bar")
+ allow(@new_resource).to receive(:options).and_return("--stuff --enablerepo=foo --otherthings --disablerepo=a,b,c --enablerepo=bar")
+ expect(@yum_cache).to receive(:enable_extra_repo_control).with("--enablerepo=foo --disablerepo=a,b,c --enablerepo=bar")
@provider.load_current_resource
end
it "should let the yum cache know extra repos are disabled if --enablerepo or --disablerepo aren't among options" do
- @new_resource.stub(:options).and_return("--stuff --otherthings")
- @yum_cache.should_receive(:disable_extra_repo_control)
+ allow(@new_resource).to receive(:options).and_return("--stuff --otherthings")
+ expect(@yum_cache).to receive(:disable_extra_repo_control)
@provider.load_current_resource
end
it "should let the yum cache know extra repos are disabled if options aren't set" do
- @new_resource.stub(:options).and_return(nil)
- @yum_cache.should_receive(:disable_extra_repo_control)
+ allow(@new_resource).to receive(:options).and_return(nil)
+ expect(@yum_cache).to receive(:disable_extra_repo_control)
@provider.load_current_resource
end
@@ -242,12 +242,12 @@ describe Chef::Provider::Package::Yum do
:version_available? => true,
:disable_extra_repo_control => true
)
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
pkg = Chef::Provider::Package::Yum::RPMPackage.new("test-package", "1.2.4-11.18.el5", "x86_64", [])
- @yum_cache.should_receive(:packages_from_require).and_return([pkg])
+ expect(@yum_cache).to receive(:packages_from_require).and_return([pkg])
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@provider.load_current_resource
- @new_resource.package_name.should == "test-package"
+ expect(@new_resource.package_name).to eq("test-package")
end
it "should search provides if package name can't be found, warn about multiple matches, but use the first one" do
@@ -261,14 +261,14 @@ describe Chef::Provider::Package::Yum do
:version_available? => true,
:disable_extra_repo_control => true
)
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
pkg_x = Chef::Provider::Package::Yum::RPMPackage.new("test-package-x", "1.2.4-11.18.el5", "x86_64", [])
pkg_y = Chef::Provider::Package::Yum::RPMPackage.new("test-package-y", "1.2.6-11.3.el5", "i386", [])
- @yum_cache.should_receive(:packages_from_require).and_return([pkg_x, pkg_y])
- Chef::Log.should_receive(:warn).exactly(1).times.with(%r{matched multiple Provides})
+ expect(@yum_cache).to receive(:packages_from_require).and_return([pkg_x, pkg_y])
+ expect(Chef::Log).to receive(:warn).exactly(1).times.with(%r{matched multiple Provides})
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@provider.load_current_resource
- @new_resource.package_name.should == "test-package-x"
+ expect(@new_resource.package_name).to eq("test-package-x")
end
it "should search provides if no package is available - if no match in installed provides then load the complete set" do
@@ -282,9 +282,9 @@ describe Chef::Provider::Package::Yum do
:version_available? => true,
:disable_extra_repo_control => true
)
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
- @yum_cache.should_receive(:packages_from_require).twice.and_return([])
- @yum_cache.should_receive(:reload_provides)
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
+ expect(@yum_cache).to receive(:packages_from_require).twice.and_return([])
+ expect(@yum_cache).to receive(:reload_provides)
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@provider.load_current_resource
end
@@ -300,14 +300,14 @@ describe Chef::Provider::Package::Yum do
:version_available? => true,
:disable_extra_repo_control => true
)
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
- @yum_cache.should_receive(:packages_from_require).once.and_return([])
- @yum_cache.should_not_receive(:reload_provides)
+ expect(@yum_cache).to receive(:packages_from_require).once.and_return([])
+ expect(@yum_cache).not_to receive(:reload_provides)
@new_resource.action(:remove)
@provider.load_current_resource
- @yum_cache.should_receive(:packages_from_require).once.and_return([])
- @yum_cache.should_not_receive(:reload_provides)
+ expect(@yum_cache).to receive(:packages_from_require).once.and_return([])
+ expect(@yum_cache).not_to receive(:reload_provides)
@new_resource.action(:purge)
@provider.load_current_resource
end
@@ -324,27 +324,27 @@ describe Chef::Provider::Package::Yum do
:version_available? => true,
:disable_extra_repo_control => true
)
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
- @yum_cache.should_receive(:packages_from_require).twice.and_return([])
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
+ expect(@yum_cache).to receive(:packages_from_require).twice.and_return([])
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@provider.load_current_resource
- @new_resource.package_name.should == "cups"
+ expect(@new_resource.package_name).to eq("cups")
end
end
describe "when installing a package" do
it "should run yum install with the package name and version" do
@provider.load_current_resource
- Chef::Provider::Package::Yum::RPMUtils.stub(:rpmvercmp).and_return(-1)
- @provider.should_receive(:yum_command).with(
+ allow(Chef::Provider::Package::Yum::RPMUtils).to receive(:rpmvercmp).and_return(-1)
+ expect(@provider).to receive(:yum_command).with(
"yum -d0 -e0 -y install emacs-1.0"
)
@provider.install_package("emacs", "1.0")
end
it "should run yum localinstall if given a path to an rpm" do
- @new_resource.stub(:source).and_return("/tmp/emacs-21.4-20.el5.i386.rpm")
- @provider.should_receive(:yum_command).with(
+ allow(@new_resource).to receive(:source).and_return("/tmp/emacs-21.4-20.el5.i386.rpm")
+ expect(@provider).to receive(:yum_command).with(
"yum -d0 -e0 -y localinstall /tmp/emacs-21.4-20.el5.i386.rpm"
)
@provider.install_package("emacs", "21.4-20.el5")
@@ -352,10 +352,10 @@ describe Chef::Provider::Package::Yum do
it "should run yum localinstall if given a path to an rpm as the package" do
@new_resource = Chef::Resource::Package.new("/tmp/emacs-21.4-20.el5.i386.rpm")
- ::File.stub(:exists?).and_return(true)
+ allow(::File).to receive(:exists?).and_return(true)
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
- @new_resource.source.should == "/tmp/emacs-21.4-20.el5.i386.rpm"
- @provider.should_receive(:yum_command).with(
+ expect(@new_resource.source).to eq("/tmp/emacs-21.4-20.el5.i386.rpm")
+ expect(@provider).to receive(:yum_command).with(
"yum -d0 -e0 -y localinstall /tmp/emacs-21.4-20.el5.i386.rpm"
)
@provider.install_package("/tmp/emacs-21.4-20.el5.i386.rpm", "21.4-20.el5")
@@ -363,9 +363,9 @@ describe Chef::Provider::Package::Yum do
it "should run yum install with the package name, version and arch" do
@provider.load_current_resource
- @new_resource.stub(:arch).and_return("i386")
- Chef::Provider::Package::Yum::RPMUtils.stub(:rpmvercmp).and_return(-1)
- @provider.should_receive(:yum_command).with(
+ allow(@new_resource).to receive(:arch).and_return("i386")
+ allow(Chef::Provider::Package::Yum::RPMUtils).to receive(:rpmvercmp).and_return(-1)
+ expect(@provider).to receive(:yum_command).with(
"yum -d0 -e0 -y install emacs-21.4-20.el5.i386"
)
@provider.install_package("emacs", "21.4-20.el5")
@@ -374,9 +374,9 @@ describe Chef::Provider::Package::Yum do
it "installs the package with the options given in the resource" do
@provider.load_current_resource
@provider.candidate_version = '11'
- @new_resource.stub(:options).and_return("--disablerepo epmd")
- Chef::Provider::Package::Yum::RPMUtils.stub(:rpmvercmp).and_return(-1)
- @provider.should_receive(:yum_command).with(
+ allow(@new_resource).to receive(:options).and_return("--disablerepo epmd")
+ allow(Chef::Provider::Package::Yum::RPMUtils).to receive(:rpmvercmp).and_return(-1)
+ expect(@provider).to receive(:yum_command).with(
"yum -d0 -e0 -y --disablerepo epmd install cups-11"
)
@provider.install_package(@new_resource.name, @provider.candidate_version)
@@ -393,13 +393,13 @@ describe Chef::Provider::Package::Yum do
:version_available? => nil,
:disable_extra_repo_control => true
)
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
- lambda { @provider.install_package("lolcats", "0.99") }.should raise_error(Chef::Exceptions::Package, %r{Version .* not found})
+ expect { @provider.install_package("lolcats", "0.99") }.to raise_error(Chef::Exceptions::Package, %r{Version .* not found})
end
it "should raise an exception if candidate version is older than the installed version and allow_downgrade is false" do
- @new_resource.stub(:allow_downgrade).and_return(false)
+ allow(@new_resource).to receive(:allow_downgrade).and_return(false)
@yum_cache = double(
'Chef::Provider::Yum::YumCache',
:reload_installed => true,
@@ -411,10 +411,10 @@ describe Chef::Provider::Package::Yum do
:allow_multi_install => [ "kernel" ],
:disable_extra_repo_control => true
)
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@provider.load_current_resource
- lambda { @provider.install_package("cups", "1.2.4-11.15.el5") }.should raise_error(Chef::Exceptions::Package, %r{is newer than candidate package})
+ expect { @provider.install_package("cups", "1.2.4-11.15.el5") }.to raise_error(Chef::Exceptions::Package, %r{is newer than candidate package})
end
it "should not raise an exception if candidate version is older than the installed version and the package is list in yum's installonlypkg option" do
@@ -430,17 +430,17 @@ describe Chef::Provider::Package::Yum do
:package_repository => "base",
:disable_extra_repo_control => true
)
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@provider.load_current_resource
- @provider.should_receive(:yum_command).with(
+ expect(@provider).to receive(:yum_command).with(
"yum -d0 -e0 -y install cups-1.2.4-11.15.el5"
)
@provider.install_package("cups", "1.2.4-11.15.el5")
end
it "should run yum downgrade if candidate version is older than the installed version and allow_downgrade is true" do
- @new_resource.stub(:allow_downgrade).and_return(true)
+ allow(@new_resource).to receive(:allow_downgrade).and_return(true)
@yum_cache = double(
'Chef::Provider::Yum::YumCache',
:reload_installed => true,
@@ -453,34 +453,34 @@ describe Chef::Provider::Package::Yum do
:package_repository => "base",
:disable_extra_repo_control => true
)
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@provider.load_current_resource
- @provider.should_receive(:yum_command).with(
+ expect(@provider).to receive(:yum_command).with(
"yum -d0 -e0 -y downgrade cups-1.2.4-11.15.el5"
)
@provider.install_package("cups", "1.2.4-11.15.el5")
end
it "should run yum install then flush the cache if :after is true" do
- @new_resource.stub(:flush_cache).and_return({:after => true, :before => false})
+ allow(@new_resource).to receive(:flush_cache).and_return({:after => true, :before => false})
@provider.load_current_resource
- Chef::Provider::Package::Yum::RPMUtils.stub(:rpmvercmp).and_return(-1)
- @provider.should_receive(:yum_command).with(
+ allow(Chef::Provider::Package::Yum::RPMUtils).to receive(:rpmvercmp).and_return(-1)
+ expect(@provider).to receive(:yum_command).with(
"yum -d0 -e0 -y install emacs-1.0"
)
- @yum_cache.should_receive(:reload).once
+ expect(@yum_cache).to receive(:reload).once
@provider.install_package("emacs", "1.0")
end
it "should run yum install then not flush the cache if :after is false" do
- @new_resource.stub(:flush_cache).and_return({:after => false, :before => false})
+ allow(@new_resource).to receive(:flush_cache).and_return({:after => false, :before => false})
@provider.load_current_resource
- Chef::Provider::Package::Yum::RPMUtils.stub(:rpmvercmp).and_return(-1)
- @provider.should_receive(:yum_command).with(
+ allow(Chef::Provider::Package::Yum::RPMUtils).to receive(:rpmvercmp).and_return(-1)
+ expect(@provider).to receive(:yum_command).with(
"yum -d0 -e0 -y install emacs-1.0"
)
- @yum_cache.should_not_receive(:reload)
+ expect(@yum_cache).not_to receive(:reload)
@provider.install_package("emacs", "1.0")
end
end
@@ -489,8 +489,8 @@ describe Chef::Provider::Package::Yum do
it "should run yum install if the package is installed and a version is given" do
@provider.load_current_resource
@provider.candidate_version = '11'
- Chef::Provider::Package::Yum::RPMUtils.stub(:rpmvercmp).and_return(-1)
- @provider.should_receive(:yum_command).with(
+ allow(Chef::Provider::Package::Yum::RPMUtils).to receive(:rpmvercmp).and_return(-1)
+ expect(@provider).to receive(:yum_command).with(
"yum -d0 -e0 -y install cups-11"
)
@provider.upgrade_package(@new_resource.name, @provider.candidate_version)
@@ -500,8 +500,8 @@ describe Chef::Provider::Package::Yum do
@provider.load_current_resource
@current_resource = Chef::Resource::Package.new('cups')
@provider.candidate_version = '11'
- Chef::Provider::Package::Yum::RPMUtils.stub(:rpmvercmp).and_return(-1)
- @provider.should_receive(:yum_command).with(
+ allow(Chef::Provider::Package::Yum::RPMUtils).to receive(:rpmvercmp).and_return(-1)
+ expect(@provider).to receive(:yum_command).with(
"yum -d0 -e0 -y install cups-11"
)
@provider.upgrade_package(@new_resource.name, @provider.candidate_version)
@@ -519,19 +519,19 @@ describe Chef::Provider::Package::Yum do
:allow_multi_install => [ "kernel" ],
:disable_extra_repo_control => true
)
- Chef::Provider::Package::Yum::YumCache.stub(:instance).and_return(@yum_cache)
+ allow(Chef::Provider::Package::Yum::YumCache).to receive(:instance).and_return(@yum_cache)
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@provider.load_current_resource
- lambda { @provider.upgrade_package("cups", "1.2.4-11.15.el5") }.should raise_error(Chef::Exceptions::Package, %r{is newer than candidate package})
+ expect { @provider.upgrade_package("cups", "1.2.4-11.15.el5") }.to raise_error(Chef::Exceptions::Package, %r{is newer than candidate package})
end
# Test our little workaround, some crossover into Chef::Provider::Package territory
it "should call action_upgrade in the parent if the current resource version is nil" do
- @yum_cache.stub(:installed_version).and_return(nil)
+ allow(@yum_cache).to receive(:installed_version).and_return(nil)
@provider.load_current_resource
@current_resource = Chef::Resource::Package.new('cups')
@provider.candidate_version = '11'
- @provider.should_receive(:upgrade_package).with(
+ expect(@provider).to receive(:upgrade_package).with(
"cups",
"11"
)
@@ -542,7 +542,7 @@ describe Chef::Provider::Package::Yum do
@provider.load_current_resource
@current_resource = Chef::Resource::Package.new('cups')
@provider.candidate_version = nil
- @provider.should_not_receive(:upgrade_package)
+ expect(@provider).not_to receive(:upgrade_package)
@provider.action_upgrade
end
@@ -550,7 +550,7 @@ describe Chef::Provider::Package::Yum do
@provider.load_current_resource
@current_resource = Chef::Resource::Package.new('cups')
@provider.candidate_version = '11'
- @provider.should_receive(:upgrade_package).with(
+ expect(@provider).to receive(:upgrade_package).with(
"cups",
"11"
)
@@ -558,26 +558,26 @@ describe Chef::Provider::Package::Yum do
end
it "should not call action_upgrade in the parent if the candidate is older" do
- @yum_cache.stub(:installed_version).and_return("12")
+ allow(@yum_cache).to receive(:installed_version).and_return("12")
@provider.load_current_resource
@current_resource = Chef::Resource::Package.new('cups')
@provider.candidate_version = '11'
- @provider.should_not_receive(:upgrade_package)
+ expect(@provider).not_to receive(:upgrade_package)
@provider.action_upgrade
end
end
describe "when removing a package" do
it "should run yum remove with the package name" do
- @provider.should_receive(:yum_command).with(
+ expect(@provider).to receive(:yum_command).with(
"yum -d0 -e0 -y remove emacs-1.0"
)
@provider.remove_package("emacs", "1.0")
end
it "should run yum remove with the package name and arch" do
- @new_resource.stub(:arch).and_return("x86_64")
- @provider.should_receive(:yum_command).with(
+ allow(@new_resource).to receive(:arch).and_return("x86_64")
+ expect(@provider).to receive(:yum_command).with(
"yum -d0 -e0 -y remove emacs-1.0.x86_64"
)
@provider.remove_package("emacs", "1.0")
@@ -586,7 +586,7 @@ describe Chef::Provider::Package::Yum do
describe "when purging a package" do
it "should run yum remove with the package name" do
- @provider.should_receive(:yum_command).with(
+ expect(@provider).to receive(:yum_command).with(
"yum -d0 -e0 -y remove emacs-1.0"
)
@provider.purge_package("emacs", "1.0")
@@ -596,8 +596,8 @@ describe Chef::Provider::Package::Yum do
describe "when running yum" do
it "should run yum once if it exits with a return code of 0" do
@status = double("Status", :exitstatus => 0)
- @provider.stub(:output_of_command).and_return([@status, "", ""])
- @provider.should_receive(:output_of_command).once.with(
+ allow(@provider).to receive(:output_of_command).and_return([@status, "", ""])
+ expect(@provider).to receive(:output_of_command).once.with(
"yum -d0 -e0 -y install emacs-1.0",
{:timeout => Chef::Config[:yum_timeout]}
)
@@ -606,34 +606,34 @@ describe Chef::Provider::Package::Yum do
it "should run yum once if it exits with a return code > 0 and no scriptlet failures" do
@status = double("Status", :exitstatus => 2)
- @provider.stub(:output_of_command).and_return([@status, "failure failure", "problem problem"])
- @provider.should_receive(:output_of_command).once.with(
+ allow(@provider).to receive(:output_of_command).and_return([@status, "failure failure", "problem problem"])
+ expect(@provider).to receive(:output_of_command).once.with(
"yum -d0 -e0 -y install emacs-1.0",
{:timeout => Chef::Config[:yum_timeout]}
)
- lambda { @provider.yum_command("yum -d0 -e0 -y install emacs-1.0") }.should raise_error(Chef::Exceptions::Exec)
+ expect { @provider.yum_command("yum -d0 -e0 -y install emacs-1.0") }.to raise_error(Chef::Exceptions::Exec)
end
it "should run yum once if it exits with a return code of 1 and %pre scriptlet failures" do
@status = double("Status", :exitstatus => 1)
- @provider.stub(:output_of_command).and_return([@status, "error: %pre(demo-1-1.el5.centos.x86_64) scriptlet failed, exit status 2", ""])
- @provider.should_receive(:output_of_command).once.with(
+ allow(@provider).to receive(:output_of_command).and_return([@status, "error: %pre(demo-1-1.el5.centos.x86_64) scriptlet failed, exit status 2", ""])
+ expect(@provider).to receive(:output_of_command).once.with(
"yum -d0 -e0 -y install emacs-1.0",
{:timeout => Chef::Config[:yum_timeout]}
)
# will still raise an exception, can't stub out the subsequent call
- lambda { @provider.yum_command("yum -d0 -e0 -y install emacs-1.0") }.should raise_error(Chef::Exceptions::Exec)
+ expect { @provider.yum_command("yum -d0 -e0 -y install emacs-1.0") }.to raise_error(Chef::Exceptions::Exec)
end
it "should run yum twice if it exits with a return code of 1 and %post scriptlet failures" do
@status = double("Status", :exitstatus => 1)
- @provider.stub(:output_of_command).and_return([@status, "error: %post(demo-1-1.el5.centos.x86_64) scriptlet failed, exit status 2", ""])
- @provider.should_receive(:output_of_command).twice.with(
+ allow(@provider).to receive(:output_of_command).and_return([@status, "error: %post(demo-1-1.el5.centos.x86_64) scriptlet failed, exit status 2", ""])
+ expect(@provider).to receive(:output_of_command).twice.with(
"yum -d0 -e0 -y install emacs-1.0",
{:timeout => Chef::Config[:yum_timeout]}
)
# will still raise an exception, can't stub out the subsequent call
- lambda { @provider.yum_command("yum -d0 -e0 -y install emacs-1.0") }.should raise_error(Chef::Exceptions::Exec)
+ expect { @provider.yum_command("yum -d0 -e0 -y install emacs-1.0") }.to raise_error(Chef::Exceptions::Exec)
end
end
end
@@ -650,7 +650,7 @@ describe Chef::Provider::Package::Yum::RPMUtils do
[ "9:1.7.3", [ 9, "1.7.3", nil ] ],
[ "15:20020927", [ 15, "20020927", nil ] ]
].each do |x, y|
- @rpmutils.version_parse(x).should == y
+ expect(@rpmutils.version_parse(x)).to eq(y)
end
end
@@ -660,7 +660,7 @@ describe Chef::Provider::Package::Yum::RPMUtils do
[ "-1:1.7.3", [ nil, nil, "1:1.7.3" ] ],
[ "-:20020927", [ nil, nil, ":20020927" ] ]
].each do |x, y|
- @rpmutils.version_parse(x).should == y
+ expect(@rpmutils.version_parse(x)).to eq(y)
end
end
@@ -670,7 +670,7 @@ describe Chef::Provider::Package::Yum::RPMUtils do
[ "1.7.3", [ nil, "1.7.3", nil ] ],
[ "20020927", [ nil, "20020927", nil ] ]
].each do |x, y|
- @rpmutils.version_parse(x).should == y
+ expect(@rpmutils.version_parse(x)).to eq(y)
end
end
@@ -680,7 +680,7 @@ describe Chef::Provider::Package::Yum::RPMUtils do
[ "0001.7.3", [ nil, "0001.7.3", nil ] ],
[ "20020927,3", [ nil, "20020927,3", nil ] ]
].each do |x, y|
- @rpmutils.version_parse(x).should == y
+ expect(@rpmutils.version_parse(x)).to eq(y)
end
end
@@ -690,7 +690,7 @@ describe Chef::Provider::Package::Yum::RPMUtils do
[ "1.7.3-1jpp.2.el5", [ nil, "1.7.3", "1jpp.2.el5" ] ],
[ "20020927-46.el5", [ nil, "20020927", "46.el5" ] ]
].each do |x, y|
- @rpmutils.version_parse(x).should == y
+ expect(@rpmutils.version_parse(x)).to eq(y)
end
end
@@ -700,7 +700,7 @@ describe Chef::Provider::Package::Yum::RPMUtils do
[ "-1jpp.2.el5", [ nil, nil, "1jpp.2.el5" ] ],
[ "-0020020927-46.el5", [ nil, "-0020020927", "46.el5" ] ]
].each do |x, y|
- @rpmutils.version_parse(x).should == y
+ expect(@rpmutils.version_parse(x)).to eq(y)
end
end
end
@@ -757,7 +757,7 @@ describe Chef::Provider::Package::Yum::RPMUtils do
[ "0.0.1aa", "0.0.1aa", 0 ],
[ "0.0.1a", "0.0.1aa", -1 ],
].each do |x, y, result|
- @rpmutils.rpmvercmp(x,y).should == result
+ expect(@rpmutils.rpmvercmp(x,y)).to eq(result)
end
end
@@ -776,43 +776,43 @@ describe Chef::Provider::Package::Yum::RPMUtils do
[ "", "", 0 ],
[ "", "1.0.1", -1 ]
].each do |x, y, result|
- @rpmutils.rpmvercmp(x,y).should == result
+ expect(@rpmutils.rpmvercmp(x,y)).to eq(result)
end
end
it "tests isalnum good input" do
[ 'a', 'z', 'A', 'Z', '0', '9' ].each do |t|
- @rpmutils.isalnum(t).should == true
+ expect(@rpmutils.isalnum(t)).to eq(true)
end
end
it "tests isalnum bad input" do
[ '-', '.', '!', '^', ':', '_' ].each do |t|
- @rpmutils.isalnum(t).should == false
+ expect(@rpmutils.isalnum(t)).to eq(false)
end
end
it "tests isalpha good input" do
[ 'a', 'z', 'A', 'Z', ].each do |t|
- @rpmutils.isalpha(t).should == true
+ expect(@rpmutils.isalpha(t)).to eq(true)
end
end
it "tests isalpha bad input" do
[ '0', '9', '-', '.', '!', '^', ':', '_' ].each do |t|
- @rpmutils.isalpha(t).should == false
+ expect(@rpmutils.isalpha(t)).to eq(false)
end
end
it "tests isdigit good input" do
[ '0', '9', ].each do |t|
- @rpmutils.isdigit(t).should == true
+ expect(@rpmutils.isdigit(t)).to eq(true)
end
end
it "tests isdigit bad input" do
[ 'A', 'z', '-', '.', '!', '^', ':', '_' ].each do |t|
- @rpmutils.isdigit(t).should == false
+ expect(@rpmutils.isdigit(t)).to eq(false)
end
end
end
@@ -826,15 +826,15 @@ describe Chef::Provider::Package::Yum::RPMVersion do
end
it "should expose evr (name-version-release) available" do
- @rpmv.e.should == 1
- @rpmv.v.should == "1.6.5"
- @rpmv.r.should == "9.36.el5"
+ expect(@rpmv.e).to eq(1)
+ expect(@rpmv.v).to eq("1.6.5")
+ expect(@rpmv.r).to eq("9.36.el5")
- @rpmv.evr.should == "1:1.6.5-9.36.el5"
+ expect(@rpmv.evr).to eq("1:1.6.5-9.36.el5")
end
it "should output a version-release string" do
- @rpmv.to_s.should == "1.6.5-9.36.el5"
+ expect(@rpmv.to_s).to eq("1.6.5-9.36.el5")
end
end
@@ -844,34 +844,34 @@ describe Chef::Provider::Package::Yum::RPMVersion do
end
it "should expose evr (name-version-release) available" do
- @rpmv.e.should == 1
- @rpmv.v.should == "1.6.5"
- @rpmv.r.should == "9.36.el5"
+ expect(@rpmv.e).to eq(1)
+ expect(@rpmv.v).to eq("1.6.5")
+ expect(@rpmv.r).to eq("9.36.el5")
- @rpmv.evr.should == "1:1.6.5-9.36.el5"
+ expect(@rpmv.evr).to eq("1:1.6.5-9.36.el5")
end
it "should output a version-release string" do
- @rpmv.to_s.should == "1.6.5-9.36.el5"
+ expect(@rpmv.to_s).to eq("1.6.5-9.36.el5")
end
end
it "should raise an error unless passed 1 or 3 args" do
- lambda {
+ expect {
Chef::Provider::Package::Yum::RPMVersion.new()
- }.should raise_error(ArgumentError)
- lambda {
+ }.to raise_error(ArgumentError)
+ expect {
Chef::Provider::Package::Yum::RPMVersion.new("1:1.6.5-9.36.el5")
- }.should_not raise_error
- lambda {
+ }.not_to raise_error
+ expect {
Chef::Provider::Package::Yum::RPMVersion.new("1:1.6.5-9.36.el5", "extra")
- }.should raise_error(ArgumentError)
- lambda {
+ }.to raise_error(ArgumentError)
+ expect {
Chef::Provider::Package::Yum::RPMVersion.new("1", "1.6.5", "9.36.el5")
- }.should_not raise_error
- lambda {
+ }.not_to raise_error
+ expect {
Chef::Provider::Package::Yum::RPMVersion.new("1", "1.6.5", "9.36.el5", "extra")
- }.should raise_error(ArgumentError)
+ }.to raise_error(ArgumentError)
end
# thanks version_class_spec.rb!
@@ -898,9 +898,9 @@ describe Chef::Provider::Package::Yum::RPMVersion do
].each do |smaller, larger|
sm = Chef::Provider::Package::Yum::RPMVersion.new(smaller)
lg = Chef::Provider::Package::Yum::RPMVersion.new(larger)
- sm.should be < lg
- lg.should be > sm
- sm.should_not == lg
+ expect(sm).to be < lg
+ expect(lg).to be > sm
+ expect(sm).not_to eq(lg)
end
end
@@ -924,9 +924,9 @@ describe Chef::Provider::Package::Yum::RPMVersion do
].each do |smaller, larger|
sm = Chef::Provider::Package::Yum::RPMVersion.new(smaller)
lg = Chef::Provider::Package::Yum::RPMVersion.new(larger)
- sm.should be < lg
- lg.should be > sm
- sm.should_not == lg
+ expect(sm).to be < lg
+ expect(lg).to be > sm
+ expect(sm).not_to eq(lg)
end
end
@@ -941,7 +941,7 @@ describe Chef::Provider::Package::Yum::RPMVersion do
].each do |smaller, larger|
sm = Chef::Provider::Package::Yum::RPMVersion.new(smaller)
lg = Chef::Provider::Package::Yum::RPMVersion.new(larger)
- sm.should be == lg
+ expect(sm).to eq(lg)
end
end
@@ -956,7 +956,7 @@ describe Chef::Provider::Package::Yum::RPMVersion do
].each do |smaller, larger|
sm = Chef::Provider::Package::Yum::RPMVersion.new(smaller)
lg = Chef::Provider::Package::Yum::RPMVersion.new(larger)
- sm.should be == lg
+ expect(sm).to eq(lg)
end
end
end
@@ -980,9 +980,9 @@ describe Chef::Provider::Package::Yum::RPMVersion do
].each do |smaller, larger|
sm = Chef::Provider::Package::Yum::RPMVersion.new(smaller)
lg = Chef::Provider::Package::Yum::RPMVersion.new(larger)
- sm.partial_compare(lg).should be == -1
- lg.partial_compare(sm).should be == 1
- sm.partial_compare(lg).should_not be == 0
+ expect(sm.partial_compare(lg)).to eq(-1)
+ expect(lg.partial_compare(sm)).to eq(1)
+ expect(sm.partial_compare(lg)).not_to eq(0)
end
end
@@ -997,7 +997,7 @@ describe Chef::Provider::Package::Yum::RPMVersion do
].each do |smaller, larger|
sm = Chef::Provider::Package::Yum::RPMVersion.new(smaller)
lg = Chef::Provider::Package::Yum::RPMVersion.new(larger)
- sm.partial_compare(lg).should be == 0
+ expect(sm.partial_compare(lg)).to eq(0)
end
end
end
@@ -1011,18 +1011,18 @@ describe Chef::Provider::Package::Yum::RPMPackage do
end
it "should expose nevra (name-epoch-version-release-arch) available" do
- @rpm.name.should == "testing"
- @rpm.version.e.should == 1
- @rpm.version.v.should == "1.6.5"
- @rpm.version.r.should == "9.36.el5"
- @rpm.arch.should == "x86_64"
+ expect(@rpm.name).to eq("testing")
+ expect(@rpm.version.e).to eq(1)
+ expect(@rpm.version.v).to eq("1.6.5")
+ expect(@rpm.version.r).to eq("9.36.el5")
+ expect(@rpm.arch).to eq("x86_64")
- @rpm.nevra.should == "testing-1:1.6.5-9.36.el5.x86_64"
- @rpm.to_s.should == @rpm.nevra
+ expect(@rpm.nevra).to eq("testing-1:1.6.5-9.36.el5.x86_64")
+ expect(@rpm.to_s).to eq(@rpm.nevra)
end
it "should always have at least one provide, itself" do
- @rpm.provides.size.should == 1
+ expect(@rpm.provides.size).to eq(1)
@rpm.provides[0].name == "testing"
@rpm.provides[0].version.evr == "1:1.6.5-9.36.el5"
@rpm.provides[0].flag == :==
@@ -1035,18 +1035,18 @@ describe Chef::Provider::Package::Yum::RPMPackage do
end
it "should expose nevra (name-epoch-version-release-arch) available" do
- @rpm.name.should == "testing"
- @rpm.version.e.should == 1
- @rpm.version.v.should == "1.6.5"
- @rpm.version.r.should == "9.36.el5"
- @rpm.arch.should == "x86_64"
+ expect(@rpm.name).to eq("testing")
+ expect(@rpm.version.e).to eq(1)
+ expect(@rpm.version.v).to eq("1.6.5")
+ expect(@rpm.version.r).to eq("9.36.el5")
+ expect(@rpm.arch).to eq("x86_64")
- @rpm.nevra.should == "testing-1:1.6.5-9.36.el5.x86_64"
- @rpm.to_s.should == @rpm.nevra
+ expect(@rpm.nevra).to eq("testing-1:1.6.5-9.36.el5.x86_64")
+ expect(@rpm.to_s).to eq(@rpm.nevra)
end
it "should always have at least one provide, itself" do
- @rpm.provides.size.should == 1
+ expect(@rpm.provides.size).to eq(1)
@rpm.provides[0].name == "testing"
@rpm.provides[0].version.evr == "1:1.6.5-9.36.el5"
@rpm.provides[0].flag == :==
@@ -1054,30 +1054,30 @@ describe Chef::Provider::Package::Yum::RPMPackage do
end
it "should raise an error unless passed 4 or 6 args" do
- lambda {
+ expect {
Chef::Provider::Package::Yum::RPMPackage.new()
- }.should raise_error(ArgumentError)
- lambda {
+ }.to raise_error(ArgumentError)
+ expect {
Chef::Provider::Package::Yum::RPMPackage.new("testing")
- }.should raise_error(ArgumentError)
- lambda {
+ }.to raise_error(ArgumentError)
+ expect {
Chef::Provider::Package::Yum::RPMPackage.new("testing", "1:1.6.5-9.36.el5")
- }.should raise_error(ArgumentError)
- lambda {
+ }.to raise_error(ArgumentError)
+ expect {
Chef::Provider::Package::Yum::RPMPackage.new("testing", "1:1.6.5-9.36.el5", "x86_64")
- }.should raise_error(ArgumentError)
- lambda {
+ }.to raise_error(ArgumentError)
+ expect {
Chef::Provider::Package::Yum::RPMPackage.new("testing", "1:1.6.5-9.36.el5", "x86_64", [])
- }.should_not raise_error
- lambda {
+ }.not_to raise_error
+ expect {
Chef::Provider::Package::Yum::RPMPackage.new("testing", "1", "1.6.5", "9.36.el5", "x86_64")
- }.should raise_error(ArgumentError)
- lambda {
+ }.to raise_error(ArgumentError)
+ expect {
Chef::Provider::Package::Yum::RPMPackage.new("testing", "1", "1.6.5", "9.36.el5", "x86_64", [])
- }.should_not raise_error
- lambda {
+ }.not_to raise_error
+ expect {
Chef::Provider::Package::Yum::RPMPackage.new("testing", "1", "1.6.5", "9.36.el5", "x86_64", [], "extra")
- }.should raise_error(ArgumentError)
+ }.to raise_error(ArgumentError)
end
describe "<=>" do
@@ -1096,9 +1096,9 @@ describe Chef::Provider::Package::Yum::RPMPackage do
].each do |smaller, larger|
sm = Chef::Provider::Package::Yum::RPMPackage.new(smaller, "0:0.0.1-1", "x86_64", [])
lg = Chef::Provider::Package::Yum::RPMPackage.new(larger, "0:0.0.1-1", "x86_64", [])
- sm.should be < lg
- lg.should be > sm
- sm.should_not == lg
+ expect(sm).to be < lg
+ expect(lg).to be > sm
+ expect(sm).not_to eq(lg)
end
end
@@ -1113,9 +1113,9 @@ describe Chef::Provider::Package::Yum::RPMPackage do
].each do |smaller, larger|
sm = Chef::Provider::Package::Yum::RPMPackage.new("test-package", "0:0.0.1-1", smaller, [])
lg = Chef::Provider::Package::Yum::RPMPackage.new("test-package", "0:0.0.1-1", larger, [])
- sm.should be < lg
- lg.should be > sm
- sm.should_not == lg
+ expect(sm).to be < lg
+ expect(lg).to be > sm
+ expect(sm).not_to eq(lg)
end
end
end
@@ -1132,31 +1132,31 @@ describe Chef::Provider::Package::Yum::RPMDbPackage do
describe "initialize" do
it "should return a Chef::Provider::Package::Yum::RPMDbPackage object" do
- @rpm_x.should be_kind_of(Chef::Provider::Package::Yum::RPMDbPackage)
+ expect(@rpm_x).to be_kind_of(Chef::Provider::Package::Yum::RPMDbPackage)
end
end
describe "available" do
it "should return true" do
- @rpm_x.available.should be == true
- @rpm_y.available.should be == true
- @rpm_z.available.should be == false
+ expect(@rpm_x.available).to eq(true)
+ expect(@rpm_y.available).to eq(true)
+ expect(@rpm_z.available).to eq(false)
end
end
describe "installed" do
it "should return true" do
- @rpm_x.installed.should be == false
- @rpm_y.installed.should be == true
- @rpm_z.installed.should be == true
+ expect(@rpm_x.installed).to eq(false)
+ expect(@rpm_y.installed).to eq(true)
+ expect(@rpm_z.installed).to eq(true)
end
end
describe "repoid" do
it "should return the source repository repoid" do
- @rpm_x.repoid.should be == "base"
- @rpm_y.repoid.should be == "extras"
- @rpm_z.repoid.should be == "other"
+ expect(@rpm_x.repoid).to eq("base")
+ expect(@rpm_y.repoid).to eq("extras")
+ expect(@rpm_z.repoid).to eq("other")
end
end
end
@@ -1168,11 +1168,11 @@ describe Chef::Provider::Package::Yum::RPMDependency do
end
it "should expose name, version, flag available" do
- @rpmdep.name.should == "testing"
- @rpmdep.version.e.should == 1
- @rpmdep.version.v.should == "1.6.5"
- @rpmdep.version.r.should == "9.36.el5"
- @rpmdep.flag.should == :==
+ expect(@rpmdep.name).to eq("testing")
+ expect(@rpmdep.version.e).to eq(1)
+ expect(@rpmdep.version.v).to eq("1.6.5")
+ expect(@rpmdep.version.r).to eq("9.36.el5")
+ expect(@rpmdep.flag).to eq(:==)
end
end
@@ -1182,67 +1182,67 @@ describe Chef::Provider::Package::Yum::RPMDependency do
end
it "should expose name, version, flag available" do
- @rpmdep.name.should == "testing"
- @rpmdep.version.e.should == 1
- @rpmdep.version.v.should == "1.6.5"
- @rpmdep.version.r.should == "9.36.el5"
- @rpmdep.flag.should == :==
+ expect(@rpmdep.name).to eq("testing")
+ expect(@rpmdep.version.e).to eq(1)
+ expect(@rpmdep.version.v).to eq("1.6.5")
+ expect(@rpmdep.version.r).to eq("9.36.el5")
+ expect(@rpmdep.flag).to eq(:==)
end
end
it "should raise an error unless passed 3 or 5 args" do
- lambda {
+ expect {
Chef::Provider::Package::Yum::RPMDependency.new()
- }.should raise_error(ArgumentError)
- lambda {
+ }.to raise_error(ArgumentError)
+ expect {
Chef::Provider::Package::Yum::RPMDependency.new("testing")
- }.should raise_error(ArgumentError)
- lambda {
+ }.to raise_error(ArgumentError)
+ expect {
Chef::Provider::Package::Yum::RPMDependency.new("testing", "1:1.6.5-9.36.el5")
- }.should raise_error(ArgumentError)
- lambda {
+ }.to raise_error(ArgumentError)
+ expect {
Chef::Provider::Package::Yum::RPMDependency.new("testing", "1:1.6.5-9.36.el5", :==)
- }.should_not raise_error
- lambda {
+ }.not_to raise_error
+ expect {
Chef::Provider::Package::Yum::RPMDependency.new("testing", "1:1.6.5-9.36.el5", :==, "extra")
- }.should raise_error(ArgumentError)
- lambda {
+ }.to raise_error(ArgumentError)
+ expect {
Chef::Provider::Package::Yum::RPMDependency.new("testing", "1", "1.6.5", "9.36.el5", :==)
- }.should_not raise_error
- lambda {
+ }.not_to raise_error
+ expect {
Chef::Provider::Package::Yum::RPMDependency.new("testing", "1", "1.6.5", "9.36.el5", :==, "extra")
- }.should raise_error(ArgumentError)
+ }.to raise_error(ArgumentError)
end
describe "parse" do
it "should parse a name, flag, version string into a valid RPMDependency object" do
@rpmdep = Chef::Provider::Package::Yum::RPMDependency.parse("testing >= 1:1.6.5-9.36.el5")
- @rpmdep.name.should == "testing"
- @rpmdep.version.e.should == 1
- @rpmdep.version.v.should == "1.6.5"
- @rpmdep.version.r.should == "9.36.el5"
- @rpmdep.flag.should == :>=
+ expect(@rpmdep.name).to eq("testing")
+ expect(@rpmdep.version.e).to eq(1)
+ expect(@rpmdep.version.v).to eq("1.6.5")
+ expect(@rpmdep.version.r).to eq("9.36.el5")
+ expect(@rpmdep.flag).to eq(:>=)
end
it "should parse a name into a valid RPMDependency object" do
@rpmdep = Chef::Provider::Package::Yum::RPMDependency.parse("testing")
- @rpmdep.name.should == "testing"
- @rpmdep.version.e.should == nil
- @rpmdep.version.v.should == nil
- @rpmdep.version.r.should == nil
- @rpmdep.flag.should == :==
+ expect(@rpmdep.name).to eq("testing")
+ expect(@rpmdep.version.e).to eq(nil)
+ expect(@rpmdep.version.v).to eq(nil)
+ expect(@rpmdep.version.r).to eq(nil)
+ expect(@rpmdep.flag).to eq(:==)
end
it "should parse an invalid string into the name of a RPMDependency object" do
@rpmdep = Chef::Provider::Package::Yum::RPMDependency.parse("testing blah >")
- @rpmdep.name.should == "testing blah >"
- @rpmdep.version.e.should == nil
- @rpmdep.version.v.should == nil
- @rpmdep.version.r.should == nil
- @rpmdep.flag.should == :==
+ expect(@rpmdep.name).to eq("testing blah >")
+ expect(@rpmdep.version.e).to eq(nil)
+ expect(@rpmdep.version.v).to eq(nil)
+ expect(@rpmdep.version.r).to eq(nil)
+ expect(@rpmdep.flag).to eq(:==)
end
it "should parse various valid flags" do
@@ -1255,7 +1255,7 @@ describe Chef::Provider::Package::Yum::RPMDependency do
[ "<", :< ]
].each do |before, after|
@rpmdep = Chef::Provider::Package::Yum::RPMDependency.parse("testing #{before} 1:1.1-1")
- @rpmdep.flag.should == after
+ expect(@rpmdep.flag).to eq(after)
end
end
@@ -1269,8 +1269,8 @@ describe Chef::Provider::Package::Yum::RPMDependency do
[ "~", :== ]
].each do |before, after|
@rpmdep = Chef::Provider::Package::Yum::RPMDependency.parse("testing #{before} 1:1.1-1")
- @rpmdep.name.should == "testing #{before} 1:1.1-1"
- @rpmdep.flag.should == after
+ expect(@rpmdep.name).to eq("testing #{before} 1:1.1-1")
+ expect(@rpmdep.flag).to eq(after)
end
end
end
@@ -1279,12 +1279,12 @@ describe Chef::Provider::Package::Yum::RPMDependency do
it "should raise an error unless a RPMDependency is passed" do
@rpmprovide = Chef::Provider::Package::Yum::RPMDependency.new("testing", "1:1.6.5-9.36.el5", :==)
@rpmrequire = Chef::Provider::Package::Yum::RPMDependency.new("testing", "1:1.6.5-9.36.el5", :>=)
- lambda {
+ expect {
@rpmprovide.satisfy?("hi")
- }.should raise_error(ArgumentError)
- lambda {
+ }.to raise_error(ArgumentError)
+ expect {
@rpmprovide.satisfy?(@rpmrequire)
- }.should_not raise_error
+ }.not_to raise_error
end
it "should validate dependency satisfaction logic for standard examples" do
@@ -1326,8 +1326,8 @@ describe Chef::Provider::Package::Yum::RPMDependency do
@rpmprovide = Chef::Provider::Package::Yum::RPMDependency.parse(prov)
@rpmrequire = Chef::Provider::Package::Yum::RPMDependency.parse(req)
- @rpmprovide.satisfy?(@rpmrequire).should == result
- @rpmrequire.satisfy?(@rpmprovide).should == result
+ expect(@rpmprovide.satisfy?(@rpmrequire)).to eq(result)
+ expect(@rpmrequire.satisfy?(@rpmprovide)).to eq(result)
end
end
end
@@ -1358,89 +1358,89 @@ describe Chef::Provider::Package::Yum::RPMDb do
describe "initialize" do
it "should return a Chef::Provider::Package::Yum::RPMDb object" do
- @rpmdb.should be_kind_of(Chef::Provider::Package::Yum::RPMDb)
+ expect(@rpmdb).to be_kind_of(Chef::Provider::Package::Yum::RPMDb)
end
end
describe "push" do
it "should accept an RPMDbPackage object through pushing" do
- lambda { @rpmdb.push(@rpm_w) }.should_not raise_error
+ expect { @rpmdb.push(@rpm_w) }.not_to raise_error
end
it "should accept multiple RPMDbPackage object through pushing" do
- lambda { @rpmdb.push(@rpm_w, @rpm_x, @rpm_y, @rpm_z) }.should_not raise_error
+ expect { @rpmdb.push(@rpm_w, @rpm_x, @rpm_y, @rpm_z) }.not_to raise_error
end
it "should only accept an RPMDbPackage object" do
- lambda { @rpmdb.push("string") }.should raise_error
+ expect { @rpmdb.push("string") }.to raise_error
end
it "should add the package to the package db" do
@rpmdb.push(@rpm_w)
- @rpmdb["test-package-b"].should_not be == nil
+ expect(@rpmdb["test-package-b"]).not_to eq(nil)
end
it "should add conditionally add the package to the available list" do
- @rpmdb.available_size.should be == 0
+ expect(@rpmdb.available_size).to eq(0)
@rpmdb.push(@rpm_v, @rpm_w)
- @rpmdb.available_size.should be == 1
+ expect(@rpmdb.available_size).to eq(1)
end
it "should add conditionally add the package to the installed list" do
- @rpmdb.installed_size.should be == 0
+ expect(@rpmdb.installed_size).to eq(0)
@rpmdb.push(@rpm_w, @rpm_x)
- @rpmdb.installed_size.should be == 1
+ expect(@rpmdb.installed_size).to eq(1)
end
it "should have a total of 2 packages in the RPMDb" do
- @rpmdb.size.should be == 0
+ expect(@rpmdb.size).to eq(0)
@rpmdb.push(@rpm_w, @rpm_x, @rpm_y, @rpm_z)
- @rpmdb.size.should be == 2
+ expect(@rpmdb.size).to eq(2)
end
it "should keep the Array unique when a duplicate is pushed" do
@rpmdb.push(@rpm_z, @rpm_z_mirror)
- @rpmdb["test-package-c"].size.should be == 1
+ expect(@rpmdb["test-package-c"].size).to eq(1)
end
it "should register the package provides in the provides index" do
@rpmdb.push(@rpm_v, @rpm_w, @rpm_z)
- @rpmdb.lookup_provides("test-package-a")[0].should be == @rpm_v
- @rpmdb.lookup_provides("config(test)")[0].should be == @rpm_z
- @rpmdb.lookup_provides("libz.so.1()(64bit)")[0].should be == @rpm_v
- @rpmdb.lookup_provides("libz.so.1()(64bit)")[1].should be == @rpm_z
+ expect(@rpmdb.lookup_provides("test-package-a")[0]).to eq(@rpm_v)
+ expect(@rpmdb.lookup_provides("config(test)")[0]).to eq(@rpm_z)
+ expect(@rpmdb.lookup_provides("libz.so.1()(64bit)")[0]).to eq(@rpm_v)
+ expect(@rpmdb.lookup_provides("libz.so.1()(64bit)")[1]).to eq(@rpm_z)
end
end
describe "<<" do
it "should accept an RPMPackage object through the << operator" do
- lambda { @rpmdb << @rpm_w }.should_not raise_error
+ expect { @rpmdb << @rpm_w }.not_to raise_error
end
end
describe "lookup" do
it "should return an Array of RPMPackage objects by index" do
@rpmdb << @rpm_w
- @rpmdb.lookup("test-package-b").should be_kind_of(Array)
+ expect(@rpmdb.lookup("test-package-b")).to be_kind_of(Array)
end
end
describe "[]" do
it "should return an Array of RPMPackage objects though the [index] operator" do
@rpmdb << @rpm_w
- @rpmdb["test-package-b"].should be_kind_of(Array)
+ expect(@rpmdb["test-package-b"]).to be_kind_of(Array)
end
it "should return an Array of 3 RPMPackage objects" do
@rpmdb.push(@rpm_w, @rpm_x, @rpm_y, @rpm_z)
- @rpmdb["test-package-b"].size.should be == 3
+ expect(@rpmdb["test-package-b"].size).to eq(3)
end
it "should return an Array of RPMPackage objects sorted from newest to oldest" do
@rpmdb.push(@rpm_w, @rpm_x, @rpm_y, @rpm_z)
- @rpmdb["test-package-b"][0].should be == @rpm_y
- @rpmdb["test-package-b"][1].should be == @rpm_x
- @rpmdb["test-package-b"][2].should be == @rpm_w
+ expect(@rpmdb["test-package-b"][0]).to eq(@rpm_y)
+ expect(@rpmdb["test-package-b"][1]).to eq(@rpm_x)
+ expect(@rpmdb["test-package-b"][2]).to eq(@rpm_w)
end
end
@@ -1448,57 +1448,57 @@ describe Chef::Provider::Package::Yum::RPMDb do
it "should return an Array of RPMPackage objects by index" do
@rpmdb << @rpm_z
x = @rpmdb.lookup_provides("config(test)")
- x.should be_kind_of(Array)
- x[0].should be == @rpm_z
+ expect(x).to be_kind_of(Array)
+ expect(x[0]).to eq(@rpm_z)
end
end
describe "clear" do
it "should clear the RPMDb" do
- @rpmdb.should_receive(:clear_available).once
- @rpmdb.should_receive(:clear_installed).once
+ expect(@rpmdb).to receive(:clear_available).once
+ expect(@rpmdb).to receive(:clear_installed).once
@rpmdb.push(@rpm_w, @rpm_x, @rpm_y, @rpm_z)
- @rpmdb.size.should_not be == 0
- @rpmdb.lookup_provides("config(test)").should be_kind_of(Array)
+ expect(@rpmdb.size).not_to eq(0)
+ expect(@rpmdb.lookup_provides("config(test)")).to be_kind_of(Array)
@rpmdb.clear
- @rpmdb.lookup_provides("config(test)").should be == nil
- @rpmdb.size.should be == 0
+ expect(@rpmdb.lookup_provides("config(test)")).to eq(nil)
+ expect(@rpmdb.size).to eq(0)
end
end
describe "clear_available" do
it "should clear the available list" do
@rpmdb.push(@rpm_w, @rpm_x, @rpm_y, @rpm_z)
- @rpmdb.available_size.should_not be == 0
+ expect(@rpmdb.available_size).not_to eq(0)
@rpmdb.clear_available
- @rpmdb.available_size.should be == 0
+ expect(@rpmdb.available_size).to eq(0)
end
end
describe "available?" do
it "should return true if a package is available" do
- @rpmdb.available?(@rpm_w).should be == false
+ expect(@rpmdb.available?(@rpm_w)).to eq(false)
@rpmdb.push(@rpm_v, @rpm_w)
- @rpmdb.available?(@rpm_v).should be == false
- @rpmdb.available?(@rpm_w).should be == true
+ expect(@rpmdb.available?(@rpm_v)).to eq(false)
+ expect(@rpmdb.available?(@rpm_w)).to eq(true)
end
end
describe "clear_installed" do
it "should clear the installed list" do
@rpmdb.push(@rpm_w, @rpm_x, @rpm_y, @rpm_z)
- @rpmdb.installed_size.should_not be == 0
+ expect(@rpmdb.installed_size).not_to eq(0)
@rpmdb.clear_installed
- @rpmdb.installed_size.should be == 0
+ expect(@rpmdb.installed_size).to eq(0)
end
end
describe "installed?" do
it "should return true if a package is installed" do
- @rpmdb.installed?(@rpm_w).should be == false
+ expect(@rpmdb.installed?(@rpm_w)).to eq(false)
@rpmdb.push(@rpm_w, @rpm_x)
- @rpmdb.installed?(@rpm_w).should be == true
- @rpmdb.installed?(@rpm_x).should be == false
+ expect(@rpmdb.installed?(@rpm_w)).to eq(true)
+ expect(@rpmdb.installed?(@rpm_x)).to eq(false)
end
end
@@ -1506,12 +1506,12 @@ describe Chef::Provider::Package::Yum::RPMDb do
it "should raise an error unless a RPMDependency is passed" do
@rpmprovide = Chef::Provider::Package::Yum::RPMDependency.new("testing", "1:1.6.5-9.36.el5", :==)
@rpmrequire = Chef::Provider::Package::Yum::RPMDependency.new("testing", "1:1.6.5-9.36.el5", :>=)
- lambda {
+ expect {
@rpmdb.whatprovides("hi")
- }.should raise_error(ArgumentError)
- lambda {
+ }.to raise_error(ArgumentError)
+ expect {
@rpmdb.whatprovides(@rpmrequire)
- }.should_not raise_error
+ }.not_to raise_error
end
it "should return an Array of packages statisfying a RPMDependency" do
@@ -1519,14 +1519,14 @@ describe Chef::Provider::Package::Yum::RPMDb do
@rpmrequire = Chef::Provider::Package::Yum::RPMDependency.parse("test-package-a >= 1.6.5")
x = @rpmdb.whatprovides(@rpmrequire)
- x.should be_kind_of(Array)
- x[0].should be == @rpm_v
+ expect(x).to be_kind_of(Array)
+ expect(x[0]).to eq(@rpm_v)
@rpmrequire = Chef::Provider::Package::Yum::RPMDependency.parse("libz.so.1()(64bit)")
x = @rpmdb.whatprovides(@rpmrequire)
- x.should be_kind_of(Array)
- x[0].should be == @rpm_v
- x[1].should be == @rpm_z
+ expect(x).to be_kind_of(Array)
+ expect(x[0]).to eq(@rpm_v)
+ expect(x[1]).to eq(@rpm_z)
end
end
@@ -1592,18 +1592,18 @@ EOF
Chef::Provider::Package::Yum::YumCache.reset_instance
@yc = Chef::Provider::Package::Yum::YumCache.instance
# load valid data
- @yc.stub(:shell_out!).and_return(@status)
+ allow(@yc).to receive(:shell_out!).and_return(@status)
end
describe "initialize" do
it "should return a Chef::Provider::Package::Yum::YumCache object" do
- @yc.should be_kind_of(Chef::Provider::Package::Yum::YumCache)
+ expect(@yc).to be_kind_of(Chef::Provider::Package::Yum::YumCache)
end
it "should register reload for start of Chef::Client runs" do
Chef::Provider::Package::Yum::YumCache.reset_instance
- Chef::Client.should_receive(:when_run_starts) do |&b|
- b.should_not be_nil
+ expect(Chef::Client).to receive(:when_run_starts) do |&b|
+ expect(b).not_to be_nil
end
@yc = Chef::Provider::Package::Yum::YumCache.instance
end
@@ -1611,7 +1611,7 @@ EOF
describe "refresh" do
it "should implicitly call yum-dump.py only once by default after being instantiated" do
- @yc.should_receive(:shell_out!).once
+ expect(@yc).to receive(:shell_out!).once
@yc.installed_version("zlib")
@yc.reset
@yc.installed_version("zlib")
@@ -1619,226 +1619,226 @@ EOF
it "should run yum-dump.py using the system python when next_refresh is for :all" do
@yc.reload
- @yc.should_receive(:shell_out!).with(%r{^/usr/bin/python .*/yum-dump.py --options --installed-provides --yum-lock-timeout 30$}, :timeout=>Chef::Config[:yum_timeout])
+ expect(@yc).to receive(:shell_out!).with(%r{^/usr/bin/python .*/yum-dump.py --options --installed-provides --yum-lock-timeout 30$}, :timeout=>Chef::Config[:yum_timeout])
@yc.refresh
end
it "should run yum-dump.py with the installed flag when next_refresh is for :installed" do
@yc.reload_installed
- @yc.should_receive(:shell_out!).with(%r{^/usr/bin/python .*/yum-dump.py --installed --yum-lock-timeout 30$}, :timeout=>Chef::Config[:yum_timeout])
+ expect(@yc).to receive(:shell_out!).with(%r{^/usr/bin/python .*/yum-dump.py --installed --yum-lock-timeout 30$}, :timeout=>Chef::Config[:yum_timeout])
@yc.refresh
end
it "should run yum-dump.py with the all-provides flag when next_refresh is for :provides" do
@yc.reload_provides
- @yc.should_receive(:shell_out!).with(%r{^/usr/bin/python .*/yum-dump.py --options --all-provides --yum-lock-timeout 30$}, :timeout=>Chef::Config[:yum_timeout])
+ expect(@yc).to receive(:shell_out!).with(%r{^/usr/bin/python .*/yum-dump.py --options --all-provides --yum-lock-timeout 30$}, :timeout=>Chef::Config[:yum_timeout])
@yc.refresh
end
it "should pass extra_repo_control args to yum-dump.py" do
@yc.enable_extra_repo_control("--enablerepo=foo --disablerepo=bar")
- @yc.should_receive(:shell_out!).with(%r{^/usr/bin/python .*/yum-dump.py --options --installed-provides --enablerepo=foo --disablerepo=bar --yum-lock-timeout 30$}, :timeout=>Chef::Config[:yum_timeout])
+ expect(@yc).to receive(:shell_out!).with(%r{^/usr/bin/python .*/yum-dump.py --options --installed-provides --enablerepo=foo --disablerepo=bar --yum-lock-timeout 30$}, :timeout=>Chef::Config[:yum_timeout])
@yc.refresh
end
it "should pass extra_repo_control args and configured yum lock timeout to yum-dump.py" do
Chef::Config[:yum_lock_timeout] = 999
@yc.enable_extra_repo_control("--enablerepo=foo --disablerepo=bar")
- @yc.should_receive(:shell_out!).with(%r{^/usr/bin/python .*/yum-dump.py --options --installed-provides --enablerepo=foo --disablerepo=bar --yum-lock-timeout 999$}, :timeout=>Chef::Config[:yum_timeout])
+ expect(@yc).to receive(:shell_out!).with(%r{^/usr/bin/python .*/yum-dump.py --options --installed-provides --enablerepo=foo --disablerepo=bar --yum-lock-timeout 999$}, :timeout=>Chef::Config[:yum_timeout])
@yc.refresh
end
it "should warn about invalid data with too many separators" do
@status = double("Status", :exitstatus => 0, :stdin => @stdin, :stdout => @stdout_bad_separators, :stderr => @stderr)
- @yc.stub(:shell_out!).and_return(@status)
- Chef::Log.should_receive(:warn).exactly(3).times.with(%r{Problem parsing})
+ allow(@yc).to receive(:shell_out!).and_return(@status)
+ expect(Chef::Log).to receive(:warn).exactly(3).times.with(%r{Problem parsing})
@yc.refresh
end
it "should warn about invalid data with an incorrect type" do
@status = double("Status", :exitstatus => 0, :stdin => @stdin, :stdout => @stdout_bad_type, :stderr => @stderr)
- @yc.stub(:shell_out!).and_return(@status)
- Chef::Log.should_receive(:warn).exactly(2).times.with(%r{Problem parsing})
+ allow(@yc).to receive(:shell_out!).and_return(@status)
+ expect(Chef::Log).to receive(:warn).exactly(2).times.with(%r{Problem parsing})
@yc.refresh
end
it "should warn about no output from yum-dump.py" do
@status = double("Status", :exitstatus => 0, :stdin => @stdin, :stdout => @stdout_no_output, :stderr => @stderr)
- @yc.stub(:shell_out!).and_return(@status)
- Chef::Log.should_receive(:warn).exactly(1).times.with(%r{no output from yum-dump.py})
+ allow(@yc).to receive(:shell_out!).and_return(@status)
+ expect(Chef::Log).to receive(:warn).exactly(1).times.with(%r{no output from yum-dump.py})
@yc.refresh
end
it "should raise exception yum-dump.py exits with a non zero status" do
@status = double("Status", :exitstatus => 1, :stdin => @stdin, :stdout => @stdout_no_output, :stderr => @stderr)
- @yc.stub(:shell_out!).and_return(@status)
- lambda { @yc.refresh}.should raise_error(Chef::Exceptions::Package, %r{CentOS-Base.repo, line: 12})
+ allow(@yc).to receive(:shell_out!).and_return(@status)
+ expect { @yc.refresh}.to raise_error(Chef::Exceptions::Package, %r{CentOS-Base.repo, line: 12})
end
it "should parse type 'i' into an installed state for a package" do
- @yc.available_version("erlang-mochiweb").should be == nil
- @yc.installed_version("erlang-mochiweb").should_not be == nil
+ expect(@yc.available_version("erlang-mochiweb")).to eq(nil)
+ expect(@yc.installed_version("erlang-mochiweb")).not_to eq(nil)
end
it "should parse type 'a' into an available state for a package" do
- @yc.available_version("znc").should_not be == nil
- @yc.installed_version("znc").should be == nil
+ expect(@yc.available_version("znc")).not_to eq(nil)
+ expect(@yc.installed_version("znc")).to eq(nil)
end
it "should parse type 'r' into an installed and available states for a package" do
- @yc.available_version("zip").should_not be == nil
- @yc.installed_version("zip").should_not be == nil
+ expect(@yc.available_version("zip")).not_to eq(nil)
+ expect(@yc.installed_version("zip")).not_to eq(nil)
end
it "should parse installonlypkgs from yum-dump.py options output" do
- @yc.allow_multi_install.should be == %w{kernel kernel-bigmem kernel-enterprise}
+ expect(@yc.allow_multi_install).to eq(%w{kernel kernel-bigmem kernel-enterprise})
end
end
describe "installed_version" do
it "should take one or two arguments" do
- lambda { @yc.installed_version("zip") }.should_not raise_error
- lambda { @yc.installed_version("zip", "i386") }.should_not raise_error
- lambda { @yc.installed_version("zip", "i386", "extra") }.should raise_error(ArgumentError)
+ expect { @yc.installed_version("zip") }.not_to raise_error
+ expect { @yc.installed_version("zip", "i386") }.not_to raise_error
+ expect { @yc.installed_version("zip", "i386", "extra") }.to raise_error(ArgumentError)
end
it "should return version-release for matching package regardless of arch" do
- @yc.installed_version("zip", "x86_64").should be == "2.31-2.el5"
- @yc.installed_version("zip", nil).should be == "2.31-2.el5"
+ expect(@yc.installed_version("zip", "x86_64")).to eq("2.31-2.el5")
+ expect(@yc.installed_version("zip", nil)).to eq("2.31-2.el5")
end
it "should return version-release for matching package and arch" do
- @yc.installed_version("zip", "x86_64").should be == "2.31-2.el5"
- @yc.installed_version("zisofs-tools", "i386").should be == nil
+ expect(@yc.installed_version("zip", "x86_64")).to eq("2.31-2.el5")
+ expect(@yc.installed_version("zisofs-tools", "i386")).to eq(nil)
end
it "should return nil for an unmatched package" do
- @yc.installed_version(nil, nil).should be == nil
- @yc.installed_version("test1", nil).should be == nil
- @yc.installed_version("test2", "x86_64").should be == nil
+ expect(@yc.installed_version(nil, nil)).to eq(nil)
+ expect(@yc.installed_version("test1", nil)).to eq(nil)
+ expect(@yc.installed_version("test2", "x86_64")).to eq(nil)
end
end
describe "available_version" do
it "should take one or two arguments" do
- lambda { @yc.available_version("zisofs-tools") }.should_not raise_error
- lambda { @yc.available_version("zisofs-tools", "i386") }.should_not raise_error
- lambda { @yc.available_version("zisofs-tools", "i386", "extra") }.should raise_error(ArgumentError)
+ expect { @yc.available_version("zisofs-tools") }.not_to raise_error
+ expect { @yc.available_version("zisofs-tools", "i386") }.not_to raise_error
+ expect { @yc.available_version("zisofs-tools", "i386", "extra") }.to raise_error(ArgumentError)
end
it "should return version-release for matching package regardless of arch" do
- @yc.available_version("zip", "x86_64").should be == "2.31-2.el5"
- @yc.available_version("zip", nil).should be == "2.31-2.el5"
+ expect(@yc.available_version("zip", "x86_64")).to eq("2.31-2.el5")
+ expect(@yc.available_version("zip", nil)).to eq("2.31-2.el5")
end
it "should return version-release for matching package and arch" do
- @yc.available_version("zip", "x86_64").should be == "2.31-2.el5"
- @yc.available_version("zisofs-tools", "i386").should be == nil
+ expect(@yc.available_version("zip", "x86_64")).to eq("2.31-2.el5")
+ expect(@yc.available_version("zisofs-tools", "i386")).to eq(nil)
end
it "should return nil for an unmatched package" do
- @yc.available_version(nil, nil).should be == nil
- @yc.available_version("test1", nil).should be == nil
- @yc.available_version("test2", "x86_64").should be == nil
+ expect(@yc.available_version(nil, nil)).to eq(nil)
+ expect(@yc.available_version("test1", nil)).to eq(nil)
+ expect(@yc.available_version("test2", "x86_64")).to eq(nil)
end
end
describe "version_available?" do
it "should take two or three arguments" do
- lambda { @yc.version_available?("zisofs-tools") }.should raise_error(ArgumentError)
- lambda { @yc.version_available?("zisofs-tools", "1.0.6-3.2.2") }.should_not raise_error
- lambda { @yc.version_available?("zisofs-tools", "1.0.6-3.2.2", "x86_64") }.should_not raise_error
+ expect { @yc.version_available?("zisofs-tools") }.to raise_error(ArgumentError)
+ expect { @yc.version_available?("zisofs-tools", "1.0.6-3.2.2") }.not_to raise_error
+ expect { @yc.version_available?("zisofs-tools", "1.0.6-3.2.2", "x86_64") }.not_to raise_error
end
it "should return true if our package-version-arch is available" do
- @yc.version_available?("zisofs-tools", "1.0.6-3.2.2", "x86_64").should be == true
+ expect(@yc.version_available?("zisofs-tools", "1.0.6-3.2.2", "x86_64")).to eq(true)
end
it "should return true if our package-version, no arch, is available" do
- @yc.version_available?("zisofs-tools", "1.0.6-3.2.2", nil).should be == true
- @yc.version_available?("zisofs-tools", "1.0.6-3.2.2").should be == true
+ expect(@yc.version_available?("zisofs-tools", "1.0.6-3.2.2", nil)).to eq(true)
+ expect(@yc.version_available?("zisofs-tools", "1.0.6-3.2.2")).to eq(true)
end
it "should return false if our package-version-arch isn't available" do
- @yc.version_available?("zisofs-tools", "1.0.6-3.2.2", "pretend").should be == false
- @yc.version_available?("zisofs-tools", "pretend", "x86_64").should be == false
- @yc.version_available?("pretend", "1.0.6-3.2.2", "x86_64").should be == false
+ expect(@yc.version_available?("zisofs-tools", "1.0.6-3.2.2", "pretend")).to eq(false)
+ expect(@yc.version_available?("zisofs-tools", "pretend", "x86_64")).to eq(false)
+ expect(@yc.version_available?("pretend", "1.0.6-3.2.2", "x86_64")).to eq(false)
end
it "should return false if our package-version, no arch, isn't available" do
- @yc.version_available?("zisofs-tools", "pretend", nil).should be == false
- @yc.version_available?("zisofs-tools", "pretend").should be == false
- @yc.version_available?("pretend", "1.0.6-3.2.2").should be == false
+ expect(@yc.version_available?("zisofs-tools", "pretend", nil)).to eq(false)
+ expect(@yc.version_available?("zisofs-tools", "pretend")).to eq(false)
+ expect(@yc.version_available?("pretend", "1.0.6-3.2.2")).to eq(false)
end
end
describe "package_repository" do
it "should take two or three arguments" do
- lambda { @yc.package_repository("zisofs-tools") }.should raise_error(ArgumentError)
- lambda { @yc.package_repository("zisofs-tools", "1.0.6-3.2.2") }.should_not raise_error
- lambda { @yc.package_repository("zisofs-tools", "1.0.6-3.2.2", "x86_64") }.should_not raise_error
+ expect { @yc.package_repository("zisofs-tools") }.to raise_error(ArgumentError)
+ expect { @yc.package_repository("zisofs-tools", "1.0.6-3.2.2") }.not_to raise_error
+ expect { @yc.package_repository("zisofs-tools", "1.0.6-3.2.2", "x86_64") }.not_to raise_error
end
it "should return repoid for package-version-arch" do
- @yc.package_repository("zlib-devel", "1.2.3-3", "i386").should be == "extras"
- @yc.package_repository("zlib-devel", "1.2.3-3", "x86_64").should be == "base"
+ expect(@yc.package_repository("zlib-devel", "1.2.3-3", "i386")).to eq("extras")
+ expect(@yc.package_repository("zlib-devel", "1.2.3-3", "x86_64")).to eq("base")
end
it "should return repoid for package-version, no arch" do
- @yc.package_repository("zisofs-tools", "1.0.6-3.2.2", nil).should be == "extras"
- @yc.package_repository("zisofs-tools", "1.0.6-3.2.2").should be == "extras"
+ expect(@yc.package_repository("zisofs-tools", "1.0.6-3.2.2", nil)).to eq("extras")
+ expect(@yc.package_repository("zisofs-tools", "1.0.6-3.2.2")).to eq("extras")
end
it "should return nil when no match for package-version-arch" do
- @yc.package_repository("zisofs-tools", "1.0.6-3.2.2", "pretend").should be == nil
- @yc.package_repository("zisofs-tools", "pretend", "x86_64").should be == nil
- @yc.package_repository("pretend", "1.0.6-3.2.2", "x86_64").should be == nil
+ expect(@yc.package_repository("zisofs-tools", "1.0.6-3.2.2", "pretend")).to eq(nil)
+ expect(@yc.package_repository("zisofs-tools", "pretend", "x86_64")).to eq(nil)
+ expect(@yc.package_repository("pretend", "1.0.6-3.2.2", "x86_64")).to eq(nil)
end
it "should return nil when no match for package-version, no arch" do
- @yc.package_repository("zisofs-tools", "pretend", nil).should be == nil
- @yc.package_repository("zisofs-tools", "pretend").should be == nil
- @yc.package_repository("pretend", "1.0.6-3.2.2").should be == nil
+ expect(@yc.package_repository("zisofs-tools", "pretend", nil)).to eq(nil)
+ expect(@yc.package_repository("zisofs-tools", "pretend")).to eq(nil)
+ expect(@yc.package_repository("pretend", "1.0.6-3.2.2")).to eq(nil)
end
end
describe "reset" do
it "should empty the installed and available packages RPMDb" do
- @yc.available_version("zip", "x86_64").should be == "2.31-2.el5"
- @yc.installed_version("zip", "x86_64").should be == "2.31-2.el5"
+ expect(@yc.available_version("zip", "x86_64")).to eq("2.31-2.el5")
+ expect(@yc.installed_version("zip", "x86_64")).to eq("2.31-2.el5")
@yc.reset
- @yc.available_version("zip", "x86_64").should be == nil
- @yc.installed_version("zip", "x86_64").should be == nil
+ expect(@yc.available_version("zip", "x86_64")).to eq(nil)
+ expect(@yc.installed_version("zip", "x86_64")).to eq(nil)
end
end
describe "package_available?" do
it "should return true a package name is available" do
- @yc.package_available?("zisofs-tools").should be == true
- @yc.package_available?("moo").should be == false
- @yc.package_available?(nil).should be == false
+ expect(@yc.package_available?("zisofs-tools")).to eq(true)
+ expect(@yc.package_available?("moo")).to eq(false)
+ expect(@yc.package_available?(nil)).to eq(false)
end
it "should return true a package name + arch is available" do
- @yc.package_available?("zlib-devel.i386").should be == true
- @yc.package_available?("zisofs-tools.x86_64").should be == true
- @yc.package_available?("znc-test.beta1.x86_64").should be == true
- @yc.package_available?("znc-test.beta1").should be == true
- @yc.package_available?("znc-test.test.beta1").should be == true
- @yc.package_available?("moo.i386").should be == false
- @yc.package_available?("zisofs-tools.beta").should be == false
- @yc.package_available?("znc-test.test").should be == false
+ expect(@yc.package_available?("zlib-devel.i386")).to eq(true)
+ expect(@yc.package_available?("zisofs-tools.x86_64")).to eq(true)
+ expect(@yc.package_available?("znc-test.beta1.x86_64")).to eq(true)
+ expect(@yc.package_available?("znc-test.beta1")).to eq(true)
+ expect(@yc.package_available?("znc-test.test.beta1")).to eq(true)
+ expect(@yc.package_available?("moo.i386")).to eq(false)
+ expect(@yc.package_available?("zisofs-tools.beta")).to eq(false)
+ expect(@yc.package_available?("znc-test.test")).to eq(false)
end
end
describe "enable_extra_repo_control" do
it "should set @extra_repo_control to arg" do
@yc.enable_extra_repo_control("--enablerepo=test")
- @yc.extra_repo_control.should be == "--enablerepo=test"
+ expect(@yc.extra_repo_control).to eq("--enablerepo=test")
end
it "should call reload once when set to flag cache for update" do
- @yc.should_receive(:reload).once
+ expect(@yc).to receive(:reload).once
@yc.enable_extra_repo_control("--enablerepo=test")
@yc.enable_extra_repo_control("--enablerepo=test")
end
@@ -1848,13 +1848,13 @@ EOF
it "should set @extra_repo_control to nil" do
@yc.enable_extra_repo_control("--enablerepo=test")
@yc.disable_extra_repo_control
- @yc.extra_repo_control.should be == nil
+ expect(@yc.extra_repo_control).to eq(nil)
end
it "should call reload once when cleared to flag cache for update" do
- @yc.should_receive(:reload).once
+ expect(@yc).to receive(:reload).once
@yc.enable_extra_repo_control("--enablerepo=test")
- @yc.should_receive(:reload).once
+ expect(@yc).to receive(:reload).once
@yc.disable_extra_repo_control
@yc.disable_extra_repo_control
end
diff --git a/spec/unit/provider/package/zypper_spec.rb b/spec/unit/provider/package/zypper_spec.rb
index 87f02d7794..17d99640e6 100644
--- a/spec/unit/provider/package/zypper_spec.rb
+++ b/spec/unit/provider/package/zypper_spec.rb
@@ -30,84 +30,84 @@ describe Chef::Provider::Package::Zypper do
@status = double("Status", :exitstatus => 0)
@provider = Chef::Provider::Package::Zypper.new(@new_resource, @run_context)
- Chef::Resource::Package.stub(:new).and_return(@current_resource)
- @provider.stub(:popen4).and_return(@status)
+ allow(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
+ allow(@provider).to receive(:popen4).and_return(@status)
@stderr = StringIO.new
@stdout = StringIO.new
@pid = double("PID")
- @provider.stub(:`).and_return("2.0")
+ allow(@provider).to receive(:`).and_return("2.0")
end
describe "when loading the current package state" do
it "should create a current resource with the name of the new_resource" do
- Chef::Resource::Package.should_receive(:new).and_return(@current_resource)
+ expect(Chef::Resource::Package).to receive(:new).and_return(@current_resource)
@provider.load_current_resource
end
it "should set the current resources package name to the new resources package name" do
- @current_resource.should_receive(:package_name).with(@new_resource.package_name)
+ expect(@current_resource).to receive(:package_name).with(@new_resource.package_name)
@provider.load_current_resource
end
it "should run zypper info with the package name" do
- @provider.should_receive(:popen4).with("zypper --non-interactive info #{@new_resource.package_name}").and_return(@status)
+ expect(@provider).to receive(:popen4).with("zypper --non-interactive info #{@new_resource.package_name}").and_return(@status)
@provider.load_current_resource
end
it "should set the installed version to nil on the current resource if zypper info installed version is (none)" do
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
- @current_resource.should_receive(:version).with(nil).and_return(true)
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@current_resource).to receive(:version).with(nil).and_return(true)
@provider.load_current_resource
end
it "should set the installed version if zypper info has one" do
@stdout = StringIO.new("Version: 1.0\nInstalled: Yes\n")
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
- @current_resource.should_receive(:version).with("1.0").and_return(true)
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ expect(@current_resource).to receive(:version).with("1.0").and_return(true)
@provider.load_current_resource
end
it "should set the candidate version if zypper info has one" do
@stdout = StringIO.new("Version: 1.0\nInstalled: No\nStatus: out-of-date (version 0.9 installed)")
- @provider.stub(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
@provider.load_current_resource
- @provider.candidate_version.should eql("1.0")
+ expect(@provider.candidate_version).to eql("1.0")
end
it "should raise an exception if zypper info fails" do
- @status.should_receive(:exitstatus).and_return(1)
- lambda { @provider.load_current_resource }.should raise_error(Chef::Exceptions::Package)
+ expect(@status).to receive(:exitstatus).and_return(1)
+ expect { @provider.load_current_resource }.to raise_error(Chef::Exceptions::Package)
end
it "should not raise an exception if zypper info succeeds" do
- @status.should_receive(:exitstatus).and_return(0)
- lambda { @provider.load_current_resource }.should_not raise_error
+ expect(@status).to receive(:exitstatus).and_return(0)
+ expect { @provider.load_current_resource }.not_to raise_error
end
it "should return the current resouce" do
- @provider.load_current_resource.should eql(@current_resource)
+ expect(@provider.load_current_resource).to eql(@current_resource)
end
end
describe "install_package" do
it "should run zypper install with the package name and version" do
- Chef::Config.stub(:[]).with(:zypper_check_gpg).and_return(true)
- @provider.should_receive(:shell_out!).with(
+ allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(true)
+ expect(@provider).to receive(:shell_out!).with(
"zypper --non-interactive install --auto-agree-with-licenses emacs=1.0")
@provider.install_package("emacs", "1.0")
end
it "should run zypper install without gpg checks" do
- Chef::Config.stub(:[]).with(:zypper_check_gpg).and_return(false)
- @provider.should_receive(:shell_out!).with(
+ allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(false)
+ expect(@provider).to receive(:shell_out!).with(
"zypper --non-interactive --no-gpg-checks install "+
"--auto-agree-with-licenses emacs=1.0")
@provider.install_package("emacs", "1.0")
end
it "should warn about gpg checks on zypper install" do
- Chef::Log.should_receive(:warn).with(
+ expect(Chef::Log).to receive(:warn).with(
/All packages will be installed without gpg signature checks/)
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"zypper --non-interactive --no-gpg-checks install "+
"--auto-agree-with-licenses emacs=1.0")
@provider.install_package("emacs", "1.0")
@@ -116,28 +116,28 @@ describe Chef::Provider::Package::Zypper do
describe "upgrade_package" do
it "should run zypper update with the package name and version" do
- Chef::Config.stub(:[]).with(:zypper_check_gpg).and_return(true)
- @provider.should_receive(:shell_out!).with(
+ allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(true)
+ expect(@provider).to receive(:shell_out!).with(
"zypper --non-interactive install --auto-agree-with-licenses emacs=1.0")
@provider.upgrade_package("emacs", "1.0")
end
it "should run zypper update without gpg checks" do
- Chef::Config.stub(:[]).with(:zypper_check_gpg).and_return(false)
- @provider.should_receive(:shell_out!).with(
+ allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(false)
+ expect(@provider).to receive(:shell_out!).with(
"zypper --non-interactive --no-gpg-checks install "+
"--auto-agree-with-licenses emacs=1.0")
@provider.upgrade_package("emacs", "1.0")
end
it "should warn about gpg checks on zypper upgrade" do
- Chef::Log.should_receive(:warn).with(
+ expect(Chef::Log).to receive(:warn).with(
/All packages will be installed without gpg signature checks/)
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"zypper --non-interactive --no-gpg-checks install "+
"--auto-agree-with-licenses emacs=1.0")
@provider.upgrade_package("emacs", "1.0")
end
it "should run zypper upgrade without gpg checks" do
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"zypper --non-interactive --no-gpg-checks install "+
"--auto-agree-with-licenses emacs=1.0")
@@ -149,8 +149,8 @@ describe Chef::Provider::Package::Zypper do
context "when package version is not explicitly specified" do
it "should run zypper remove with the package name" do
- Chef::Config.stub(:[]).with(:zypper_check_gpg).and_return(true)
- @provider.should_receive(:shell_out!).with(
+ allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(true)
+ expect(@provider).to receive(:shell_out!).with(
"zypper --non-interactive remove emacs")
@provider.remove_package("emacs", nil)
end
@@ -158,21 +158,21 @@ describe Chef::Provider::Package::Zypper do
context "when package version is explicitly specified" do
it "should run zypper remove with the package name" do
- Chef::Config.stub(:[]).with(:zypper_check_gpg).and_return(true)
- @provider.should_receive(:shell_out!).with(
+ allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(true)
+ expect(@provider).to receive(:shell_out!).with(
"zypper --non-interactive remove emacs=1.0")
@provider.remove_package("emacs", "1.0")
end
it "should run zypper remove without gpg checks" do
- Chef::Config.stub(:[]).with(:zypper_check_gpg).and_return(false)
- @provider.should_receive(:shell_out!).with(
+ allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(false)
+ expect(@provider).to receive(:shell_out!).with(
"zypper --non-interactive --no-gpg-checks remove emacs=1.0")
@provider.remove_package("emacs", "1.0")
end
it "should warn about gpg checks on zypper remove" do
- Chef::Log.should_receive(:warn).with(
+ expect(Chef::Log).to receive(:warn).with(
/All packages will be installed without gpg signature checks/)
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"zypper --non-interactive --no-gpg-checks remove emacs=1.0")
@provider.remove_package("emacs", "1.0")
@@ -182,20 +182,20 @@ describe Chef::Provider::Package::Zypper do
describe "purge_package" do
it "should run remove_package with the name and version" do
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"zypper --non-interactive --no-gpg-checks remove --clean-deps emacs=1.0")
@provider.purge_package("emacs", "1.0")
end
it "should run zypper purge without gpg checks" do
- Chef::Config.stub(:[]).with(:zypper_check_gpg).and_return(false)
- @provider.should_receive(:shell_out!).with(
+ allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(false)
+ expect(@provider).to receive(:shell_out!).with(
"zypper --non-interactive --no-gpg-checks remove --clean-deps emacs=1.0")
@provider.purge_package("emacs", "1.0")
end
it "should warn about gpg checks on zypper purge" do
- Chef::Log.should_receive(:warn).with(
+ expect(Chef::Log).to receive(:warn).with(
/All packages will be installed without gpg signature checks/)
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"zypper --non-interactive --no-gpg-checks remove --clean-deps emacs=1.0")
@provider.purge_package("emacs", "1.0")
end
@@ -203,12 +203,12 @@ describe Chef::Provider::Package::Zypper do
describe "on an older zypper" do
before(:each) do
- @provider.stub(:`).and_return("0.11.6")
+ allow(@provider).to receive(:`).and_return("0.11.6")
end
describe "install_package" do
it "should run zypper install with the package name and version" do
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"zypper --no-gpg-checks install --auto-agree-with-licenses -y emacs")
@provider.install_package("emacs", "1.0")
end
@@ -216,7 +216,7 @@ describe Chef::Provider::Package::Zypper do
describe "upgrade_package" do
it "should run zypper update with the package name and version" do
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"zypper --no-gpg-checks install --auto-agree-with-licenses -y emacs")
@provider.upgrade_package("emacs", "1.0")
end
@@ -224,7 +224,7 @@ describe Chef::Provider::Package::Zypper do
describe "remove_package" do
it "should run zypper remove with the package name" do
- @provider.should_receive(:shell_out!).with(
+ expect(@provider).to receive(:shell_out!).with(
"zypper --no-gpg-checks remove -y emacs")
@provider.remove_package("emacs", "1.0")
end