Skip to content

Commit

Permalink
Merge pull request #79 from branan/use_spechelper_gem
Browse files Browse the repository at this point in the history
Switch to using the puppetlabs_spec_helper gem for common files
  • Loading branch information
nanliu committed Jun 8, 2012
2 parents d66607d + 62b395f commit 01fe9e5
Show file tree
Hide file tree
Showing 4 changed files with 4 additions and 118 deletions.
9 changes: 1 addition & 8 deletions .gemfile
@@ -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'
2 changes: 1 addition & 1 deletion .travis.yml
Expand Up @@ -4,7 +4,7 @@ rvm:
before_script:
- "[ '2.6.9' = $PUPPET_VERSION ] && git clone git://github.com/puppetlabs/puppetlabs-create_resources.git spec/fixtures/modules/create_resources || true"
after_script:
script: "rake spec_full"
script: "rake spec"
branches:
only:
- master
Expand Down
92 changes: 1 addition & 91 deletions Rakefile
@@ -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'
19 changes: 1 addition & 18 deletions spec/spec_helper.rb
@@ -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'

0 comments on commit 01fe9e5

Please sign in to comment.