diff --git a/autotest/puppet_rspec.rb b/autotest/puppet_rspec.rb index fc537e016..bfc1a6a43 100644 --- a/autotest/puppet_rspec.rb +++ b/autotest/puppet_rspec.rb @@ -1,61 +1,60 @@ require 'autotest' require 'autotest/rspec' -class Autotest::PuppetRspec < Autotest::Rspec - def initialize # :nodoc: - super - @test_mappings = { - # the libraries under lib/puppet - %r%^lib/puppet/(.*)\.rb$% => proc { |filename, m| - files_matching %r!spec/(unit|integration)/#{m[1]}.rb! - }, - - # the actual spec files themselves - %r%^spec/(unit|integration)/.*\.rb$% => proc { |filename, _| - filename - }, +Autotest.add_hook :initialize do |at| + at.clear_mappings + + # the libraries under lib/puppet + at.add_mapping(%r%^lib/puppet/(.*)\.rb$%) { |filename, m| + at.files_matching %r!spec/(unit|integration)/#{m[1]}.rb! + } + + # the actual spec files themselves + at.add_mapping(%r%^spec/(unit|integration)/.*\.rb$%) { |filename, _| + filename + } # force a complete re-run for all of these: # main puppet lib - %r!^lib/puppet\.rb$! => proc { |filename, _| - files_matching %r!spec/(unit|integration)/.*\.rb! - }, + at.add_mapping(%r!^lib/puppet\.rb$!) { |filename, _| + at.files_matching %r!spec/(unit|integration)/.*\.rb! + } # the spec_helper - %r!^spec/spec_helper\.rb$! => proc { |filename, _| - files_matching %r!spec/(unit|integration)/.*\.rb! - }, + at.add_mapping(%r!^spec/spec_helper\.rb$!) { |filename, _| + at.files_matching %r!spec/(unit|integration)/.*\.rb! + } # the puppet test libraries - %r!^test/lib/puppettest/.*! => proc { |filename, _| - files_matching %r!spec/(unit|integration)/.*\.rb! - }, + at.add_mapping(%r!^test/lib/puppettest/.*!) { |filename, _| + at.files_matching %r!spec/(unit|integration)/.*\.rb! + } # the puppet spec libraries - %r!^spec/lib/spec.*! => proc { |filename, _| - files_matching %r!spec/(unit|integration)/.*\.rb! - }, + at.add_mapping(%r!^spec/lib/spec.*!) { |filename, _| + at.files_matching %r!spec/(unit|integration)/.*\.rb! + } # the monkey patches for rspec - %r!^spec/lib/monkey_patches/.*! => proc { |filename, _| - files_matching %r!spec/(unit|integration)/.*\.rb! - }, - } - end + at.add_mapping(%r!^spec/lib/monkey_patches/.*!) { |filename, _| + at.files_matching %r!spec/(unit|integration)/.*\.rb! + } +end +class Autotest::PuppetRspec < Autotest::Rspec # Autotest will look for spec commands in the following # locations, in this order: # # * bin/spec # * default spec bin/loader installed in Rubygems # * our local vendor/gems/rspec/bin/spec def spec_commands [ File.join('bin', 'spec'), File.join(Config::CONFIG['bindir'], 'spec'), File.join('vendor', 'gems', 'rspec', 'bin', 'spec') ] end end