summaryrefslogtreecommitdiff
path: root/spec/acceptance
diff options
context:
space:
mode:
Diffstat (limited to 'spec/acceptance')
-rw-r--r--spec/acceptance/beaker_helper.rb36
1 files changed, 30 insertions, 6 deletions
diff --git a/spec/acceptance/beaker_helper.rb b/spec/acceptance/beaker_helper.rb
index 6b5fd46..05aa4e7 100644
--- a/spec/acceptance/beaker_helper.rb
+++ b/spec/acceptance/beaker_helper.rb
@@ -10,16 +10,40 @@ test_name "Installing Puppet and vcsrepo module" do
end
end
end
+
+ step 'Ensure we can install our module' do
+ # We ask the host to interpolate it's distmoduledir because we don't
+ # actually know it on Windows until we've let it redirect us (depending
+ # on whether we're running as a 32/64 bit process on 32/64 bit Windows
+ moduledir = on(host, "echo #{host['distmoduledir']}").stdout.chomp
+ on host, "mkdir -p #{moduledir}"
+ end
+
step 'install module' do
- proj_root = File.expand_path(File.join(File.dirname(__FILE__),'..','..'))
- # Waiting on release of puppet_module_install in beaker
- #puppet_module_install(:source => proj_root, :module_name => 'vcsrepo')
- scp_to(hosts, proj_root, File.join(hosts.first['distmoduledir'], 'vcsrepo'))
- gitconfig = <<-EOS
+ hosts.each do |host|
+ proj_root = File.expand_path(File.join(File.dirname(__FILE__),'..','..'))
+
+ # This require beaker 1.12.2 I believe
+ puppet_module_install(:source => proj_root, :module_name => 'vcsrepo')
+
+ case fact_on(host, 'osfamily')
+ when 'RedHat'
+ install_package(host, 'git')
+ when 'Debian'
+ install_package(host, 'git-core')
+ else
+ if !check_for_package(host, 'git')
+ puts "Git package is required for this module"
+ exit
+ end
+ end
+
+ gitconfig = <<-EOS
[user]
email = root@localhost
name = root
EOS
- create_remote_file(hosts.first, "/root/.gitconfig", gitconfig)
+ create_remote_file(host, "/root/.gitconfig", gitconfig)
+ end
end
end