Merge pull request #193 from hunner/fix_helper
[puppet_vcsrepo.git] / spec / acceptance / beaker_helper.rb
1 test_name "Installing Puppet and vcsrepo module" do
2   step 'install puppet' do
3     if @options[:provision]
4       # This will fail if puppet is already installed, ie --no-provision
5       if hosts.first.is_pe?
6         install_pe
7       else
8         install_puppet
9         on hosts, "mkdir -p #{hosts.first['distmoduledir']}"
10       end
11     end
12   end
13
14   step 'Ensure we can install our module' do
15     hosts.each do |host|
16       # We ask the host to interpolate it's distmoduledir because we don't
17       # actually know it on Windows until we've let it redirect us (depending
18       # on whether we're running as a 32/64 bit process on 32/64 bit Windows
19       moduledir = on(host, "echo #{host['distmoduledir']}").stdout.chomp
20       on host, "mkdir -p #{moduledir}"
21     end
22   end
23
24   step 'install module' do
25     hosts.each do |host|
26       proj_root = File.expand_path(File.join(File.dirname(__FILE__),'..','..'))
27
28       # This require beaker 1.12.2 I believe
29       puppet_module_install(:source => proj_root, :module_name => 'vcsrepo')
30
31       case fact_on(host, 'osfamily')
32       when 'RedHat'
33         install_package(host, 'git')
34       when 'Debian'
35         install_package(host, 'git-core')
36       else
37         if !check_for_package(host, 'git')
38           puts "Git package is required for this module"
39           exit
40         end
41       end
42
43       gitconfig = <<-EOS
44 [user]
45         email = root@localhost
46         name = root
47 EOS
48       create_remote_file(host, "/root/.gitconfig", gitconfig)
49     end
50   end
51 end