diff options
-rw-r--r-- | lib/chef/provider/package/chocolatey.rb | 21 | ||||
-rw-r--r-- | spec/unit/provider/package/chocolatey_spec.rb | 4 |
2 files changed, 16 insertions, 9 deletions
diff --git a/lib/chef/provider/package/chocolatey.rb b/lib/chef/provider/package/chocolatey.rb index c832116377..3536d807ad 100644 --- a/lib/chef/provider/package/chocolatey.rb +++ b/lib/chef/provider/package/chocolatey.rb @@ -237,15 +237,20 @@ EOS # # @return [Hash] name-to-version mapping of available packages def available_packages - @available_packages ||= - begin - cmd = [ "list -r #{package_name_array.join ' '}" ] - cmd.push( "-source #{new_resource.source}" ) if new_resource.source - raw = parse_list_output(*cmd) - raw.keys.each_with_object({}) do |name, available| - available[name] = desired_name_versions[name] || raw[name] + return @available_packages if @available_packages + @available_packages = {} + package_name_array.each do |pkg| + available_versions = + begin + cmd = [ "list -r #{pkg}" ] + cmd.push( "-source #{new_resource.source}" ) if new_resource.source + raw = parse_list_output(*cmd) + raw.keys.each_with_object({}) do |name, available| + available[name] = desired_name_versions[name] || raw[name] + end end - end + @available_packages.merge! available_versions + end @available_packages end diff --git a/spec/unit/provider/package/chocolatey_spec.rb b/spec/unit/provider/package/chocolatey_spec.rb index 68b121960c..afc068041d 100644 --- a/spec/unit/provider/package/chocolatey_spec.rb +++ b/spec/unit/provider/package/chocolatey_spec.rb @@ -59,7 +59,9 @@ Git|2.6.2 munin-node|1.6.1.20130823 EOF remote_list_obj = double(stdout: remote_list_stdout) - allow(provider).to receive(:shell_out!).with("#{choco_exe} list -r #{package_names.join ' '}#{args}", { :returns => [0], timeout: timeout }).and_return(remote_list_obj) + package_names.each do |pkg| + allow(provider).to receive(:shell_out!).with("#{choco_exe} list -r #{pkg}#{args}", { :returns => [0], timeout: timeout }).and_return(remote_list_obj) + end end describe "#initialize" do |