summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorColleen Murphy <colleen@puppetlabs.com>2015-03-25 12:04:16 -0700
committerColleen Murphy <colleen@puppetlabs.com>2015-03-25 12:04:16 -0700
commitd27759141ec5592fd5d76861efa77a55d07c90a8 (patch)
treef2ab9d3e3439a676911a0ede12b7b5d515bb611d /lib
parent9a955b8746f373a1a3e47ebf67d4186b98e0094f (diff)
Fix remote hash ordering for unit tests
Without this commit, the unit tests for the git provider changing multiple remotes mocks the remotes in a particular order. While in practice it doesn't matter which remote the update_remotes method updates first, the unit tests must be able to mock them in the correct order. For ruby 1.8.7, a Hash will not necessarily produce key value pairs in the same order on each run, which causes intermittent failures in the unit tests. This change sorts the :source property values before trying to update them, and updates the unit tests to expect the values in alphabetical order.
Diffstat (limited to 'lib')
-rw-r--r--lib/puppet/provider/vcsrepo/git.rb3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/puppet/provider/vcsrepo/git.rb b/lib/puppet/provider/vcsrepo/git.rb
index 9d3f7f3..000032e 100644
--- a/lib/puppet/provider/vcsrepo/git.rb
+++ b/lib/puppet/provider/vcsrepo/git.rb
@@ -142,7 +142,8 @@ Puppet::Type.type(:vcsrepo).provide(:git, :parent => Puppet::Provider::Vcsrepo)
# we loop around the hash. Otherwise, we assume single url specified
# in source property
if @resource.value(:source).is_a?(Hash)
- @resource.value(:source).each do |remote_name, remote_url|
+ @resource.value(:source).keys.sort.each do |remote_name|
+ remote_url = @resource.value(:source)[remote_name]
at_path { do_update |= update_remote_url(remote_name, remote_url) }
end
else