module-puppetlabs-mysql/spec/spec_helper_acceptance.rb
David Schmitt 9aadcebb1b (maint) Add missing nanliu/staging module
The module is not really used, but its absence creates nasty warning
messages.
2016-04-05 14:52:29 +01:00

66 lines
2.5 KiB
Ruby

require 'beaker-rspec'
require 'beaker/puppet_install_helper'
run_puppet_install_helper
UNSUPPORTED_PLATFORMS = [ 'Windows', 'Solaris', 'AIX' ]
RSpec.configure do |c|
# Project root
proj_root = File.expand_path(File.join(File.dirname(__FILE__), '..'))
# Readable test descriptions
c.formatter = :documentation
# detect the situation where PUP-5016 is triggered and skip the idempotency tests in that case
# also note how fact('puppetversion') is not available because of PUP-4359
if fact('osfamily') == 'Debian' && fact('operatingsystemmajrelease') == '8' && shell('puppet --version').stdout =~ /^4\.2/
c.filter_run_excluding :skip_pup_5016 => true
end
# Configure all nodes in nodeset
c.before :suite do
# Install module and dependencies
puppet_module_install(:source => proj_root, :module_name => 'mysql')
hosts.each do |host|
# Required for binding tests.
if fact('osfamily') == 'RedHat'
version = fact("operatingsystemmajrelease")
if fact('operatingsystemmajrelease') =~ /7/ || fact('operatingsystem') =~ /Fedora/
shell("yum install -y bzip2")
end
end
# Solaris 11 doesn't ship the SSL CA root for the forgeapi server
# therefore we need to use a different way to deploy the module to
# the host
if host['platform'] =~ /solaris-11/i
apply_manifest_on(host, 'package { "git": }')
# PE 3.x and 2015.2 require different locations to install modules
modulepath = host.puppet['modulepath']
modulepath = modulepath.split(':').first if modulepath
environmentpath = host.puppet['environmentpath']
environmentpath = environmentpath.split(':').first if environmentpath
destdir = modulepath || "#{environmentpath}/production/modules"
on host, "git clone https://github.com/puppetlabs/puppetlabs-stdlib #{destdir}/stdlib && cd #{destdir}/stdlib && git checkout 3.2.0"
on host, "git clone https://github.com/stahnma/puppet-module-epel.git #{destdir}/epel && cd #{destdir}/epel && git checkout 1.0.2"
else
on host, puppet('module','install','puppetlabs-stdlib','--version','3.2.0')
on host, puppet('module','install','stahnma/epel')
on host, puppet('module','install','nanliu/staging')
end
end
end
end
shared_examples "a idempotent resource" do
it 'should apply with no errors' do
apply_manifest(pp, :catch_failures => true)
end
it 'should apply a second time without changes', :skip_pup_5016 do
apply_manifest(pp, :catch_changes => true)
end
end