From e1abfac0d8230b0ea230b7420562250ff2e23c52 Mon Sep 17 00:00:00 2001 From: Rick Bradley Date: Wed, 5 Dec 2007 11:32:52 -0600 Subject: moving autotest directory to make it possible to run autotest again --- autotest/discover.rb | 9 +++ autotest/puppet_rspec.rb | 46 ++++++++++++++++ autotest/rspec.rb | 95 ++++++++++++++++++++++++++++++++ spec/lib/autotest/discover.rb | 9 --- spec/lib/autotest/puppet_rspec.rb | 46 ---------------- spec/lib/autotest/rspec.rb | 95 -------------------------------- spec/plugins/mock_frameworks/flexmock.rb | 23 -------- spec/plugins/mock_frameworks/mocha.rb | 19 ------- spec/plugins/mock_frameworks/rr.rb | 21 ------- spec/plugins/mock_frameworks/rspec.rb | 18 ------ 10 files changed, 150 insertions(+), 231 deletions(-) create mode 100644 autotest/discover.rb create mode 100644 autotest/puppet_rspec.rb create mode 100644 autotest/rspec.rb delete mode 100644 spec/lib/autotest/discover.rb delete mode 100644 spec/lib/autotest/puppet_rspec.rb delete mode 100644 spec/lib/autotest/rspec.rb delete mode 100644 spec/plugins/mock_frameworks/flexmock.rb delete mode 100644 spec/plugins/mock_frameworks/mocha.rb delete mode 100644 spec/plugins/mock_frameworks/rr.rb delete mode 100644 spec/plugins/mock_frameworks/rspec.rb diff --git a/autotest/discover.rb b/autotest/discover.rb new file mode 100644 index 000000000..0ac563724 --- /dev/null +++ b/autotest/discover.rb @@ -0,0 +1,9 @@ +require 'autotest' + +Autotest.add_discovery do + "rspec" +end + +Autotest.add_discovery do + "puppet" +end diff --git a/autotest/puppet_rspec.rb b/autotest/puppet_rspec.rb new file mode 100644 index 000000000..8536f3912 --- /dev/null +++ b/autotest/puppet_rspec.rb @@ -0,0 +1,46 @@ +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 + }, + + # 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! + }, + + # the spec_helper + %r!^spec/spec_helper\.rb$! => proc { |filename, _| + files_matching %r!spec/(unit|integration)/.*\.rb! + }, + + # the puppet test libraries + %r!^test/lib/puppettest/.*! => proc { |filename, _| + files_matching %r!spec/(unit|integration)/.*\.rb! + }, + + # the puppet spec libraries + %r!^spec/lib/spec.*! => proc { |filename, _| + 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 +end diff --git a/autotest/rspec.rb b/autotest/rspec.rb new file mode 100644 index 000000000..d4b77ea6b --- /dev/null +++ b/autotest/rspec.rb @@ -0,0 +1,95 @@ +require 'autotest' + +class RspecCommandError < StandardError; end + +class Autotest::Rspec < Autotest + + def initialize(kernel=Kernel, separator=File::SEPARATOR, alt_separator=File::ALT_SEPARATOR) # :nodoc: + super() + @kernel, @separator, @alt_separator = kernel, separator, alt_separator + @spec_command = spec_command + + # watch out: Ruby bug (1.8.6): + # %r(/) != /\// + # since Ruby compares the REGEXP source, not the resulting pattern + @test_mappings = { + %r%^spec/.*\.rb$% => kernel.proc { |filename, _| + filename + }, + %r%^lib/(.*)\.rb$% => kernel.proc { |_, m| + ["spec/#{m[1]}_spec.rb"] + }, + %r%^spec/(spec_helper|shared/.*)\.rb$% => kernel.proc { + files_matching %r%^spec/.*_spec\.rb$% + } + } + end + + def tests_for_file(filename) + super.select { |f| @files.has_key? f } + end + + alias :specs_for_file :tests_for_file + + def failed_results(results) + results.scan(/^\d+\)\n(?:\e\[\d*m)?(?:.*?Error in )?'([^\n]*)'(?: FAILED)?(?:\e\[\d*m)?\n(.*?)\n\n/m) + end + + def handle_results(results) + @files_to_test = consolidate_failures failed_results(results) + unless @files_to_test.empty? then + hook :red + else + hook :green + end unless $TESTING + @tainted = true unless @files_to_test.empty? + end + + def consolidate_failures(failed) + filters = Hash.new { |h,k| h[k] = [] } + failed.each do |spec, failed_trace| + @files.keys.select{|f| f =~ /spec\//}.each do |f| + if failed_trace =~ Regexp.new(f) + filters[f] << spec + break + end + end + end + return filters + end + + def make_test_cmd(files_to_test) + return "#{ruby} -S #{@spec_command} #{add_options_if_present} #{files_to_test.keys.flatten.join(' ')}" + end + + def add_options_if_present + File.exist?("spec/spec.opts") ? "-O spec/spec.opts " : "" + end + + # Finds the proper spec command to use. Precendence + # is set in the lazily-evaluated method spec_commands. Alias + Override + # that in ~/.autotest to provide a different spec command + # then the default paths provided. + def spec_command + spec_commands.each do |command| + if File.exists?(command) + return @alt_separator ? (command.gsub @separator, @alt_separator) : command + end + end + + raise RspecCommandError, "No spec command could be found!" + end + + # Autotest will look for spec commands in the following + # locations, in this order: + # + # * bin/spec + # * default spec bin/loader installed in Rubygems + def spec_commands + [ + File.join('bin', 'spec'), + File.join(Config::CONFIG['bindir'], 'spec') + ] + end + +end diff --git a/spec/lib/autotest/discover.rb b/spec/lib/autotest/discover.rb deleted file mode 100644 index 0ac563724..000000000 --- a/spec/lib/autotest/discover.rb +++ /dev/null @@ -1,9 +0,0 @@ -require 'autotest' - -Autotest.add_discovery do - "rspec" -end - -Autotest.add_discovery do - "puppet" -end diff --git a/spec/lib/autotest/puppet_rspec.rb b/spec/lib/autotest/puppet_rspec.rb deleted file mode 100644 index 8536f3912..000000000 --- a/spec/lib/autotest/puppet_rspec.rb +++ /dev/null @@ -1,46 +0,0 @@ -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 - }, - - # 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! - }, - - # the spec_helper - %r!^spec/spec_helper\.rb$! => proc { |filename, _| - files_matching %r!spec/(unit|integration)/.*\.rb! - }, - - # the puppet test libraries - %r!^test/lib/puppettest/.*! => proc { |filename, _| - files_matching %r!spec/(unit|integration)/.*\.rb! - }, - - # the puppet spec libraries - %r!^spec/lib/spec.*! => proc { |filename, _| - 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 -end diff --git a/spec/lib/autotest/rspec.rb b/spec/lib/autotest/rspec.rb deleted file mode 100644 index d4b77ea6b..000000000 --- a/spec/lib/autotest/rspec.rb +++ /dev/null @@ -1,95 +0,0 @@ -require 'autotest' - -class RspecCommandError < StandardError; end - -class Autotest::Rspec < Autotest - - def initialize(kernel=Kernel, separator=File::SEPARATOR, alt_separator=File::ALT_SEPARATOR) # :nodoc: - super() - @kernel, @separator, @alt_separator = kernel, separator, alt_separator - @spec_command = spec_command - - # watch out: Ruby bug (1.8.6): - # %r(/) != /\// - # since Ruby compares the REGEXP source, not the resulting pattern - @test_mappings = { - %r%^spec/.*\.rb$% => kernel.proc { |filename, _| - filename - }, - %r%^lib/(.*)\.rb$% => kernel.proc { |_, m| - ["spec/#{m[1]}_spec.rb"] - }, - %r%^spec/(spec_helper|shared/.*)\.rb$% => kernel.proc { - files_matching %r%^spec/.*_spec\.rb$% - } - } - end - - def tests_for_file(filename) - super.select { |f| @files.has_key? f } - end - - alias :specs_for_file :tests_for_file - - def failed_results(results) - results.scan(/^\d+\)\n(?:\e\[\d*m)?(?:.*?Error in )?'([^\n]*)'(?: FAILED)?(?:\e\[\d*m)?\n(.*?)\n\n/m) - end - - def handle_results(results) - @files_to_test = consolidate_failures failed_results(results) - unless @files_to_test.empty? then - hook :red - else - hook :green - end unless $TESTING - @tainted = true unless @files_to_test.empty? - end - - def consolidate_failures(failed) - filters = Hash.new { |h,k| h[k] = [] } - failed.each do |spec, failed_trace| - @files.keys.select{|f| f =~ /spec\//}.each do |f| - if failed_trace =~ Regexp.new(f) - filters[f] << spec - break - end - end - end - return filters - end - - def make_test_cmd(files_to_test) - return "#{ruby} -S #{@spec_command} #{add_options_if_present} #{files_to_test.keys.flatten.join(' ')}" - end - - def add_options_if_present - File.exist?("spec/spec.opts") ? "-O spec/spec.opts " : "" - end - - # Finds the proper spec command to use. Precendence - # is set in the lazily-evaluated method spec_commands. Alias + Override - # that in ~/.autotest to provide a different spec command - # then the default paths provided. - def spec_command - spec_commands.each do |command| - if File.exists?(command) - return @alt_separator ? (command.gsub @separator, @alt_separator) : command - end - end - - raise RspecCommandError, "No spec command could be found!" - end - - # Autotest will look for spec commands in the following - # locations, in this order: - # - # * bin/spec - # * default spec bin/loader installed in Rubygems - def spec_commands - [ - File.join('bin', 'spec'), - File.join(Config::CONFIG['bindir'], 'spec') - ] - end - -end diff --git a/spec/plugins/mock_frameworks/flexmock.rb b/spec/plugins/mock_frameworks/flexmock.rb deleted file mode 100644 index 6875a5222..000000000 --- a/spec/plugins/mock_frameworks/flexmock.rb +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env ruby -# -# Created by Jim Weirich on 2007-04-10. -# Copyright (c) 2007. All rights reserved. - -require 'flexmock/rspec' - -module Spec - module Plugins - module MockFramework - include FlexMock::MockContainer - def setup_mocks_for_rspec - # No setup required - end - def verify_mocks_for_rspec - flexmock_verify - end - def teardown_mocks_for_rspec - flexmock_close - end - end - end -end diff --git a/spec/plugins/mock_frameworks/mocha.rb b/spec/plugins/mock_frameworks/mocha.rb deleted file mode 100644 index 69d11636c..000000000 --- a/spec/plugins/mock_frameworks/mocha.rb +++ /dev/null @@ -1,19 +0,0 @@ -require 'mocha/standalone' -require 'mocha/object' - -module Spec - module Plugins - module MockFramework - include Mocha::Standalone - def setup_mocks_for_rspec - mocha_setup - end - def verify_mocks_for_rspec - mocha_verify - end - def teardown_mocks_for_rspec - mocha_teardown - end - end - end -end diff --git a/spec/plugins/mock_frameworks/rr.rb b/spec/plugins/mock_frameworks/rr.rb deleted file mode 100644 index c019c18a1..000000000 --- a/spec/plugins/mock_frameworks/rr.rb +++ /dev/null @@ -1,21 +0,0 @@ -require 'rr' - -patterns = ::Spec::Runner::QuietBacktraceTweaker::IGNORE_PATTERNS -patterns.push(RR::Errors::BACKTRACE_IDENTIFIER) - -module Spec - module Plugins - module MockFramework - include RR::Extensions::InstanceMethods - def setup_mocks_for_rspec - RR::Space.instance.reset - end - def verify_mocks_for_rspec - RR::Space.instance.verify_doubles - end - def teardown_mocks_for_rspec - RR::Space.instance.reset - end - end - end -end diff --git a/spec/plugins/mock_frameworks/rspec.rb b/spec/plugins/mock_frameworks/rspec.rb deleted file mode 100644 index e606c3089..000000000 --- a/spec/plugins/mock_frameworks/rspec.rb +++ /dev/null @@ -1,18 +0,0 @@ -require File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "lib", "spec", "mocks")) - -module Spec - module Plugins - module MockFramework - include Spec::Mocks::SpecMethods - def setup_mocks_for_rspec - $rspec_mocks ||= Spec::Mocks::Space.new - end - def verify_mocks_for_rspec - $rspec_mocks.verify_all - end - def teardown_mocks_for_rspec - $rspec_mocks.reset_all - end - end - end -end -- cgit