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