summaryrefslogtreecommitdiff
path: root/chef/spec/unit/provider/package/yum_spec.rb
diff options
context:
space:
mode:
authorMatthew Kent <mkent@magoazul.com>2011-10-28 11:14:46 -0700
committerBryan McLellan <btm@opscode.com>2012-03-16 14:56:53 -0700
commit68498d73a428b29e6732ee3e883a09f681d92774 (patch)
tree937ada0651e74135d56c961b4ae51327c52cf512 /chef/spec/unit/provider/package/yum_spec.rb
parentd8336f6c20dcd7fff8e8c52defecbd97d2eca0f3 (diff)
downloadchef-68498d73a428b29e6732ee3e883a09f681d92774.tar.gz
CHEF-2550: Report source repository when installing.
Diffstat (limited to 'chef/spec/unit/provider/package/yum_spec.rb')
-rw-r--r--chef/spec/unit/provider/package/yum_spec.rb114
1 files changed, 77 insertions, 37 deletions
diff --git a/chef/spec/unit/provider/package/yum_spec.rb b/chef/spec/unit/provider/package/yum_spec.rb
index 14c4f6074d..48e780aba3 100644
--- a/chef/spec/unit/provider/package/yum_spec.rb
+++ b/chef/spec/unit/provider/package/yum_spec.rb
@@ -32,7 +32,8 @@ describe Chef::Provider::Package::Yum do
:candidate_version => "1.2.4-11.18.el5_2.3",
:package_available? => true,
:version_available? => true,
- :allow_multi_install => [ "kernel" ]
+ :allow_multi_install => [ "kernel" ],
+ :package_repository => "base"
)
Chef::Provider::Package::Yum::YumCache.stub!(:instance).and_return(@yum_cache)
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@@ -395,7 +396,8 @@ describe Chef::Provider::Package::Yum do
:candidate_version => "1.2.4-11.15.el5",
:package_available? => true,
:version_available? => true,
- :allow_multi_install => [ "cups" ]
+ :allow_multi_install => [ "cups" ],
+ :package_repository => "base"
)
Chef::Provider::Package::Yum::YumCache.stub!(:instance).and_return(@yum_cache)
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@@ -416,7 +418,8 @@ describe Chef::Provider::Package::Yum do
:candidate_version => "1.2.4-11.15.el5",
:package_available? => true,
:version_available? => true,
- :allow_multi_install => []
+ :allow_multi_install => [],
+ :package_repository => "base"
)
Chef::Provider::Package::Yum::YumCache.stub!(:instance).and_return(@yum_cache)
@provider = Chef::Provider::Package::Yum.new(@new_resource, @run_context)
@@ -1088,10 +1091,10 @@ end
describe Chef::Provider::Package::Yum::RPMDbPackage do
before(:each) do
- # name, version, arch, installed, available
- @rpm_x = Chef::Provider::Package::Yum::RPMDbPackage.new("test-package-b", "0:1.6.5-9.36.el5", "noarch", [], false, true)
- @rpm_y = Chef::Provider::Package::Yum::RPMDbPackage.new("test-package-b", "0:1.6.5-9.36.el5", "noarch", [], true, true)
- @rpm_z = Chef::Provider::Package::Yum::RPMDbPackage.new("test-package-b", "0:1.6.5-9.36.el5", "noarch", [], true, false)
+ # name, version, arch, installed, available, repoid
+ @rpm_x = Chef::Provider::Package::Yum::RPMDbPackage.new("test-package-b", "0:1.6.5-9.36.el5", "noarch", [], false, true, "base")
+ @rpm_y = Chef::Provider::Package::Yum::RPMDbPackage.new("test-package-b", "0:1.6.5-9.36.el5", "noarch", [], true, true, "extras")
+ @rpm_z = Chef::Provider::Package::Yum::RPMDbPackage.new("test-package-b", "0:1.6.5-9.36.el5", "noarch", [], true, false, "other")
end
describe "initialize" do
@@ -1116,6 +1119,13 @@ describe Chef::Provider::Package::Yum::RPMDbPackage do
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"
+ end
+ end
end
describe Chef::Provider::Package::Yum::RPMDependency do
@@ -1305,12 +1315,12 @@ describe Chef::Provider::Package::Yum::RPMDb do
Chef::Provider::Package::Yum::RPMDependency.parse("config(test) = 0:1.6.5-9.36.el5"),
Chef::Provider::Package::Yum::RPMDependency.parse("test-package-c = 0:1.6.5-9.36.el5")
]
- @rpm_v = Chef::Provider::Package::Yum::RPMDbPackage.new("test-package-a", "0:1.6.5-9.36.el5", "i386", deps_v, true, false)
- @rpm_w = Chef::Provider::Package::Yum::RPMDbPackage.new("test-package-b", "0:1.6.5-9.36.el5", "i386", [], true, true)
- @rpm_x = Chef::Provider::Package::Yum::RPMDbPackage.new("test-package-b", "0:1.6.5-9.36.el5", "x86_64", [], false, true)
- @rpm_y = Chef::Provider::Package::Yum::RPMDbPackage.new("test-package-b", "1:1.6.5-9.36.el5", "x86_64", [], true, true)
- @rpm_z = Chef::Provider::Package::Yum::RPMDbPackage.new("test-package-c", "0:1.6.5-9.36.el5", "noarch", deps_z, true, true)
- @rpm_z_mirror = Chef::Provider::Package::Yum::RPMDbPackage.new("test-package-c", "0:1.6.5-9.36.el5", "noarch", deps_z, true, true)
+ @rpm_v = Chef::Provider::Package::Yum::RPMDbPackage.new("test-package-a", "0:1.6.5-9.36.el5", "i386", deps_v, true, false, "base")
+ @rpm_w = Chef::Provider::Package::Yum::RPMDbPackage.new("test-package-b", "0:1.6.5-9.36.el5", "i386", [], true, true, "extras")
+ @rpm_x = Chef::Provider::Package::Yum::RPMDbPackage.new("test-package-b", "0:1.6.5-9.36.el5", "x86_64", [], false, true, "extras")
+ @rpm_y = Chef::Provider::Package::Yum::RPMDbPackage.new("test-package-b", "1:1.6.5-9.36.el5", "x86_64", [], true, true, "extras")
+ @rpm_z = Chef::Provider::Package::Yum::RPMDbPackage.new("test-package-c", "0:1.6.5-9.36.el5", "noarch", deps_z, true, true, "base")
+ @rpm_z_mirror = Chef::Provider::Package::Yum::RPMDbPackage.new("test-package-c", "0:1.6.5-9.36.el5", "noarch", deps_z, true, true, "base")
end
describe "initialize" do
@@ -1502,36 +1512,36 @@ describe Chef::Provider::Package::Yum::YumCache do
before(:each) do
yum_dump_good_output = <<EOF
[option installonlypkgs] kernel kernel-bigmem kernel-enterprise
-erlang-mochiweb 0 1.4.1 5.el5 x86_64 ['erlang-mochiweb = 1.4.1-5.el5', 'mochiweb = 1.4.1-5.el5'] i
-zip 0 2.31 2.el5 x86_64 ['zip = 2.31-2.el5'] r
-zisofs-tools 0 1.0.6 3.2.2 x86_64 [] a
-zlib 0 1.2.3 3 x86_64 ['zlib = 1.2.3-3', 'libz.so.1()(64bit)'] r
-zlib 0 1.2.3 3 i386 ['zlib = 1.2.3-3', 'libz.so.1'] r
-zlib-devel 0 1.2.3 3 i386 [] a
-zlib-devel 0 1.2.3 3 x86_64 ['zlib-devel = 1.2.3-3'] r
-znc 0 0.098 1.el5 x86_64 [] a
-znc-devel 0 0.098 1.el5 i386 [] a
-znc-devel 0 0.098 1.el5 x86_64 [] a
-znc-extra 0 0.098 1.el5 x86_64 [] a
-znc-modtcl 0 0.098 1.el5 x86_64 [] a
-znc-test.beta1 0 0.098 1.el5 x86_64 [] a
-znc-test.test.beta1 0 0.098 1.el5 x86_64 [] a
+erlang-mochiweb 0 1.4.1 5.el5 x86_64 ['erlang-mochiweb = 1.4.1-5.el5', 'mochiweb = 1.4.1-5.el5'] i installed
+zip 0 2.31 2.el5 x86_64 ['zip = 2.31-2.el5'] r base
+zisofs-tools 0 1.0.6 3.2.2 x86_64 [] a extras
+zlib 0 1.2.3 3 x86_64 ['zlib = 1.2.3-3', 'libz.so.1()(64bit)'] r base
+zlib 0 1.2.3 3 i386 ['zlib = 1.2.3-3', 'libz.so.1'] r base
+zlib-devel 0 1.2.3 3 i386 [] a extras
+zlib-devel 0 1.2.3 3 x86_64 ['zlib-devel = 1.2.3-3'] r base
+znc 0 0.098 1.el5 x86_64 [] a base
+znc-devel 0 0.098 1.el5 i386 [] a extras
+znc-devel 0 0.098 1.el5 x86_64 [] a base
+znc-extra 0 0.098 1.el5 x86_64 [] a base
+znc-modtcl 0 0.098 1.el5 x86_64 [] a base
+znc-test.beta1 0 0.098 1.el5 x86_64 [] a extras
+znc-test.test.beta1 0 0.098 1.el5 x86_64 [] a base
EOF
yum_dump_bad_output_separators = <<EOF
-zip 0 2.31 2.el5 x86_64 ['zip = 2.31-2.el5'] r
-zlib 0 1.2.3 3 x86_64 ['zlib = 1.2.3-3', 'libz.so.1()(64bit)'] i bad
-zlib-devel 0 1.2.3 3 i386 [] a
-bad zlib-devel 0 1.2.3 3 x86_64 ['zlib-devel = 1.2.3-3'] i
-znc-modtcl 0 0.098 1.el5 x86_64 [] a bad
+zip 0 2.31 2.el5 x86_64 ['zip = 2.31-2.el5'] r base
+zlib 0 1.2.3 3 x86_64 ['zlib = 1.2.3-3', 'libz.so.1()(64bit)'] i base bad
+zlib-devel 0 1.2.3 3 i386 [] a extras
+bad zlib-devel 0 1.2.3 3 x86_64 ['zlib-devel = 1.2.3-3'] i installed
+znc-modtcl 0 0.098 1.el5 x86_64 [] a base bad
EOF
yum_dump_bad_output_type = <<EOF
-zip 0 2.31 2.el5 x86_64 ['zip = 2.31-2.el5'] r
-zlib 0 1.2.3 3 x86_64 ['zlib = 1.2.3-3', 'libz.so.1()(64bit)'] c
-zlib-devel 0 1.2.3 3 i386 [] a
-zlib-devel 0 1.2.3 3 x86_64 ['zlib-devel = 1.2.3-3'] bad
-znc-modtcl 0 0.098 1.el5 x86_64 [] a
+zip 0 2.31 2.el5 x86_64 ['zip = 2.31-2.el5'] r base
+zlib 0 1.2.3 3 x86_64 ['zlib = 1.2.3-3', 'libz.so.1()(64bit)'] c base
+zlib-devel 0 1.2.3 3 i386 [] a extras
+zlib-devel 0 1.2.3 3 x86_64 ['zlib-devel = 1.2.3-3'] bad installed
+znc-modtcl 0 0.098 1.el5 x86_64 [] a base
EOF
yum_dump_error = <<EOF
@@ -1718,6 +1728,36 @@ EOF
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(ArgumentError)
+ lambda { @yc.package_repository("zisofs-tools", "1.0.6-3.2.2", "x86_64") }.should_not raise_error(ArgumentError)
+ 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"
+ 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"
+ 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
+ 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
+ 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"