control_spec_helper 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|