dev/provisioning/modules/systemd/spec/spec_helper.rb
author ymh <ymh.work@gmail.com>
Fri, 17 Nov 2017 00:06:39 +0100
changeset 556 a31f1343b913
parent 146 dc4d1cdc47e0
permissions -rw-r--r--
Correct header and footer for backend pages
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
146
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
require 'puppetlabs_spec_helper/module_spec_helper'
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
require 'rspec-puppet-facts'
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
include RspecPuppetFacts
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
RSpec.configure do |c|
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
  c.include PuppetlabsSpec::Files
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
  c.before :each do
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
    # Store any environment variables away to be restored later
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
    @old_env = {}
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
    ENV.each_key {|k| @old_env[k] = ENV[k]}
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
    c.strict_variables = Gem::Version.new(Puppet.version) >= Gem::Version.new('3.5')
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
    Puppet.features.stubs(:root?).returns(true)
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
  end
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
  c.after :each do
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
    PuppetlabsSpec::Files.cleanup
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
  end
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
end
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
require 'pathname'
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
dir = Pathname.new(__FILE__).parent
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
Puppet[:modulepath] = File.join(dir, 'fixtures', 'modules')
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
# There's no real need to make this version dependent, but it helps find
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
# regressions in Puppet
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
#
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
# 1. Workaround for issue #16277 where default settings aren't initialised from
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
# a spec and so the libdir is never initialised (3.0.x)
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
# 2. Workaround for 2.7.20 that now only loads types for the current node
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
# environment (#13858) so Puppet[:modulepath] seems to get ignored
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
# 3. Workaround for 3.5 where context hasn't been configured yet,
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
# ticket https://tickets.puppetlabs.com/browse/MODULES-823
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
#
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
ver = Gem::Version.new(Puppet.version.split('-').first)
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
if Gem::Requirement.new("~> 2.7.20") =~ ver || Gem::Requirement.new("~> 3.0.0") =~ ver || Gem::Requirement.new("~> 3.5") =~ ver || Gem::Requirement.new("~> 4.0")
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
  puts "augeasproviders: setting Puppet[:libdir] to work around broken type autoloading"
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
  # libdir is only a single dir, so it can only workaround loading of one external module
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
  Puppet[:libdir] = "#{Puppet[:modulepath]}/augeasproviders_core/lib"
dc4d1cdc47e0 first implementation of handle install. Need refinement
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
end