diff --git a/lib/linux_admin/yum.rb b/lib/linux_admin/yum.rb index a0ce717..5d4a417 100644 --- a/lib/linux_admin/yum.rb +++ b/lib/linux_admin/yum.rb @@ -66,10 +66,9 @@ def self.version_available(*packages) out = run!(cmd, :params => params).output - items = out.split("\n") - items.each_with_object({}) do |i, versions| - name, version = i.split(" ", 2) - versions[name.strip] = version.strip + out.split("\n").each_with_object({}) do |i, versions| + name, version = i.split(" ", 2) + versions[name.strip] = version.strip end end diff --git a/spec/data/yum/output_repoquery b/spec/data/yum/output_repoquery_multiple similarity index 100% rename from spec/data/yum/output_repoquery rename to spec/data/yum/output_repoquery_multiple diff --git a/spec/data/yum/output_repoquery_single b/spec/data/yum/output_repoquery_single new file mode 100644 index 0000000..8abed10 --- /dev/null +++ b/spec/data/yum/output_repoquery_single @@ -0,0 +1 @@ +subscription-manager 1.1.23.1 diff --git a/spec/yum_spec.rb b/spec/yum_spec.rb index 53e77b2..cff99a9 100644 --- a/spec/yum_spec.rb +++ b/spec/yum_spec.rb @@ -110,9 +110,14 @@ expect { described_class.version_available }.to raise_error(ArgumentError) end - it "with packages" do - described_class.should_receive(:run!).once.with("repoquery --qf=\"%{name} %{version}\"", {:params=>{nil=>["curl"]}}).and_return(double(:output => sample_output("yum/output_repoquery"))) - expect(described_class.version_available("curl")).to eq({ + it "with one package" do + described_class.should_receive(:run!).once.with("repoquery --qf=\"%{name} %{version}\"", {:params=>{nil=>["subscription-manager"]}}).and_return(double(:output => sample_output("yum/output_repoquery_single"))) + expect(described_class.version_available("subscription-manager")).to eq({"subscription-manager" => "1.1.23.1"}) + end + + it "with multiple packages" do + described_class.should_receive(:run!).once.with("repoquery --qf=\"%{name} %{version}\"", {:params=>{nil=>["curl", "subscription-manager", "wget"]}}).and_return(double(:output => sample_output("yum/output_repoquery_multiple"))) + expect(described_class.version_available("curl", "subscription-manager", "wget")).to eq({ "curl" => "7.19.7", "subscription-manager" => "1.1.23.1", "wget" => "1.12"