control_spec_helper 0.0.1
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.
- checksums.yaml +7 -0
- data/.gitignore +3 -0
- data/Gemfile +3 -0
- data/LICENSE +16 -0
- data/README.md +9 -0
- data/Rakefile +36 -0
- data/control_spec_helper.gemspec +26 -0
- data/ext/Rakefile.sample +11 -0
- data/ext/spec_helper_control.rb +55 -0
- data/lib/control_spec_helper/control_spec_helper.rb +136 -0
- data/lib/control_spec_helper/rake_tasks.rb +158 -0
- data/lib/control_spec_helper/version.rb +5 -0
- data/lib/control_spec_helper.rb +1 -0
- data/spec/spec_helper.rb +2 -0
- data/spec/unit/control_spec_helper_spec.rb +25 -0
- metadata +145 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 85c0b9b72a42803e64e735178baa10091aa89782
|
4
|
+
data.tar.gz: 1414e84d2bb520b8310533b2f3fe2504c18d4127
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b5ea6ca1108204d0e87dbf83bcf8bce8ffa07a9681904c67415092e2388745054191168e80397a4d28c8eb7ebaffc84e024065dcff2e923f54de806a97a8f7c4
|
7
|
+
data.tar.gz: deff607652448f633a89bb1fa03b0de77aac9ffe87482cf4aaf43ff8c96494e454d1922fc739118c8e4d79990ca8a5e0ecd9dd72ae493544b76ca12aed2b24fe
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
Copyright (C) 2012 Puppet Labs Inc
|
2
|
+
|
3
|
+
Puppet Labs can be contacted at: info@puppetlabs.com
|
4
|
+
|
5
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
you may not use this file except in compliance with the License.
|
7
|
+
You may obtain a copy of the License at
|
8
|
+
|
9
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
|
11
|
+
Unless required by applicable law or agreed to in writing, software
|
12
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
|
15
|
+
See the License for the specific language governing permissions and
|
16
|
+
limitations under the License.
|
data/README.md
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
Note: this is still alpha code. Use at your own risk.
|
2
|
+
|
3
|
+
Puppet Control Spec Helper is designed to complement the Puppet Labs Spec Helper, which is
|
4
|
+
not intended for use with control repositories.
|
5
|
+
|
6
|
+
Directions forthcoming - for now copy the ext/spec_helper_control.rb file into your site/role/spec directory inside your control repo
|
7
|
+
and copy the Rakefile into your base directory.
|
8
|
+
|
9
|
+
Most code by David Gwilliam <david.gwilliam@slalom.com> with assistance by Eric Shamow <eric.shamow@slalom.com>
|
data/Rakefile
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rake/packagetask'
|
3
|
+
require 'rubygems/package_task'
|
4
|
+
require 'rspec/core/rake_task'
|
5
|
+
|
6
|
+
task :default do
|
7
|
+
sh %{rake -T}
|
8
|
+
end
|
9
|
+
|
10
|
+
require 'fileutils'
|
11
|
+
|
12
|
+
RSpec::Core::RakeTask.new(:spec)
|
13
|
+
|
14
|
+
def version
|
15
|
+
require 'control_spec_helper/version'
|
16
|
+
ControlSpecHelper::Version::STRING
|
17
|
+
end
|
18
|
+
|
19
|
+
namespace :package do
|
20
|
+
desc "Create the gem"
|
21
|
+
task :gem do
|
22
|
+
spec = Gem::Specification.load("control_spec_helper.gemspec")
|
23
|
+
Dir.mkdir("pkg") rescue nil
|
24
|
+
if Gem::Version.new(`gem -v`) >= Gem::Version.new("2.0.0.a")
|
25
|
+
Gem::Package.build(spec)
|
26
|
+
else
|
27
|
+
Gem::Builder.new(spec).build
|
28
|
+
end
|
29
|
+
FileUtils.move("control_spec_helper-#{version}.gem", "pkg")
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
desc "Cleanup pkg directory"
|
34
|
+
task :clean do
|
35
|
+
FileUtils.rm_rf("pkg")
|
36
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
|
3
|
+
require "control_spec_helper/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "control_spec_helper"
|
7
|
+
s.version = ControlSpecHelper::Version::STRING
|
8
|
+
s.authors = ["Slalom Consulting"]
|
9
|
+
s.email = ["eric.shamow@slalom.com"]
|
10
|
+
s.homepage = "http://github.com/eshamow/control_spec_helper"
|
11
|
+
s.summary = "Standard tasks and configuration for control repo spec tests"
|
12
|
+
s.description = "Contains rake tasks and a standard spec_helper for running spec tests on puppet control repo"
|
13
|
+
s.licenses = 'Apache-2.0'
|
14
|
+
|
15
|
+
s.files = `git ls-files`.split("\n")
|
16
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
17
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
18
|
+
|
19
|
+
# Runtime dependencies, but also probably dependencies of requiring projects
|
20
|
+
s.add_runtime_dependency 'rake'
|
21
|
+
s.add_runtime_dependency 'rspec-puppet'
|
22
|
+
s.add_runtime_dependency 'puppet-lint'
|
23
|
+
s.add_runtime_dependency 'puppet-syntax'
|
24
|
+
s.add_runtime_dependency 'mocha'
|
25
|
+
s.add_development_dependency 'pry'
|
26
|
+
end
|
data/ext/Rakefile.sample
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
$:.unshift(File.join(File.dirname(__FILE__), 'lib'))
|
2
|
+
|
3
|
+
require 'control_spec_helper/control_spec_helper'
|
4
|
+
require 'control_spec_helper/rake_tasks'
|
5
|
+
require 'puppet-lint/tasks/puppet-lint'
|
6
|
+
|
7
|
+
include ControlSpecHelper
|
8
|
+
|
9
|
+
# Uncomment one of the below to set alternate directories for basebranch or bastpath
|
10
|
+
#basebranch='master'
|
11
|
+
#basepath='spec'
|
@@ -0,0 +1,55 @@
|
|
1
|
+
if ENV['serverspec']
|
2
|
+
require 'serverspec'
|
3
|
+
|
4
|
+
Specinfra.configuration.backend = :exec
|
5
|
+
else
|
6
|
+
require 'beaker-rspec/spec_helper'
|
7
|
+
require 'beaker-rspec/helpers/serverspec'
|
8
|
+
|
9
|
+
UNSUPPORTED_PLATFORMS = %w(Suse windows AIX Solaris Debian)
|
10
|
+
|
11
|
+
RSpec.configure do |c|
|
12
|
+
# Project root
|
13
|
+
proj_root = File.expand_path(
|
14
|
+
File.join(File.dirname(__FILE__), '..', '..', '..'))
|
15
|
+
|
16
|
+
# Readable test descriptions
|
17
|
+
c.formatter = :documentation
|
18
|
+
|
19
|
+
# Configure all nodes in nodeset
|
20
|
+
c.before :suite do
|
21
|
+
# Install module and dependencies
|
22
|
+
hosts.each do |host|
|
23
|
+
role = File.join(proj_root, 'dist', 'role')
|
24
|
+
profile = File.join(proj_root, 'dist', 'profile')
|
25
|
+
|
26
|
+
copy_module_to(host, source: role, module_name: 'role')
|
27
|
+
copy_module_to(host, source: profile, module_name: 'profile')
|
28
|
+
run_script_on host, File.join(proj_root, 'scripts', 'bootstrap.sh')
|
29
|
+
shell 'mkdir -p /controlrepo'
|
30
|
+
shell 'chown vagrant /controlrepo'
|
31
|
+
install_package(host, 'zlib-devel')
|
32
|
+
install_package(host, 'openssl-devel')
|
33
|
+
%x{scp -i ~/.vagrant.d/insecure_private_key -o StrictHostKeyChecking=no -r #{proj_root} vagrant@#{host.connection.ip}:/}
|
34
|
+
#scp_to host, proj_root, '/controlrepo'
|
35
|
+
shell 'cd /controlrepo && gem install ./control_spec_helper-0.0.1.gem && bundle install && rake r10k'
|
36
|
+
shell 'mkdir -p /etc/facter/facts.d'
|
37
|
+
role = ENV['role'].sub(/^role::/, '')
|
38
|
+
shell "echo \"role=#{role}\" > /etc/facter/facts.d/role.txt"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
shared_context 'beaker' do
|
44
|
+
describe 'running puppet code' do
|
45
|
+
it 'should apply cleanly' do
|
46
|
+
pp = <<-EOS
|
47
|
+
include "role::${::role}"
|
48
|
+
EOS
|
49
|
+
|
50
|
+
modulepath = '/controlrepo/dist:/controlrepo/modules'
|
51
|
+
apply_manifest(pp, :modulepath => modulepath, :catch_failures => true)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,136 @@
|
|
1
|
+
# rubocop:disable Style/DotPosition, Style/HashSyntax
|
2
|
+
|
3
|
+
module ControlSpecHelper
|
4
|
+
attr_writer :basepath, :basebranch
|
5
|
+
|
6
|
+
def basepath
|
7
|
+
@basepath ||= 'site'
|
8
|
+
end
|
9
|
+
|
10
|
+
def basebranch
|
11
|
+
@basebranch ||= 'master'
|
12
|
+
end
|
13
|
+
|
14
|
+
def debug(msg)
|
15
|
+
puts "DEBUG: #{msg}" if ENV['debug']
|
16
|
+
end
|
17
|
+
|
18
|
+
def puppet_cmd
|
19
|
+
'puppet apply manifests/site.pp \
|
20
|
+
--modulepath $(echo `pwd`/modules:`pwd`/site) --hiera_config hiera.yaml'
|
21
|
+
end
|
22
|
+
|
23
|
+
def project_root
|
24
|
+
return @root if @root
|
25
|
+
@root = `git rev-parse --show-toplevel`.chomp
|
26
|
+
debug("project_root = #{@root}")
|
27
|
+
@root
|
28
|
+
end
|
29
|
+
|
30
|
+
def role_path
|
31
|
+
File.join(project_root, @basepath, 'role')
|
32
|
+
end
|
33
|
+
|
34
|
+
def profile_path
|
35
|
+
File.join(project_root, @basepath, 'profile')
|
36
|
+
end
|
37
|
+
|
38
|
+
def diff_from_base
|
39
|
+
`git diff #{@basebranch} --cached --diff-filter=ACMR --name-only`.split("\n")
|
40
|
+
end
|
41
|
+
|
42
|
+
def diff_roles
|
43
|
+
diff_from_base.
|
44
|
+
select { |file| file.match(%r{site/role/manifests}) }.
|
45
|
+
map { |path| class_from_path(path) }
|
46
|
+
end
|
47
|
+
|
48
|
+
def diff_profile
|
49
|
+
diff_from_base.
|
50
|
+
select { |file| file.match(%r{site/profile/manifests}) }.
|
51
|
+
map { |path| class_from_path(path) }
|
52
|
+
end
|
53
|
+
|
54
|
+
def class_from_path(path)
|
55
|
+
return nil unless path =~ /manifests.+\.pp$/
|
56
|
+
|
57
|
+
(path.sub(project_root + '/', '').
|
58
|
+
sub(/\.pp$/, '').
|
59
|
+
split('/') - %w(site manifests)).
|
60
|
+
join('::')
|
61
|
+
end
|
62
|
+
|
63
|
+
def roles_that_include(klass)
|
64
|
+
Dir.chdir(role_path) do
|
65
|
+
debug("cd to #{role_path}")
|
66
|
+
`git grep -l #{klass}`.split("\n").
|
67
|
+
map { |path| class_from_path(File.join(role_path, path)) }.
|
68
|
+
compact
|
69
|
+
end
|
70
|
+
debug "cd to #{Dir.pwd}"
|
71
|
+
end
|
72
|
+
|
73
|
+
# TODO: this could be much more accurate if we compiled catalogs for all roles
|
74
|
+
# and then parsed them for included Classes, but that is very complicated
|
75
|
+
def all_roles_with_changes
|
76
|
+
(diff_roles + diff_profile.map do |klass|
|
77
|
+
roles_that_include(klass)
|
78
|
+
end.flatten).uniq
|
79
|
+
end
|
80
|
+
|
81
|
+
def spec_from_class(klass)
|
82
|
+
test = if klass =~ /profile/
|
83
|
+
{ :path => 'profile', :type => nil }
|
84
|
+
elsif klass =~ /role/
|
85
|
+
{ :path => 'role', :type => 'acceptance' }
|
86
|
+
else
|
87
|
+
fail ArgumentError
|
88
|
+
end
|
89
|
+
|
90
|
+
path = [project_root, @basepath, test[:path], 'spec', test[:type]].compact
|
91
|
+
File.join(path << (klass.split('::') - [test[:path]])) + '_spec.rb'
|
92
|
+
end
|
93
|
+
|
94
|
+
def r10k
|
95
|
+
Dir.chdir(project_root) do
|
96
|
+
debug("cd to #{project_root}")
|
97
|
+
puts 'Installing modules with r10k'
|
98
|
+
`r10k puppetfile install`
|
99
|
+
end
|
100
|
+
debug "cd to #{Dir.pwd}"
|
101
|
+
end
|
102
|
+
|
103
|
+
def profile_fixtures
|
104
|
+
Dir.chdir(profile_path) do
|
105
|
+
debug("cd to #{profile_path}")
|
106
|
+
profile_ln = './spec/fixtures/modules/profile'
|
107
|
+
|
108
|
+
FileUtils.mkpath './spec/fixtures/modules/'
|
109
|
+
File.symlink(profile_path, profile_ln) unless File.exists?(profile_ln)
|
110
|
+
|
111
|
+
Dir.glob('../../modules/*').each do |folder|
|
112
|
+
next unless File.directory?(folder)
|
113
|
+
old_path = File.join(File.dirname(__FILE__), folder)
|
114
|
+
new_path = File.join("./spec/fixtures/modules/#{File.basename(folder)}")
|
115
|
+
|
116
|
+
File.symlink(old_path, new_path) unless File.symlink?(new_path)
|
117
|
+
end
|
118
|
+
end
|
119
|
+
debug "cd to #{Dir.pwd}"
|
120
|
+
end
|
121
|
+
|
122
|
+
def spec_clean
|
123
|
+
Dir.chdir(project_root) do
|
124
|
+
debug("cd to #{project_root}")
|
125
|
+
fixtures = File.join(profile_path, 'spec', 'fixtures', 'modules')
|
126
|
+
modules = File.join(project_root, 'modules')
|
127
|
+
|
128
|
+
abort if fixtures == '' || !fixtures
|
129
|
+
abort if modules == '' || !modules
|
130
|
+
|
131
|
+
`rm -rf #{fixtures}/*`
|
132
|
+
`rm -rf #{modules}/*`
|
133
|
+
end
|
134
|
+
debug "cd to #{Dir.pwd}"
|
135
|
+
end
|
136
|
+
end
|
@@ -0,0 +1,158 @@
|
|
1
|
+
# rubocop:disable Style/HashSyntax
|
2
|
+
require 'rake'
|
3
|
+
require 'rspec/core/rake_task'
|
4
|
+
require 'puppet-lint/tasks/puppet-lint'
|
5
|
+
require 'puppet-syntax/tasks/puppet-syntax'
|
6
|
+
|
7
|
+
task :default => [:help]
|
8
|
+
|
9
|
+
desc 'update repo from origin (destructive)'
|
10
|
+
task :git do
|
11
|
+
puts 'Updating puppet-control repo'
|
12
|
+
`git fetch --all`
|
13
|
+
`git checkout --track origin/cloud`
|
14
|
+
`git reset --hard origin/cloud`
|
15
|
+
end
|
16
|
+
|
17
|
+
desc 'install all modules from the Puppetfile (idempotent)'
|
18
|
+
task :r10k do
|
19
|
+
r10k
|
20
|
+
end
|
21
|
+
|
22
|
+
desc 'print the command used to run puppet'
|
23
|
+
task :puppet_cmd do
|
24
|
+
puts puppet_cmd
|
25
|
+
end
|
26
|
+
|
27
|
+
desc 'run puppet apply (enforce mode)'
|
28
|
+
task :apply => [:git, :r10k] do
|
29
|
+
puts "Running 'puppet apply'"
|
30
|
+
exec puppet_cmd
|
31
|
+
end
|
32
|
+
|
33
|
+
desc 'run puppet apply (no git)'
|
34
|
+
task :apply_dev => :r10k do
|
35
|
+
puts "Running 'puppet apply'"
|
36
|
+
exec puppet_cmd
|
37
|
+
end
|
38
|
+
|
39
|
+
desc 'run puppet apply (noop)'
|
40
|
+
task :apply_noop do
|
41
|
+
puts "Running 'puppet apply'"
|
42
|
+
exec "#{puppet_cmd} --noop"
|
43
|
+
end
|
44
|
+
|
45
|
+
desc 'run puppet apply (debug)'
|
46
|
+
task :apply_debug do
|
47
|
+
puts "Running 'puppet apply'"
|
48
|
+
exec "#{puppet_cmd} --debug --trace"
|
49
|
+
end
|
50
|
+
|
51
|
+
desc 'run puppet apply (no r10k or git)'
|
52
|
+
task :apply_standalone do
|
53
|
+
puts "Running 'puppet apply'"
|
54
|
+
exec "#{puppet_cmd} --debug --trace"
|
55
|
+
end
|
56
|
+
|
57
|
+
desc 'install or update pre-commit hook'
|
58
|
+
task :hooks do
|
59
|
+
include FileUtils
|
60
|
+
puts 'Installing pre-commit hook'
|
61
|
+
hook = File.join(project_root, 'scripts', 'pre-commit')
|
62
|
+
dest = File.join(project_root, '.git', 'hooks', 'pre-commit')
|
63
|
+
FileUtils.cp hook, dest
|
64
|
+
FileUtils.chmod 'a+x', dest
|
65
|
+
end
|
66
|
+
|
67
|
+
desc 'install Vagrant plugins'
|
68
|
+
task :vplugins do
|
69
|
+
exec 'vagrant plugin install vagrant-auto_network vagrant-hosts'
|
70
|
+
end
|
71
|
+
|
72
|
+
desc 'prep for spec tests'
|
73
|
+
task :spec_prep do
|
74
|
+
r10k
|
75
|
+
profile_fixtures
|
76
|
+
end
|
77
|
+
|
78
|
+
desc 'run unit tests'
|
79
|
+
task :spec do
|
80
|
+
Rake::Task['spec_prep'].invoke
|
81
|
+
Dir.chdir(profile_path) do
|
82
|
+
system 'bundle exec rake rspec'
|
83
|
+
end
|
84
|
+
Rake::Task['spec_clean'].invoke
|
85
|
+
end
|
86
|
+
|
87
|
+
desc 'clean up after unit tests'
|
88
|
+
task :spec_clean do
|
89
|
+
spec_clean
|
90
|
+
end
|
91
|
+
|
92
|
+
desc 'Run acceptance tests for 1 or more roles'
|
93
|
+
task :acceptance do
|
94
|
+
Rake::Task['spec_clean'].invoke
|
95
|
+
|
96
|
+
role = if ENV['role'] || ENV['roles']
|
97
|
+
(ENV['role'] || ENV['roles']).split(',')
|
98
|
+
elsif !diff_roles.empty?
|
99
|
+
diff_roles
|
100
|
+
else
|
101
|
+
puts 'no roles specified and no changes detected'
|
102
|
+
exit 0
|
103
|
+
end
|
104
|
+
|
105
|
+
puts "-- Acceptance tests for #{role.join(', ')} --"
|
106
|
+
paths = role.map do |klass|
|
107
|
+
if klass.match(/^role/)
|
108
|
+
spec_from_class(klass)
|
109
|
+
else
|
110
|
+
spec_from_class("role::#{klass}")
|
111
|
+
end
|
112
|
+
end.join(' ')
|
113
|
+
Dir.chdir(role_path) do
|
114
|
+
abort unless
|
115
|
+
system "bash -c 'bundle exec rspec --format documentation #{paths}'"
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
desc 'Run acceptance tests locally from SUT'
|
120
|
+
task :serverspec do
|
121
|
+
Dir.chdir(role_path) do
|
122
|
+
if ENV['role']
|
123
|
+
role_spec = ENV['role']
|
124
|
+
else
|
125
|
+
role_spec = `facter role`.chomp.split('::').join('/')
|
126
|
+
end
|
127
|
+
ENV['serverspec'] = 'true'
|
128
|
+
system "rspec spec/acceptance/#{role_spec}_spec.rb"
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
# Override default puppet-lint choices
|
133
|
+
# Must clear as it will not override the existing puppet-lint rake task since
|
134
|
+
# we require to import for the PuppetLint::RakeTask
|
135
|
+
Rake::Task[:lint].clear
|
136
|
+
# Relative is not able to be set within the context of PuppetLint::RakeTask
|
137
|
+
PuppetLint.configuration.relative = true
|
138
|
+
PuppetLint::RakeTask.new(:lint) do |config|
|
139
|
+
config.fail_on_warnings = true
|
140
|
+
config.disable_checks = %w(
|
141
|
+
80chars
|
142
|
+
class_inherits_from_params_class
|
143
|
+
class_parameter_defaults
|
144
|
+
documentation
|
145
|
+
)
|
146
|
+
config.ignore_paths = %w(
|
147
|
+
tests/**/*.pp
|
148
|
+
vendor/**/*.pp
|
149
|
+
examples/**/*.pp
|
150
|
+
spec/**/*.pp
|
151
|
+
pkg/**/*.pp
|
152
|
+
)
|
153
|
+
end
|
154
|
+
|
155
|
+
desc 'Display the list of available rake tasks'
|
156
|
+
task :help do
|
157
|
+
system('rake -T')
|
158
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'control_spec_helper/control_spec_helper'
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
class DummyClass
|
4
|
+
include ControlSpecHelper
|
5
|
+
end
|
6
|
+
|
7
|
+
describe 'control_spec_helper' do
|
8
|
+
before do
|
9
|
+
@dummy_class = DummyClass.new
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'should have a default basepath' do
|
13
|
+
expect(@dummy_class.basepath).to eq('site')
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should allow you to set basepath' do
|
17
|
+
@dummy_class.basepath = 'dist'
|
18
|
+
expect(@dummy_class.basepath).to eq('dist')
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should print the puppet command' do
|
22
|
+
cmd = "puppet apply manifests/site.pp \\\n --modulepath $(echo `pwd`/modules:`pwd`/site) --hiera_config hiera.yaml"
|
23
|
+
expect(@dummy_class.puppet_cmd).to eq(cmd)
|
24
|
+
end
|
25
|
+
end
|
metadata
ADDED
@@ -0,0 +1,145 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: control_spec_helper
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Slalom Consulting
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-10-26 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rake
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rspec-puppet
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: puppet-lint
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: puppet-syntax
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: mocha
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: pry
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
description: Contains rake tasks and a standard spec_helper for running spec tests
|
98
|
+
on puppet control repo
|
99
|
+
email:
|
100
|
+
- eric.shamow@slalom.com
|
101
|
+
executables: []
|
102
|
+
extensions: []
|
103
|
+
extra_rdoc_files: []
|
104
|
+
files:
|
105
|
+
- .gitignore
|
106
|
+
- Gemfile
|
107
|
+
- LICENSE
|
108
|
+
- README.md
|
109
|
+
- Rakefile
|
110
|
+
- control_spec_helper.gemspec
|
111
|
+
- ext/Rakefile.sample
|
112
|
+
- ext/spec_helper_control.rb
|
113
|
+
- lib/control_spec_helper.rb
|
114
|
+
- lib/control_spec_helper/control_spec_helper.rb
|
115
|
+
- lib/control_spec_helper/rake_tasks.rb
|
116
|
+
- lib/control_spec_helper/version.rb
|
117
|
+
- spec/spec_helper.rb
|
118
|
+
- spec/unit/control_spec_helper_spec.rb
|
119
|
+
homepage: http://github.com/eshamow/control_spec_helper
|
120
|
+
licenses:
|
121
|
+
- Apache-2.0
|
122
|
+
metadata: {}
|
123
|
+
post_install_message:
|
124
|
+
rdoc_options: []
|
125
|
+
require_paths:
|
126
|
+
- lib
|
127
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - '>='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
133
|
+
requirements:
|
134
|
+
- - '>='
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
version: '0'
|
137
|
+
requirements: []
|
138
|
+
rubyforge_project:
|
139
|
+
rubygems_version: 2.0.14.1
|
140
|
+
signing_key:
|
141
|
+
specification_version: 4
|
142
|
+
summary: Standard tasks and configuration for control repo spec tests
|
143
|
+
test_files:
|
144
|
+
- spec/spec_helper.rb
|
145
|
+
- spec/unit/control_spec_helper_spec.rb
|