spec_helper_acceptance.rb 1.4 KB

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