Suggest different variables to use if we want to tunnel both v4 and v6
[mirror/dsa-puppet.git] / 3rdparty / modules / stdlib / spec / spec_helper_acceptance.rb
1 require 'beaker-pe'
2 require 'beaker-puppet'
3 require 'puppet'
4 require 'beaker-rspec'
5 require 'beaker/puppet_install_helper'
6 require 'beaker/module_install_helper'
7
8 run_puppet_install_helper
9 configure_type_defaults_on(hosts)
10 install_ca_certs unless ENV['PUPPET_INSTALL_TYPE'] =~ %r{pe}i
11 install_module_on(hosts)
12 install_module_dependencies_on(hosts)
13
14 RSpec.configure do |c|
15   # Readable test descriptions
16   c.formatter = :documentation
17
18   # Configure all nodes in nodeset
19   c.before :suite do
20   end
21 end
22
23 def return_puppet_version
24   (on default, puppet('--version')).output.chomp
25 end
26
27 RSpec.shared_context 'with faked facts' do
28   let(:facts_d) do
29     puppet_version = return_puppet_version
30     if fact('osfamily') =~ %r{windows}i
31       if fact('kernelmajversion').to_f < 6.0
32         'C:/Documents and Settings/All Users/Application Data/PuppetLabs/facter/facts.d'
33       else
34         'C:/ProgramData/PuppetLabs/facter/facts.d'
35       end
36     elsif Puppet::Util::Package.versioncmp(puppet_version, '4.0.0') < 0 && fact('is_pe', '--puppet') == 'true'
37       '/etc/puppetlabs/facter/facts.d'
38     else
39       '/etc/facter/facts.d'
40     end
41   end
42
43   before :each do
44     # No need to create on windows, PE creates by default
45     if fact('osfamily') !~ %r{windows}i
46       shell("mkdir -p '#{facts_d}'")
47     end
48   end
49
50   after :each do
51     shell("rm -f '#{facts_d}/fqdn.txt'", :acceptable_exit_codes => [0, 1])
52   end
53
54   def fake_fact(name, value)
55     shell("echo #{name}=#{value} > '#{facts_d}/#{name}.txt'")
56   end
57 end