puppet_module_spec_helper 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/puppet_module_spec_helper/{spec_helper.rb → module_spec_helper.rb} +7 -7
- data/lib/puppet_module_spec_helper/puppet_spec_helper.rb +187 -0
- data/lib/puppet_module_spec_helper/puppetlabs_spec/files.rb +57 -0
- data/lib/puppet_module_spec_helper/puppetlabs_spec/fixtures.rb +49 -0
- data/lib/puppet_module_spec_helper/puppetlabs_spec/matchers.rb +87 -0
- data/lib/puppet_module_spec_helper/puppetlabs_spec_helper.rb +20 -0
- data/lib/puppet_module_spec_helper/rake_tasks.rb +6 -0
- metadata +92 -72
- data/lib/puppet_module_spec_helper.rb +0 -1
@@ -1,5 +1,4 @@
|
|
1
|
-
require '
|
2
|
-
require 'puppet'
|
1
|
+
require 'puppet_module_spec_helper/puppet_spec_helper'
|
3
2
|
require 'rspec-puppet'
|
4
3
|
|
5
4
|
def param_value(subject, type, title, param)
|
@@ -11,13 +10,14 @@ def verify_contents(subject, title, expected_lines)
|
|
11
10
|
(content.split("\n") & expected_lines).should == expected_lines
|
12
11
|
end
|
13
12
|
|
14
|
-
Puppet.parse_config
|
15
|
-
puppet_module_path = Puppet[:modulepath]
|
16
|
-
|
17
13
|
fixture_path = File.expand_path(File.join(Dir.pwd, 'spec/fixtures'))
|
18
14
|
|
15
|
+
env_module_path = ENV['MODULEPATH']
|
16
|
+
module_path = File.join(fixture_path, 'modules')
|
17
|
+
|
18
|
+
module_path = [module_path, env_module_path].join(':') if env_module_path
|
19
|
+
|
19
20
|
RSpec.configure do |c|
|
20
|
-
|
21
|
-
c.module_path = [fixture_module_path, puppet_module_path].join(":")
|
21
|
+
c.module_path = module_path
|
22
22
|
c.manifest_dir = File.join(fixture_path, 'manifests')
|
23
23
|
end
|
@@ -0,0 +1,187 @@
|
|
1
|
+
require 'puppet_module_spec_helper/puppetlabs_spec_helper'
|
2
|
+
|
3
|
+
# Don't want puppet getting the command line arguments for rake or autotest
|
4
|
+
ARGV.clear
|
5
|
+
|
6
|
+
require 'puppet'
|
7
|
+
require 'mocha'
|
8
|
+
gem 'rspec', '>=2.0.0'
|
9
|
+
require 'rspec/expectations'
|
10
|
+
|
11
|
+
require 'pathname'
|
12
|
+
require 'tmpdir'
|
13
|
+
|
14
|
+
require 'puppet_module_spec_helper/puppetlabs_spec/files'
|
15
|
+
|
16
|
+
######################################################################################
|
17
|
+
# WARNING #
|
18
|
+
######################################################################################
|
19
|
+
#
|
20
|
+
# You should probably be frightened by this file. :)
|
21
|
+
#
|
22
|
+
# The goal of this file is to try to maximize spec-testing compatibility between
|
23
|
+
# multiple versions of various external projects (which depend on puppet core) and
|
24
|
+
# multiple versions of puppet core itself. This is accomplished via a series
|
25
|
+
# of hacks and magical incantations that I am not particularly proud of. However,
|
26
|
+
# after discussion it was decided that the goal of achieving compatibility was
|
27
|
+
# a very worthy one, and that isolating the hacks to one place in a non-production
|
28
|
+
# project was as good a solution as we could hope for.
|
29
|
+
#
|
30
|
+
# You may want to hold your nose before you proceed. :)
|
31
|
+
#
|
32
|
+
|
33
|
+
|
34
|
+
# This is just a utility class to allow us to isolate the various version-specific
|
35
|
+
# branches of initialization logic into methods without polluting the global namespace.#
|
36
|
+
module Puppet
|
37
|
+
class PuppetSpecInitializer
|
38
|
+
# This method uses the "new"/preferred approach of delegating all of the test
|
39
|
+
# state initialization to puppet itself, via Puppet::Test::TestHelper API. This
|
40
|
+
# should be fairly future-proof as long as that API doesn't change, which it
|
41
|
+
# hopefully will not need to.
|
42
|
+
def self.initialize_via_testhelper(config)
|
43
|
+
# connect rspec hooks to TestHelper methods.
|
44
|
+
config.before :all do
|
45
|
+
Puppet::Test::TestHelper.before_all_tests()
|
46
|
+
end
|
47
|
+
|
48
|
+
config.after :all do
|
49
|
+
Puppet::Test::TestHelper.after_all_tests()
|
50
|
+
end
|
51
|
+
|
52
|
+
config.before :each do
|
53
|
+
Puppet::Test::TestHelper.before_each_test()
|
54
|
+
end
|
55
|
+
|
56
|
+
config.after :each do
|
57
|
+
Puppet::Test::TestHelper.after_each_test()
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
# This method is for initializing puppet state for testing for older versions
|
62
|
+
# of puppet that do not support the new TestHelper API. As you can see,
|
63
|
+
# this involves explicitly modifying global variables, directly manipulating
|
64
|
+
# Puppet's Settings singleton object, and other fun implementation details
|
65
|
+
# that code external to puppet should really never know about.
|
66
|
+
def self.initialize_via_fallback_compatibility(config)
|
67
|
+
config.before :all do
|
68
|
+
# nothing to do for now
|
69
|
+
end
|
70
|
+
|
71
|
+
config.after :all do
|
72
|
+
# nothing to do for now
|
73
|
+
end
|
74
|
+
|
75
|
+
config.before :each do
|
76
|
+
# these globals are set by Application
|
77
|
+
$puppet_application_mode = nil
|
78
|
+
$puppet_application_name = nil
|
79
|
+
|
80
|
+
# REVISIT: I think this conceals other bad tests, but I don't have time to
|
81
|
+
# fully diagnose those right now. When you read this, please come tell me
|
82
|
+
# I suck for letting this float. --daniel 2011-04-21
|
83
|
+
Signal.stubs(:trap)
|
84
|
+
|
85
|
+
# Set the confdir and vardir to gibberish so that tests
|
86
|
+
# have to be correctly mocked.
|
87
|
+
Puppet[:confdir] = "/dev/null"
|
88
|
+
Puppet[:vardir] = "/dev/null"
|
89
|
+
|
90
|
+
# Avoid opening ports to the outside world
|
91
|
+
Puppet.settings[:bindaddress] = "127.0.0.1"
|
92
|
+
end
|
93
|
+
|
94
|
+
config.after :each do
|
95
|
+
Puppet.settings.clear
|
96
|
+
|
97
|
+
Puppet::Node::Environment.clear
|
98
|
+
Puppet::Util::Storage.clear
|
99
|
+
Puppet::Util::ExecutionStub.reset if Puppet::Util.constants.include? "ExecutionStub"
|
100
|
+
|
101
|
+
PuppetlabsSpec::Files.cleanup
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
# Here we attempt to load the new TestHelper API, and print a warning if we are falling back
|
110
|
+
# to compatibility mode for older versions of puppet.
|
111
|
+
begin
|
112
|
+
require 'puppet/test/test_helper'
|
113
|
+
rescue LoadError => err
|
114
|
+
$stderr.puts("Warning: you appear to be using an older version of puppet; spec_helper will use fallback compatibility mode.")
|
115
|
+
end
|
116
|
+
|
117
|
+
|
118
|
+
# JJM Hack to make the stdlib tests run in Puppet 2.6 (See puppet commit cf183534)
|
119
|
+
if not Puppet.constants.include? "Test" then
|
120
|
+
module Puppet::Test
|
121
|
+
class LogCollector
|
122
|
+
def initialize(logs)
|
123
|
+
@logs = logs
|
124
|
+
end
|
125
|
+
|
126
|
+
def <<(value)
|
127
|
+
@logs << value
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
131
|
+
Puppet::Util::Log.newdesttype :log_collector do
|
132
|
+
match "Puppet::Test::LogCollector"
|
133
|
+
|
134
|
+
def initialize(messages)
|
135
|
+
@messages = messages
|
136
|
+
end
|
137
|
+
|
138
|
+
def handle(msg)
|
139
|
+
@messages << msg
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
|
145
|
+
# And here is where we do the main rspec configuration / setup.
|
146
|
+
RSpec.configure do |config|
|
147
|
+
config.mock_with :mocha
|
148
|
+
|
149
|
+
# determine whether we can use the new API or not, and call the appropriate initializer method.
|
150
|
+
if (defined?(Puppet::Test::TestHelper))
|
151
|
+
Puppet::PuppetSpecInitializer.initialize_via_testhelper(config)
|
152
|
+
else
|
153
|
+
Puppet::PuppetSpecInitializer.initialize_via_fallback_compatibility(config)
|
154
|
+
end
|
155
|
+
|
156
|
+
# Here we do some general setup that is relevant to all initialization modes, regardless
|
157
|
+
# of the availability of the TestHelper API.
|
158
|
+
|
159
|
+
config.before :each do
|
160
|
+
# Here we redirect logging away from console, because otherwise the test output will be
|
161
|
+
# obscured by all of the log output.
|
162
|
+
#
|
163
|
+
# TODO: in a more sane world, we'd move this logging redirection into our TestHelper
|
164
|
+
# class, so that it was not coupled with a specific testing framework (rspec in this
|
165
|
+
# case). Further, it would be nicer and more portable to encapsulate the log messages
|
166
|
+
# into an object somewhere, rather than slapping them on an instance variable of the
|
167
|
+
# actual test class--which is what we are effectively doing here.
|
168
|
+
#
|
169
|
+
# However, because there are over 1300 tests that are written to expect
|
170
|
+
# this instance variable to be available--we can't easily solve this problem right now.
|
171
|
+
@logs = []
|
172
|
+
Puppet::Util::Log.newdestination(Puppet::Test::LogCollector.new(@logs))
|
173
|
+
|
174
|
+
@log_level = Puppet::Util::Log.level
|
175
|
+
end
|
176
|
+
|
177
|
+
config.after :each do
|
178
|
+
# clean up after the logging changes that we made before each test.
|
179
|
+
|
180
|
+
# TODO: this should be abstracted in the future--see comments above the '@logs' block in the
|
181
|
+
# "before" code above.
|
182
|
+
@logs.clear
|
183
|
+
Puppet::Util::Log.close_all
|
184
|
+
Puppet::Util::Log.level = @log_level
|
185
|
+
end
|
186
|
+
|
187
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
require 'tempfile'
|
3
|
+
require 'pathname'
|
4
|
+
|
5
|
+
# A support module for testing files.
|
6
|
+
module PuppetlabsSpec::Files
|
7
|
+
# This code exists only to support tests that run as root, pretty much.
|
8
|
+
# Once they have finally been eliminated this can all go... --daniel 2011-04-08
|
9
|
+
def self.in_tmp(path)
|
10
|
+
tempdir = Dir.tmpdir
|
11
|
+
|
12
|
+
Pathname.new(path).ascend do |dir|
|
13
|
+
return true if File.identical?(tempdir, dir)
|
14
|
+
end
|
15
|
+
|
16
|
+
false
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.cleanup
|
20
|
+
$global_tempfiles ||= []
|
21
|
+
while path = $global_tempfiles.pop do
|
22
|
+
fail "Not deleting tmpfile #{path} outside regular tmpdir" unless in_tmp(path)
|
23
|
+
|
24
|
+
begin
|
25
|
+
FileUtils.rm_r path, :secure => true
|
26
|
+
rescue Errno::ENOENT
|
27
|
+
# nothing to do
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def make_absolute(path)
|
33
|
+
path = File.expand_path(path)
|
34
|
+
path[0] = 'c' if Puppet.features.microsoft_windows?
|
35
|
+
path
|
36
|
+
end
|
37
|
+
|
38
|
+
def tmpfilename(name)
|
39
|
+
# Generate a temporary file, just for the name...
|
40
|
+
source = Tempfile.new(name)
|
41
|
+
path = source.path
|
42
|
+
source.close!
|
43
|
+
|
44
|
+
# ...record it for cleanup,
|
45
|
+
$global_tempfiles ||= []
|
46
|
+
$global_tempfiles << File.expand_path(path)
|
47
|
+
|
48
|
+
# ...and bam.
|
49
|
+
path
|
50
|
+
end
|
51
|
+
|
52
|
+
def tmpdir(name)
|
53
|
+
path = tmpfilename(name)
|
54
|
+
FileUtils.mkdir_p(path)
|
55
|
+
path
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# This module provides some helper methods to assist with fixtures. It's
|
2
|
+
# methods are designed to help when you have a conforming fixture layout so we
|
3
|
+
# get project consistency.
|
4
|
+
module PuppetlabsSpec::Fixtures
|
5
|
+
|
6
|
+
# Returns the joined path of the global FIXTURE_DIR plus any path given to it
|
7
|
+
def fixtures(*rest)
|
8
|
+
File.join(PuppetlabsSpec::FIXTURE_DIR, *rest)
|
9
|
+
end
|
10
|
+
|
11
|
+
# Returns the path to your relative fixture dir. So if your spec test is
|
12
|
+
# <project>/spec/unit/facter/foo_spec.rb then your relative dir will be
|
13
|
+
# <project>/spec/fixture/unit/facter/foo
|
14
|
+
def my_fixture_dir
|
15
|
+
callers = caller
|
16
|
+
while line = callers.shift do
|
17
|
+
next unless found = line.match(%r{/spec/(.*)_spec\.rb:})
|
18
|
+
return fixtures(found[1])
|
19
|
+
end
|
20
|
+
fail "sorry, I couldn't work out your path from the caller stack!"
|
21
|
+
end
|
22
|
+
|
23
|
+
# Given a name, returns the full path of a file from your relative fixture
|
24
|
+
# dir as returned by my_fixture_dir.
|
25
|
+
def my_fixture(name)
|
26
|
+
file = File.join(my_fixture_dir, name)
|
27
|
+
unless File.readable? file then
|
28
|
+
fail "fixture '#{name}' for #{my_fixture_dir} is not readable"
|
29
|
+
end
|
30
|
+
return file
|
31
|
+
end
|
32
|
+
|
33
|
+
# Return the contents of the file using read when given a name. Uses
|
34
|
+
# my_fixture to work out the relative path.
|
35
|
+
def my_fixture_read(name)
|
36
|
+
File.read(my_fixture(name))
|
37
|
+
end
|
38
|
+
|
39
|
+
# Provides a block mechanism for iterating across the files in your fixture
|
40
|
+
# area.
|
41
|
+
def my_fixtures(glob = '*', flags = 0)
|
42
|
+
files = Dir.glob(File.join(my_fixture_dir, glob), flags)
|
43
|
+
unless files.length > 0 then
|
44
|
+
fail "fixture '#{glob}' for #{my_fixture_dir} had no files!"
|
45
|
+
end
|
46
|
+
block_given? and files.each do |file| yield file end
|
47
|
+
files
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
require 'stringio'
|
2
|
+
|
3
|
+
########################################################################
|
4
|
+
# Backward compatibility for Jenkins outdated environment.
|
5
|
+
module RSpec
|
6
|
+
module Matchers
|
7
|
+
module BlockAliases
|
8
|
+
alias_method :to, :should unless method_defined? :to
|
9
|
+
alias_method :to_not, :should_not unless method_defined? :to_not
|
10
|
+
alias_method :not_to, :should_not unless method_defined? :not_to
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
########################################################################
|
17
|
+
# Custom matchers...
|
18
|
+
RSpec::Matchers.define :have_matching_element do |expected|
|
19
|
+
match do |actual|
|
20
|
+
actual.any? { |item| item =~ expected }
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
RSpec::Matchers.define :exit_with do |expected|
|
26
|
+
actual = nil
|
27
|
+
match do |block|
|
28
|
+
begin
|
29
|
+
block.call
|
30
|
+
rescue SystemExit => e
|
31
|
+
actual = e.status
|
32
|
+
end
|
33
|
+
actual and actual == expected
|
34
|
+
end
|
35
|
+
failure_message_for_should do |block|
|
36
|
+
"expected exit with code #{expected} but " +
|
37
|
+
(actual.nil? ? " exit was not called" : "we exited with #{actual} instead")
|
38
|
+
end
|
39
|
+
failure_message_for_should_not do |block|
|
40
|
+
"expected that exit would not be called with #{expected}"
|
41
|
+
end
|
42
|
+
description do
|
43
|
+
"expect exit with #{expected}"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
|
48
|
+
RSpec::Matchers.define :have_printed do |expected|
|
49
|
+
match do |block|
|
50
|
+
$stderr = $stdout = StringIO.new
|
51
|
+
|
52
|
+
begin
|
53
|
+
block.call
|
54
|
+
ensure
|
55
|
+
$stdout.rewind
|
56
|
+
@actual = $stdout.read
|
57
|
+
|
58
|
+
$stdout = STDOUT
|
59
|
+
$stderr = STDERR
|
60
|
+
end
|
61
|
+
|
62
|
+
if @actual then
|
63
|
+
case expected
|
64
|
+
when String
|
65
|
+
@actual.include? expected
|
66
|
+
when Regexp
|
67
|
+
expected.match @actual
|
68
|
+
else
|
69
|
+
raise ArgumentError, "No idea how to match a #{@actual.class.name}"
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
failure_message_for_should do |actual|
|
75
|
+
if actual.nil? then
|
76
|
+
"expected #{expected.inspect}, but nothing was printed"
|
77
|
+
else
|
78
|
+
"expected #{expected.inspect} to be printed; got:\n#{actual}"
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
description do
|
83
|
+
"expect #{expected.inspect} to be printed"
|
84
|
+
end
|
85
|
+
|
86
|
+
diffable
|
87
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# Define the main module namespace for use by the helper modules
|
2
|
+
module PuppetlabsSpec
|
3
|
+
end
|
4
|
+
|
5
|
+
# Require all necessary helper libraries so they can be used later
|
6
|
+
require 'puppet_module_spec_helper/puppetlabs_spec/files'
|
7
|
+
require 'puppet_module_spec_helper/puppetlabs_spec/fixtures'
|
8
|
+
require 'puppet_module_spec_helper/puppetlabs_spec/matchers'
|
9
|
+
|
10
|
+
RSpec.configure do |config|
|
11
|
+
# Include PuppetlabsSpec helpers so they can be called at convenience
|
12
|
+
config.extend PuppetlabsSpec::Files
|
13
|
+
config.extend PuppetlabsSpec::Fixtures
|
14
|
+
config.include PuppetlabsSpec::Fixtures
|
15
|
+
|
16
|
+
# This will cleanup any files that were created with tmpdir or tmpfile
|
17
|
+
config.after :each do
|
18
|
+
PuppetlabsSpec::Files.cleanup
|
19
|
+
end
|
20
|
+
end
|
@@ -10,6 +10,12 @@ RSpec::Core::RakeTask.new(:spec) do |t|
|
|
10
10
|
t.pattern = 'spec/{classes,defines,unit}/**/*_spec.rb'
|
11
11
|
end
|
12
12
|
|
13
|
+
desc "Generate code coverage information"
|
14
|
+
RSpec::Core::RakeTask.new(:coverage) do |t|
|
15
|
+
t.rcov = true
|
16
|
+
t.rcov_opts = ['--exclude', 'spec']
|
17
|
+
end
|
18
|
+
|
13
19
|
# This is a helper for the self-symlink entry of fixtures.yml
|
14
20
|
def source_dir
|
15
21
|
Dir.pwd
|
metadata
CHANGED
@@ -1,114 +1,134 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet_module_spec_helper
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 2
|
9
|
+
- 0
|
10
|
+
version: 0.2.0
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Branan Purvine-Riley
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
|
18
|
+
date: 2012-05-30 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
15
21
|
name: rake
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
|
-
requirements:
|
19
|
-
- - ! '>='
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: '0'
|
22
|
-
type: :runtime
|
23
22
|
prerelease: false
|
24
|
-
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - ! '>='
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '0'
|
30
|
-
- !ruby/object:Gem::Dependency
|
31
|
-
name: rspec
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
33
24
|
none: false
|
34
|
-
requirements:
|
35
|
-
- -
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 3
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
version: "0"
|
38
32
|
type: :runtime
|
33
|
+
version_requirements: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: rspec
|
39
36
|
prerelease: false
|
40
|
-
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
38
|
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
39
|
+
requirements:
|
40
|
+
- - "="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
hash: 43
|
43
|
+
segments:
|
44
|
+
- 2
|
45
|
+
- 9
|
46
|
+
- 0
|
45
47
|
version: 2.9.0
|
46
|
-
- !ruby/object:Gem::Dependency
|
47
|
-
name: mocha
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
|
-
requirements:
|
51
|
-
- - '='
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: 0.10.5
|
54
48
|
type: :runtime
|
49
|
+
version_requirements: *id002
|
50
|
+
- !ruby/object:Gem::Dependency
|
51
|
+
name: mocha
|
55
52
|
prerelease: false
|
56
|
-
|
53
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
57
54
|
none: false
|
58
|
-
requirements:
|
59
|
-
- -
|
60
|
-
- !ruby/object:Gem::Version
|
55
|
+
requirements:
|
56
|
+
- - "="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
hash: 61
|
59
|
+
segments:
|
60
|
+
- 0
|
61
|
+
- 10
|
62
|
+
- 5
|
61
63
|
version: 0.10.5
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
|
-
name: rspec-puppet
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
|
-
requirements:
|
67
|
-
- - ! '>='
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: 0.1.1
|
70
64
|
type: :runtime
|
65
|
+
version_requirements: *id003
|
66
|
+
- !ruby/object:Gem::Dependency
|
67
|
+
name: rspec-puppet
|
71
68
|
prerelease: false
|
72
|
-
|
69
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
73
70
|
none: false
|
74
|
-
requirements:
|
75
|
-
- -
|
76
|
-
- !ruby/object:Gem::Version
|
71
|
+
requirements:
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
hash: 25
|
75
|
+
segments:
|
76
|
+
- 0
|
77
|
+
- 1
|
78
|
+
- 1
|
77
79
|
version: 0.1.1
|
78
|
-
|
79
|
-
|
80
|
-
|
80
|
+
type: :runtime
|
81
|
+
version_requirements: *id004
|
82
|
+
description: Contains rake tasks and a standard spec_helper for running spec tests on puppet modules
|
83
|
+
email:
|
81
84
|
- branan@puppetlabs.com
|
82
85
|
executables: []
|
86
|
+
|
83
87
|
extensions: []
|
88
|
+
|
84
89
|
extra_rdoc_files: []
|
85
|
-
|
90
|
+
|
91
|
+
files:
|
92
|
+
- lib/puppet_module_spec_helper/module_spec_helper.rb
|
93
|
+
- lib/puppet_module_spec_helper/puppet_spec_helper.rb
|
94
|
+
- lib/puppet_module_spec_helper/puppetlabs_spec/files.rb
|
95
|
+
- lib/puppet_module_spec_helper/puppetlabs_spec/fixtures.rb
|
96
|
+
- lib/puppet_module_spec_helper/puppetlabs_spec/matchers.rb
|
97
|
+
- lib/puppet_module_spec_helper/puppetlabs_spec_helper.rb
|
86
98
|
- lib/puppet_module_spec_helper/rake_tasks.rb
|
87
|
-
- lib/puppet_module_spec_helper/spec_helper.rb
|
88
|
-
- lib/puppet_module_spec_helper.rb
|
89
99
|
- LICENSE
|
90
100
|
homepage: http://github.com/branan/module-spec-helper
|
91
101
|
licenses: []
|
102
|
+
|
92
103
|
post_install_message:
|
93
104
|
rdoc_options: []
|
94
|
-
|
105
|
+
|
106
|
+
require_paths:
|
95
107
|
- lib
|
96
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
108
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
97
109
|
none: false
|
98
|
-
requirements:
|
99
|
-
- -
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
|
102
|
-
|
110
|
+
requirements:
|
111
|
+
- - ">="
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
hash: 3
|
114
|
+
segments:
|
115
|
+
- 0
|
116
|
+
version: "0"
|
117
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
103
118
|
none: false
|
104
|
-
requirements:
|
105
|
-
- -
|
106
|
-
- !ruby/object:Gem::Version
|
107
|
-
|
119
|
+
requirements:
|
120
|
+
- - ">="
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
hash: 3
|
123
|
+
segments:
|
124
|
+
- 0
|
125
|
+
version: "0"
|
108
126
|
requirements: []
|
127
|
+
|
109
128
|
rubyforge_project:
|
110
129
|
rubygems_version: 1.8.23
|
111
130
|
signing_key:
|
112
131
|
specification_version: 3
|
113
132
|
summary: Standard tasks and configuration for module spec tests
|
114
133
|
test_files: []
|
134
|
+
|
@@ -1 +0,0 @@
|
|
1
|
-
require 'puppet_module_spec_helper/spec_helper'
|