File: rspec-puppet.rb

package info (click to toggle)
ruby-rspec-puppet 4.0.2%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,444 kB
  • sloc: ruby: 6,377; makefile: 6
file content (121 lines) | stat: -rw-r--r-- 3,795 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# frozen_string_literal: true

require 'puppet'
require 'rspec'
require 'fileutils'
require 'tmpdir'
require 'rspec-puppet/errors'
require 'rspec-puppet/matchers'
require 'rspec-puppet/example'
require 'rspec-puppet/setup'
require 'rspec-puppet/coverage'
require 'rspec-puppet/adapters'
require 'rspec-puppet/consts'

begin
  require 'puppet/test/test_helper'
rescue LoadError
end

RSpec.configure do |c|
  c.add_setting :enable_pathname_stubbing, default: false
end

module RSpec::Puppet
  def self.rspec_puppet_example?
    RSpec::Puppet::EventListener.rspec_puppet_example?
  end

  def self.current_example
    RSpec::Puppet::EventListener.current_example
  end
end

require 'rspec-puppet/monkey_patches'

RSpec.configure do |c|
  c.add_setting :environmentpath, default: Puppet::Util::Platform.actually_windows? ? 'c:/nul/' : '/dev/null'
  c.add_setting :module_path, default: nil
  c.add_setting :manifest, default: nil
  c.add_setting :config, default: nil
  c.add_setting :confdir, default: Puppet::Util::Platform.actually_windows? ? 'c:/nul/' : '/dev/null'
  c.add_setting :default_facts, default: {}
  c.add_setting :default_node_params, default: {}
  c.add_setting :default_trusted_facts, default: {}
  c.add_setting :default_trusted_external_data, default: {}
  c.add_setting :facter_implementation, default: :facter
  c.add_setting :hiera_config, default: Puppet::Util::Platform.actually_windows? ? 'c:/nul/' : '/dev/null'
  c.add_setting :stringify_facts, default: true
  c.add_setting :strict_variables, default: false
  c.add_setting :setup_fixtures, default: true
  c.add_setting :derive_node_facts_from_nodename, default: true
  c.add_setting :adapter
  c.add_setting :platform, default: Puppet::Util::Platform.actual_platform
  c.add_setting :vendormoduledir, default: Puppet::Util::Platform.actually_windows? ? 'c:/nul/' : '/dev/null'
  c.add_setting :basemodulepath, default: Puppet::Util::Platform.actually_windows? ? 'c:/nul/' : '/dev/null'
  c.add_setting :disable_module_hiera, default: false
  c.add_setting :fixture_hiera_configs, default: {}
  c.add_setting :use_fixture_spec_hiera, default: false
  c.add_setting :fallback_to_default_hiera, default: true

  c.before(:all) do
    RSpec::Puppet::Setup.safe_setup_directories(nil, false) if RSpec.configuration.setup_fixtures?
  end

  if defined?(Puppet::Test::TestHelper)
    begin
      Puppet::Test::TestHelper.initialize
    rescue NoMethodError
      Puppet::Test::TestHelper.before_each_test
    end

    c.before :all do
      Puppet::Test::TestHelper.before_all_tests
    rescue StandardError
    end

    c.after :all do
      Puppet::Test::TestHelper.after_all_tests
    rescue StandardError
    end

    c.before :each do
      Puppet::Test::TestHelper.before_each_test
    rescue Puppet::Context::DuplicateRollbackMarkError
      Puppet::Test::TestHelper.send(:initialize_settings_before_each)
    rescue StandardError
    end

    c.after :each do
      Puppet::Test::TestHelper.after_each_test
    rescue StandardError
    end
  end

  c.before :each do
    if RSpec::Puppet.rspec_puppet_example?
      @adapter = RSpec::Puppet::Adapters.get
      @adapter.setup_puppet(self)
      c.adapter = adapter
    end
  end

  c.before :each do |example|
    if RSpec::Puppet.rspec_puppet_example?
      Puppet::Util::Platform.pretend_to_be RSpec.configuration.platform
      stub_file_consts(example) if respond_to?(:stub_file_consts)

      if defined?(Selinux)
        if respond_to?(:allow)
          allow(Selinux).to receive(:is_selinux_enabled).and_return(0)
        elsif Selinux.respond_to?(:stubs)
          Selinux.stubs(:is_selinux_enabled).returns(0)
        end
      end
    end
  end

  c.after(:each) do
    RSpec::Puppet::Consts.restore_consts if RSpec::Puppet.rspec_puppet_example?
  end
end