author | Chloe Laisne <chloe.laisne@gmail.com> |
Wed, 20 Jul 2016 21:08:31 +0200 | |
changeset 245 | c9dd78a43b07 |
parent 146 | dc4d1cdc47e0 |
permissions | -rw-r--r-- |
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 |