Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #79 from branan/use_spechelper_gem
Switch to using the puppetlabs_spec_helper gem for common files
- Loading branch information
Showing
4 changed files
with
4 additions
and
118 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,5 @@ | ||
source :rubygems | ||
|
||
puppetversion = ENV.key?('PUPPET_VERSION') ? "= #{ENV['PUPPET_VERSION']}" : ['>= 2.7'] | ||
|
||
gem 'puppet', puppetversion | ||
|
||
group :test do | ||
gem 'rake', '>= 0.9.0' | ||
gem 'rspec', '>= 2.8.0' | ||
gem 'rspec-puppet', '>= 0.1.1' | ||
gem 'mocha', '>= 0.11.0' | ||
end | ||
gem 'puppetlabs_spec_helper', '>= 0.1.0' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,91 +1 @@ | ||
require 'rake' | ||
require 'rspec/core/rake_task' | ||
require 'yaml' | ||
|
||
task :default => [:spec] | ||
|
||
desc "Run all module spec tests (Requires rspec-puppet gem)" | ||
RSpec::Core::RakeTask.new(:spec) do |t| | ||
t.rspec_opts = ['--color'] | ||
t.pattern = 'spec/{classes,defines,unit}/**/*_spec.rb' | ||
end | ||
|
||
# This is a helper for the self-symlink entry of fixtures.yml | ||
def source_dir | ||
File.dirname(__FILE__) | ||
end | ||
|
||
def fixtures(category) | ||
begin | ||
fixtures = YAML.load_file(".fixtures.yml")["fixtures"] | ||
rescue Errno::ENOENT | ||
return {} | ||
end | ||
|
||
if not fixtures | ||
abort("malformed fixtures.yml") | ||
end | ||
|
||
result = {} | ||
if fixtures.include? category | ||
fixtures[category].each do |fixture, source| | ||
target = "spec/fixtures/modules/#{fixture}" | ||
real_source = eval('"'+source+'"') | ||
result[real_source] = target | ||
end | ||
end | ||
return result | ||
end | ||
|
||
desc "Create the fixtures directory" | ||
task :spec_prep do | ||
fixtures("repositories").each do |repo, target| | ||
File::exists?(target) || system("git clone #{repo} #{target}") | ||
end | ||
|
||
FileUtils::mkdir_p("spec/fixtures/modules") | ||
fixtures("symlinks").each do |source, target| | ||
File::exists?(target) || FileUtils::ln_s(source, target) | ||
end | ||
end | ||
|
||
desc "Clean up the fixtures directory" | ||
task :spec_clean do | ||
fixtures("repositories").each do |repo, target| | ||
FileUtils::rm_rf(target) | ||
end | ||
|
||
fixtures("symlinks").each do |source, target| | ||
FileUtils::rm(target) | ||
end | ||
end | ||
|
||
task :spec_full do | ||
Rake::Task[:spec_prep].invoke | ||
Rake::Task[:spec].invoke | ||
Rake::Task[:spec_clean].invoke | ||
end | ||
|
||
desc "Build puppet module package" | ||
task :build do | ||
# This will be deprecated once puppet-module is a face. | ||
begin | ||
Gem::Specification.find_by_name('puppet-module') | ||
rescue Gem::LoadError, NoMethodError | ||
require 'puppet/face' | ||
pmod = Puppet::Face['module', :current] | ||
pmod.build('./') | ||
end | ||
end | ||
|
||
desc "Clean a built module package" | ||
task :clean do | ||
FileUtils.rm_rf("pkg/") | ||
end | ||
|
||
desc "Check puppet manifests with puppet-lint" | ||
task :lint do | ||
# This requires pull request: https://github.com/rodjek/puppet-lint/pull/81 | ||
system("puppet-lint manifests") | ||
system("puppet-lint tests") | ||
end | ||
require 'puppetlabs_spec_helper/rake_tasks' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1 @@ | ||
require 'rubygems' | ||
require 'puppet' | ||
require 'rspec-puppet' | ||
|
||
def param_value(subject, type, title, param) | ||
subject.resource(type, title).send(:parameters)[param.to_sym] | ||
end | ||
|
||
Puppet.parse_config | ||
puppet_module_path = Puppet[:modulepath] | ||
|
||
fixture_path = File.expand_path(File.join(File.dirname(__FILE__), 'fixtures')) | ||
|
||
RSpec.configure do |c| | ||
fixture_module_path = File.join(fixture_path, 'modules') | ||
c.module_path = [fixture_module_path, puppet_module_path].join(":") | ||
c.manifest_dir = File.join(fixture_path, 'manifests') | ||
end | ||
require 'puppetlabs_spec_helper/module_spec_helper' |