From: Matt Robinson <[email protected]>

The biggest change is that we no longer need to monkey patch rspec to
get confine behavior.  Describe blocks can now be conditional like
confine used to be. "describe" blocks with "shared => true" are now
"shared_examples_for".

Paired-With: Nick Lewis

Signed-off-by: Nick Lewis <[email protected]>
---
 Rakefile                                           |    8 ++--
 spec/integration/application/apply_spec.rb         |    3 +-
 spec/integration/indirector/catalog/queue_spec.rb  |    5 +--
 spec/integration/network/formats_spec.rb           |    7 +--
 spec/integration/network/server/mongrel_spec.rb    |    3 +-
 spec/integration/provider/package_spec.rb          |    4 +-
 spec/integration/provider/service/init_spec.rb     |   12 +----
 spec/integration/resource/catalog_spec.rb          |    3 +-
 .../add_confine_and_runnable_to_rspec_dsl.rb       |   46 --------------------
 spec/monkey_patches/alias_should_to_must.rb        |    2 +
 spec/shared_behaviours/file_server_terminus.rb     |    2 +-
 spec/shared_behaviours/file_serving.rb             |    2 +-
 spec/shared_behaviours/memory_terminus.rb          |    2 +-
 spec/spec_helper.rb                                |   10 ++---
 spec/unit/application/kick_spec.rb                 |    4 +-
 spec/unit/application/master_spec.rb               |    4 +-
 spec/unit/application_spec.rb                      |    7 +--
 spec/unit/file_serving/metadata_spec.rb            |    8 ++--
 spec/unit/indirector/catalog/active_record_spec.rb |    4 +-
 spec/unit/indirector/facts/active_record_spec.rb   |    4 +-
 spec/unit/indirector/facts/couch_spec.rb           |    3 +-
 spec/unit/indirector/indirection_spec.rb           |    4 +-
 spec/unit/indirector/ldap_spec.rb                  |    8 +---
 spec/unit/indirector/node/active_record_spec.rb    |    4 +-
 spec/unit/indirector/queue_spec.rb                 |    4 +-
 spec/unit/indirector/rest_spec.rb                  |    2 +-
 spec/unit/indirector_spec.rb                       |    2 +-
 spec/unit/module_spec.rb                           |    4 +-
 spec/unit/network/formats_spec.rb                  |    7 +--
 spec/unit/network/http/compression_spec.rb         |    4 +-
 spec/unit/network/http/mongrel/rest_spec.rb        |    3 +-
 spec/unit/network/http/mongrel_spec.rb             |   12 +----
 spec/unit/network/http/rack/rest_spec.rb           |    4 +-
 spec/unit/network/http/rack/xmlrpc_spec.rb         |    4 +-
 spec/unit/network/http/rack_spec.rb                |    4 +-
 spec/unit/parser/collector_spec.rb                 |    8 +---
 spec/unit/parser/lexer_spec.rb                     |    5 +-
 spec/unit/provider/mount/parsed_spec.rb            |    3 +-
 spec/unit/rails/host_spec.rb                       |    4 +-
 spec/unit/rails/param_value_spec.rb                |    4 +-
 spec/unit/rails/resource_spec.rb                   |    4 +-
 spec/unit/rails_spec.rb                            |   20 ++------
 spec/unit/relationship_spec.rb                     |    8 +---
 spec/unit/resource/catalog_spec.rb                 |    8 +---
 spec/unit/resource_spec.rb                         |    8 +---
 .../ssl/certificate_authority/interface_spec.rb    |    2 +-
 spec/unit/type/augeas_spec.rb                      |    4 +-
 spec/unit/type/file_spec.rb                        |   12 ++---
 spec/unit/util/queue/stomp_spec.rb                 |    8 +---
 spec/unit/util/settings/file_setting_spec.rb       |    4 +-
 50 files changed, 83 insertions(+), 228 deletions(-)
 delete mode 100644 spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb

diff --git a/Rakefile b/Rakefile
index 8e21ceb..728f1e3 100644
--- a/Rakefile
+++ b/Rakefile
@@ -5,8 +5,8 @@ $LOAD_PATH << File.join(File.dirname(__FILE__), 'tasks')
 require 'rake'
 require 'rake/packagetask'
 require 'rake/gempackagetask'
-require 'spec'
-require 'spec/rake/spectask'
+require 'rspec'
+require "rspec/core/rake_task"
 
 module Puppet
     PUPPETVERSION = File.read('lib/puppet.rb')[/PUPPETVERSION *= *'(.*)'/,1] 
or fail "Couldn't find PUPPETVERSION"
@@ -42,8 +42,8 @@ end
 desc "Create the tarball and the gem - use when releasing"
 task :puppetpackages => [:create_gem, :package]
 
-Spec::Rake::SpecTask.new do |t|
-    t.spec_opts = ['--format','s', '--loadby','mtime','--color']
+RSpec::Core::RakeTask.new do |t|
+    t.rspec_opts = ['--format','s', '--color']
     t.pattern ='spec/{unit,integration}/**/*.rb'
     t.fail_on_error = false
 end
diff --git a/spec/integration/application/apply_spec.rb 
b/spec/integration/application/apply_spec.rb
index 840917e..363aa34 100755
--- a/spec/integration/application/apply_spec.rb
+++ b/spec/integration/application/apply_spec.rb
@@ -9,8 +9,7 @@ require 'puppet/application/apply'
 describe "apply" do
   include PuppetSpec::Files
 
-  describe "when applying provided catalogs" do
-    confine "PSON library is missing; cannot test applying catalogs" => 
Puppet.features.pson?
+  describe "when applying provided catalogs", :if => Puppet.features.pson? do
     it "should be able to apply catalogs provided in a file in pson" do
       file_to_create = tmpfile("pson_catalog")
       catalog = Puppet::Resource::Catalog.new
diff --git a/spec/integration/indirector/catalog/queue_spec.rb 
b/spec/integration/indirector/catalog/queue_spec.rb
index 0f8bd41..4581e30 100755
--- a/spec/integration/indirector/catalog/queue_spec.rb
+++ b/spec/integration/indirector/catalog/queue_spec.rb
@@ -4,10 +4,7 @@ Dir.chdir(File.dirname(__FILE__)) { (s = lambda { |f| 
File.exist?(f) ? require(f
 
 require 'puppet/resource/catalog'
 
-
-describe "Puppet::Resource::Catalog::Queue" do
-  confine "Missing pson support; cannot test queue" => Puppet.features.pson?
-
+describe "Puppet::Resource::Catalog::Queue", :if => Puppet.features.pson? do
   before do
     Puppet::Resource::Catalog.indirection.terminus(:queue)
     @catalog = Puppet::Resource::Catalog.new
diff --git a/spec/integration/network/formats_spec.rb 
b/spec/integration/network/formats_spec.rb
index e6cf28a..d141abf 100755
--- a/spec/integration/network/formats_spec.rb
+++ b/spec/integration/network/formats_spec.rb
@@ -46,8 +46,7 @@ describe Puppet::Network::FormatHandler.format(:s) do
 end
 
 describe Puppet::Network::FormatHandler.format(:pson) do
-  describe "when pson is absent" do
-    confine "'pson' library is present" => (! Puppet.features.pson?)
+  describe "when pson is absent", :if => (! Puppet.features.pson?) do
 
     before do
       @pson = Puppet::Network::FormatHandler.format(:pson)
@@ -58,9 +57,7 @@ describe Puppet::Network::FormatHandler.format(:pson) do
     end
   end
 
-  describe "when pson is available" do
-    confine "Missing 'pson' library" => Puppet.features.pson?
-
+  describe "when pson is available", :if => Puppet.features.pson? do
     before do
       @pson = Puppet::Network::FormatHandler.format(:pson)
     end
diff --git a/spec/integration/network/server/mongrel_spec.rb 
b/spec/integration/network/server/mongrel_spec.rb
index cc90773..c2815b5 100755
--- a/spec/integration/network/server/mongrel_spec.rb
+++ b/spec/integration/network/server/mongrel_spec.rb
@@ -5,8 +5,7 @@ require 'puppet/network/server'
 require 'socket'
 
 describe Puppet::Network::Server do
-  describe "when using mongrel" do
-    confine "Mongrel is not available" => Puppet.features.mongrel?
+  describe "when using mongrel", :if => Puppet.features.mongrel? do
 
     before :each do
       Puppet[:servertype] = 'mongrel'
diff --git a/spec/integration/provider/package_spec.rb 
b/spec/integration/provider/package_spec.rb
index 736a34e..472662d 100755
--- a/spec/integration/provider/package_spec.rb
+++ b/spec/integration/provider/package_spec.rb
@@ -6,9 +6,7 @@ describe "Package Provider" do
   Puppet::Type.type(:package).providers.each do |name|
     provider = Puppet::Type.type(:package).provider(name)
 
-    describe name do
-      confine "Provider #{name} is not suitable" => provider.suitable?
-
+    describe name, :if => provider.suitable? do
       it "should fail when asked to install an invalid package" do
         pending("This test hangs forever with recent versions of RubyGems") if 
provider.name == :gem
         pkg = Puppet::Type.newpackage :name => "nosuch#{provider.name}", 
:provider => provider.name
diff --git a/spec/integration/provider/service/init_spec.rb 
b/spec/integration/provider/service/init_spec.rb
index d916ab3..2e2505b 100755
--- a/spec/integration/provider/service/init_spec.rb
+++ b/spec/integration/provider/service/init_spec.rb
@@ -6,25 +6,19 @@ Dir.chdir(File.dirname(__FILE__)) { (s = lambda { |f| 
File.exist?(f) ? require(f
 provider = Puppet::Type.type(:service).provider(:init)
 
 describe provider do
-  describe "when running on FreeBSD" do
-    confine "Not running on FreeBSD" => (Facter.value(:operatingsystem) == 
"FreeBSD")
-
+  describe "when running on FreeBSD", :if => (Facter.value(:operatingsystem) 
== "FreeBSD") do
     it "should set its default path to include /etc/init.d and 
/usr/local/etc/init.d" do
       provider.defpath.should == ["/etc/rc.d", "/usr/local/etc/rc.d"]
     end
   end
 
-  describe "when running on HP-UX" do
-    confine "Not running on HP-UX" => (Facter.value(:operatingsystem) == 
"HP-UX")
-
+  describe "when running on HP-UX", :if => (Facter.value(:operatingsystem) == 
"HP-UX")do
     it "should set its default path to include /sbin/init.d" do
       provider.defpath.should == "/sbin/init.d"
     end
   end
 
-  describe "when not running on FreeBSD or HP-UX" do
-    confine "Running on HP-UX or FreeBSD" => (! %w{HP-UX 
FreeBSD}.include?(Facter.value(:operatingsystem)))
-
+  describe "when not running on FreeBSD or HP-UX", :if => (! %w{HP-UX 
FreeBSD}.include?(Facter.value(:operatingsystem))) do
     it "should set its default path to include /etc/init.d" do
       provider.defpath.should == "/etc/init.d"
     end
diff --git a/spec/integration/resource/catalog_spec.rb 
b/spec/integration/resource/catalog_spec.rb
index 0a3d47a..da2b704 100755
--- a/spec/integration/resource/catalog_spec.rb
+++ b/spec/integration/resource/catalog_spec.rb
@@ -6,8 +6,7 @@
 require File.dirname(__FILE__) + '/../../spec_helper'
 
 describe Puppet::Resource::Catalog do
-  describe "when pson is available" do
-    confine "PSON library is missing" => Puppet.features.pson?
+  describe "when pson is available", :if => Puppet.features.pson? do
     it "should support pson" do
       Puppet::Resource::Catalog.supported_formats.should be_include(:pson)
     end
diff --git a/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb 
b/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb
deleted file mode 100644
index 3762b70..0000000
--- a/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb
+++ /dev/null
@@ -1,46 +0,0 @@
-dir = File.expand_path(File.dirname(__FILE__))
-[ "#{dir}/../../lib", "#{dir}/../../test/lib"].each do |dir|
-    fulldir = File.expand_path(dir)
-    $LOAD_PATH.unshift(fulldir) unless $LOAD_PATH.include?(fulldir)
-end
-
-require 'spec'
-require 'puppettest/runnable_test'
-
-module Spec
-  module Runner
-    class ExampleGroupRunner
-      def run
-        prepare
-        success = true
-        example_groups.each do |example_group|
-          unless example_group.runnable?
-            warn "Skipping unsuitable example group 
#{example_group.description}: #{example_group.messages.join(", ")}"
-            next
-          end
-          success = success & example_group.run(@options)
-          Puppet.settings.clear
-        end
-        return success
-      ensure
-        finish
-      end
-    end
-  end
-end
-
-module Spec
-  module Example
-    class ExampleGroup
-      extend PuppetTest::RunnableTest
-    end
-  end
-end
-
-module Test
-  module Unit
-    class TestCase
-      extend PuppetTest::RunnableTest
-    end
-  end
-end
diff --git a/spec/monkey_patches/alias_should_to_must.rb 
b/spec/monkey_patches/alias_should_to_must.rb
index c874413..1a11117 100644
--- a/spec/monkey_patches/alias_should_to_must.rb
+++ b/spec/monkey_patches/alias_should_to_must.rb
@@ -1,3 +1,5 @@
+require 'rspec'
+
 class Object
   # This is necessary because the RAL has a 'should'
   # method.
diff --git a/spec/shared_behaviours/file_server_terminus.rb 
b/spec/shared_behaviours/file_server_terminus.rb
index 665b46c..94a044d 100644
--- a/spec/shared_behaviours/file_server_terminus.rb
+++ b/spec/shared_behaviours/file_server_terminus.rb
@@ -3,7 +3,7 @@
 #  Created by Luke Kanies on 2007-10-18.
 #  Copyright (c) 2007. All rights reserved.
 
-describe "Puppet::Indirector::FileServerTerminus", :shared => true do
+shared_examples_for "Puppet::Indirector::FileServerTerminus" do
   # This only works if the shared behaviour is included before
   # the 'before' block in the including context.
   before do
diff --git a/spec/shared_behaviours/file_serving.rb 
b/spec/shared_behaviours/file_serving.rb
index 5f5b2b0..450fff8 100644
--- a/spec/shared_behaviours/file_serving.rb
+++ b/spec/shared_behaviours/file_serving.rb
@@ -3,7 +3,7 @@
 #  Created by Luke Kanies on 2007-10-18.
 #  Copyright (c) 2007. All rights reserved.
 
-describe "Puppet::FileServing::Files", :shared => true do
+shared_examples_for "Puppet::FileServing::Files" do
   it "should use the rest terminus when the 'puppet' URI scheme is used and a 
host name is present" do
     uri = "puppet://myhost/fakemod/my/file"
 
diff --git a/spec/shared_behaviours/memory_terminus.rb 
b/spec/shared_behaviours/memory_terminus.rb
index 5c9f35c..f9325a9 100644
--- a/spec/shared_behaviours/memory_terminus.rb
+++ b/spec/shared_behaviours/memory_terminus.rb
@@ -2,7 +2,7 @@
 #  Created by Luke Kanies on 2008-4-8.
 #  Copyright (c) 2008. All rights reserved.
 
-describe "A Memory Terminus", :shared => true do
+shared_examples_for "A Memory Terminus" do
   it "should find no instances by default" do
     @searcher.find(@request).should be_nil
   end
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index ed4e2c2..d0ee7d9 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -12,8 +12,7 @@ ARGV.clear
 
 require 'puppet'
 require 'mocha'
-gem 'rspec', '>=1.2.9'
-require 'spec/autorun'
+gem 'rspec', '>=2.0.0'
 
 # So everyone else doesn't have to include this base constant.
 module PuppetSpec
@@ -22,13 +21,12 @@ end
 
 require 'lib/puppet_spec/files'
 require 'monkey_patches/alias_should_to_must'
-require 'monkey_patches/add_confine_and_runnable_to_rspec_dsl'
 require 'monkey_patches/publicize_methods'
 
-Spec::Runner.configure do |config|
+RSpec.configure do |config|
   config.mock_with :mocha
 
-  config.prepend_after :each do
+  config.after :each do
     Puppet.settings.clear
     Puppet::Node::Environment.clear
     Puppet::Util::Storage.clear
@@ -58,7 +56,7 @@ Spec::Runner.configure do |config|
     Puppet::Util::Log.close_all
   end
 
-  config.prepend_before :each do
+  config.before :each do
     # these globals are set by Application
     $puppet_application_mode = nil
     $puppet_application_name = nil
diff --git a/spec/unit/application/kick_spec.rb 
b/spec/unit/application/kick_spec.rb
index dea7ec1..c18a84d 100755
--- a/spec/unit/application/kick_spec.rb
+++ b/spec/unit/application/kick_spec.rb
@@ -4,9 +4,7 @@ require File.dirname(__FILE__) + '/../../spec_helper'
 
 require 'puppet/application/kick'
 
-describe Puppet::Application::Kick do
-
-  confine "Kick's eventloops can only start on POSIX" => Puppet.features.posix?
+describe Puppet::Application::Kick, :if => Puppet.features.posix? do
 
   before :each do
     require 'puppet/util/ldap/connection'
diff --git a/spec/unit/application/master_spec.rb 
b/spec/unit/application/master_spec.rb
index 216c7dc..074249a 100644
--- a/spec/unit/application/master_spec.rb
+++ b/spec/unit/application/master_spec.rb
@@ -412,9 +412,7 @@ describe Puppet::Application::Master do
         @master.main
       end
 
-      describe "with --rack" do
-        confine "Rack is not available" => Puppet.features.rack?
-
+      describe "with --rack", :if => Puppet.features.rack? do
         before do
           require 'puppet/network/http/rack'
           Puppet::Network::HTTP::Rack.stubs(:new).returns(@app)
diff --git a/spec/unit/application_spec.rb b/spec/unit/application_spec.rb
index be7cda3..f68a7e2 100755
--- a/spec/unit/application_spec.rb
+++ b/spec/unit/application_spec.rb
@@ -160,9 +160,7 @@ describe Puppet::Application do
       end
     end
 
-    describe 'on POSIX systems' do
-      confine "HUP works only on POSIX systems" => Puppet.features.posix?
-
+    describe 'on POSIX systems', :if => Puppet.features.posix? do
       it 'should signal process with HUP after block if restart requested 
during block execution' do
         Puppet::Application.run_status = nil
         target = mock 'target'
@@ -224,8 +222,7 @@ describe Puppet::Application do
       @app.parse_options
     end
 
-    describe "when using --help" do
-      confine "rdoc" => Puppet.features.usage?
+    describe "when using --help", :if => Puppet.features.usage? do
 
       it "should call RDoc::usage and exit" do
         @app.expects(:exit)
diff --git a/spec/unit/file_serving/metadata_spec.rb 
b/spec/unit/file_serving/metadata_spec.rb
index aa0dcd5..dd40324 100755
--- a/spec/unit/file_serving/metadata_spec.rb
+++ b/spec/unit/file_serving/metadata_spec.rb
@@ -230,8 +230,8 @@ describe Puppet::FileServing::Metadata, " when collecting 
attributes" do
       @metadata.destination.should == "/path/to/link"
     end
 
-    it "should produce tab-separated mode, type, owner, group, and destination 
for xmlrpc" do
-      pending "We'd like this to be true, but we need to always collect the 
checksum because in the server/client/server round trip we lose the distintion 
between manage and follow."
+    pending "should produce tab-separated mode, type, owner, group, and 
destination for xmlrpc" do
+      # "We'd like this to be true, but we need to always collect the checksum 
because in the server/client/server round trip we lose the distintion between 
manage and follow."
       @metadata.attributes_with_tabs.should == 
"#{0755}\tlink\t10\t20\t/path/to/link"
     end
 
@@ -255,8 +255,8 @@ describe Puppet::FileServing::Metadata, " when pointing to 
a link" do
       @file.collect
       @file.destination.should == "/some/other/path"
     end
-    it "should not collect the checksum if links are :manage" do
-      pending "We'd like this to be true, but we need to always collect the 
checksum because in the server/client/server round trip we lose the distintion 
between manage and follow."
+    pending "should not collect the checksum if links are :manage" do
+      # We'd like this to be true, but we need to always collect the checksum 
because in the server/client/server round trip we lose the distintion between 
manage and follow.
       @file.collect
       @file.checksum.should be_nil
     end
diff --git a/spec/unit/indirector/catalog/active_record_spec.rb 
b/spec/unit/indirector/catalog/active_record_spec.rb
index ba8f1da..a368fb3 100755
--- a/spec/unit/indirector/catalog/active_record_spec.rb
+++ b/spec/unit/indirector/catalog/active_record_spec.rb
@@ -3,9 +3,7 @@
 require File.dirname(__FILE__) + '/../../../spec_helper'
 
 
-describe "Puppet::Resource::Catalog::ActiveRecord" do
-  confine "Missing Rails" => Puppet.features.rails?
-
+describe "Puppet::Resource::Catalog::ActiveRecord", :if => 
Puppet.features.rails? do
   require 'puppet/rails'
 
   before :all do
diff --git a/spec/unit/indirector/facts/active_record_spec.rb 
b/spec/unit/indirector/facts/active_record_spec.rb
index 0bdcfcb..e96e010 100755
--- a/spec/unit/indirector/facts/active_record_spec.rb
+++ b/spec/unit/indirector/facts/active_record_spec.rb
@@ -5,9 +5,7 @@ require File.dirname(__FILE__) + '/../../../spec_helper'
 require 'puppet/rails'
 require 'puppet/node/facts'
 
-describe "Puppet::Node::Facts::ActiveRecord" do
-  confine "Missing Rails" => Puppet.features.rails?
-
+describe "Puppet::Node::Facts::ActiveRecord", :if => Puppet.features.rails? do
   before do
     require 'puppet/indirector/facts/active_record'
     Puppet.features.stubs(:rails?).returns true
diff --git a/spec/unit/indirector/facts/couch_spec.rb 
b/spec/unit/indirector/facts/couch_spec.rb
index c0dd54b..e3a9d7f 100644
--- a/spec/unit/indirector/facts/couch_spec.rb
+++ b/spec/unit/indirector/facts/couch_spec.rb
@@ -4,8 +4,7 @@ require File.dirname(__FILE__) + '/../../../spec_helper'
 
 require 'puppet/node/facts'
 
-describe "Puppet::Node::Facts::Couch" do
-  confine "couchrest gem is missing; cannot test couch terminus" => 
Puppet.features.couchdb?
+describe "Puppet::Node::Facts::Couch", :if => Puppet.features.couchdb? do
   require 'puppet/indirector/facts/couch' if Puppet.features.couchdb?
 
   before do
diff --git a/spec/unit/indirector/indirection_spec.rb 
b/spec/unit/indirector/indirection_spec.rb
index b0e0f01..1e774fb 100755
--- a/spec/unit/indirector/indirection_spec.rb
+++ b/spec/unit/indirector/indirection_spec.rb
@@ -4,7 +4,7 @@ require File.dirname(__FILE__) + '/../../spec_helper'
 
 require 'puppet/indirector/indirection'
 
-describe "Indirection Delegator", :shared => true do
+shared_examples_for "Indirection Delegator" do
   it "should create a request object with the appropriate method name and all 
of the passed arguments" do
     request = Puppet::Indirector::Request.new(:indirection, :find, "me")
 
@@ -64,7 +64,7 @@ describe "Indirection Delegator", :shared => true do
   end
 end
 
-describe "Delegation Authorizer", :shared => true do
+shared_examples_for "Delegation Authorizer" do
   before do
     # So the :respond_to? turns out correctly.
     class << @terminus
diff --git a/spec/unit/indirector/ldap_spec.rb 
b/spec/unit/indirector/ldap_spec.rb
index 31a3406..c071f87 100755
--- a/spec/unit/indirector/ldap_spec.rb
+++ b/spec/unit/indirector/ldap_spec.rb
@@ -110,9 +110,7 @@ describe Puppet::Indirector::Ldap do
     end
   end
 
-  describe "when connecting to ldap" do
-    confine "LDAP is not available" => Puppet.features.ldap?
-
+  describe "when connecting to ldap", :if => Puppet.features.ldap? do
     it "should create and start a Util::Ldap::Connection instance" do
       conn = mock 'connection', :connection => "myconn", :start => nil
       Puppet::Util::Ldap::Connection.expects(:instance).returns conn
@@ -135,9 +133,7 @@ describe Puppet::Indirector::Ldap do
     end
   end
 
-  describe "when reconnecting to ldap" do
-    confine "Not running on culain as root" => (Puppet.features.root? and 
Facter.value("hostname") == "culain")
-
+  describe "when reconnecting to ldap", :if => (Puppet.features.root? and 
Facter.value("hostname") == "culain") do
     it "should reconnect to ldap when connections are lost"
   end
 end
diff --git a/spec/unit/indirector/node/active_record_spec.rb 
b/spec/unit/indirector/node/active_record_spec.rb
index 3540ef7..69229e1 100755
--- a/spec/unit/indirector/node/active_record_spec.rb
+++ b/spec/unit/indirector/node/active_record_spec.rb
@@ -4,11 +4,9 @@ require File.dirname(__FILE__) + '/../../../spec_helper'
 
 require 'puppet/node'
 
-describe "Puppet::Node::ActiveRecord" do
+describe "Puppet::Node::ActiveRecord", :if => Puppet.features.rails? && 
Puppet.features.sqlite? do
   include PuppetSpec::Files
 
-  confine "Missing Rails" => Puppet.features.rails?
-  confine "Missing sqlite" => Puppet.features.sqlite?
   before do
     require 'puppet/indirector/node/active_record'
   end
diff --git a/spec/unit/indirector/queue_spec.rb 
b/spec/unit/indirector/queue_spec.rb
index 83e9c77..00463ee 100755
--- a/spec/unit/indirector/queue_spec.rb
+++ b/spec/unit/indirector/queue_spec.rb
@@ -26,9 +26,7 @@ class FooExampleData
   end
 end
 
-describe Puppet::Indirector::Queue do
-  confine "PSON library is missing; cannot test queueing" => 
Puppet.features.pson?
-
+describe Puppet::Indirector::Queue, :if => Puppet.features.pson? do
   before :each do
     @model = mock 'model'
     @indirection = stub 'indirection', :name => :my_queue, 
:register_terminus_type => nil, :model => @model
diff --git a/spec/unit/indirector/rest_spec.rb 
b/spec/unit/indirector/rest_spec.rb
index 3efbfce..5f0fe36 100755
--- a/spec/unit/indirector/rest_spec.rb
+++ b/spec/unit/indirector/rest_spec.rb
@@ -3,7 +3,7 @@
 require File.dirname(__FILE__) + '/../../spec_helper'
 require 'puppet/indirector/rest'
 
-describe "a REST http call", :shared => true do
+shared_examples_for "a REST http call" do
   it "should accept a path" do
     lambda { @search.send(@method, *...@arguments) }.should_not 
raise_error(ArgumentError)
   end
diff --git a/spec/unit/indirector_spec.rb b/spec/unit/indirector_spec.rb
index fb21532..acbfc17 100755
--- a/spec/unit/indirector_spec.rb
+++ b/spec/unit/indirector_spec.rb
@@ -64,7 +64,7 @@ describe Puppet::Indirector, "when registering an 
indirection" do
   end
 end
 
-describe "Delegated Indirection Method", :shared => true do
+shared_examples_for "Delegated Indirection Method" do
   it "should delegate to the indirection" do
     @indirection.expects(@method)
     @thingie.send(@method, "me")
diff --git a/spec/unit/module_spec.rb b/spec/unit/module_spec.rb
index c3436df..37dad7e 100755
--- a/spec/unit/module_spec.rb
+++ b/spec/unit/module_spec.rb
@@ -504,9 +504,7 @@ describe Puppet::Module do
     Puppet::Module.new("yay")
   end
 
-  describe "when loading the medatada file" do
-    confine "Cannot test module metadata without json" => Puppet.features.json?
-
+  describe "when loading the medatada file", :if => Puppet.features.json? do
     before do
       @data = {
         :license => "GPL2",
diff --git a/spec/unit/network/formats_spec.rb 
b/spec/unit/network/formats_spec.rb
index 7c8e7b1..2c58a05 100755
--- a/spec/unit/network/formats_spec.rb
+++ b/spec/unit/network/formats_spec.rb
@@ -69,9 +69,8 @@ describe "Puppet Network Format" do
     end
   end
 
-  describe "base64 compressed yaml" do
+  describe "base64 compressed yaml", :if => Puppet.features.zlib? do
     yaml = Puppet::Network::FormatHandler.format(:b64_zlib_yaml)
-    confine "We must have zlib" => Puppet.features.zlib?
 
     before do
       @yaml = Puppet::Network::FormatHandler.format(:b64_zlib_yaml)
@@ -265,9 +264,7 @@ describe "Puppet Network Format" do
     Puppet::Network::FormatHandler.format(:pson).should_not be_nil
   end
 
-  describe "pson" do
-    confine "Missing 'pson' library" => Puppet.features.pson?
-
+  describe "pson", :if => Puppet.features.pson? do
     before do
       @pson = Puppet::Network::FormatHandler.format(:pson)
     end
diff --git a/spec/unit/network/http/compression_spec.rb 
b/spec/unit/network/http/compression_spec.rb
index b46941f..c5bbbb0 100644
--- a/spec/unit/network/http/compression_spec.rb
+++ b/spec/unit/network/http/compression_spec.rb
@@ -37,9 +37,7 @@ describe "http compression" do
     end
   end
 
-  describe "when zlib is available" do
-    confine "Zlib is missing" => Puppet.features.zlib?
-
+  describe "when zlib is available", :if => Puppet.features.zlib? do
     before(:each) do
       Puppet.features.stubs(:zlib?).returns true
 
diff --git a/spec/unit/network/http/mongrel/rest_spec.rb 
b/spec/unit/network/http/mongrel/rest_spec.rb
index 92a81a1..fb24521 100755
--- a/spec/unit/network/http/mongrel/rest_spec.rb
+++ b/spec/unit/network/http/mongrel/rest_spec.rb
@@ -4,8 +4,7 @@ require File.dirname(__FILE__) + '/../../../../spec_helper'
 
 require 'puppet/network/http'
 
-describe "Puppet::Network::HTTP::MongrelREST" do
-  confine "Mongrel is not available" => Puppet.features.mongrel?
+describe "Puppet::Network::HTTP::MongrelREST", :if => Puppet.features.mongrel? 
do
   before do
     require 'puppet/network/http/mongrel/rest'
   end
diff --git a/spec/unit/network/http/mongrel_spec.rb 
b/spec/unit/network/http/mongrel_spec.rb
index ac3d72b..1e24be0 100755
--- a/spec/unit/network/http/mongrel_spec.rb
+++ b/spec/unit/network/http/mongrel_spec.rb
@@ -6,9 +6,7 @@
 require File.dirname(__FILE__) + '/../../../spec_helper'
 require 'puppet/network/http'
 
-describe "Puppet::Network::HTTP::Mongrel", "after initializing" do
-  confine "Mongrel is not available" => Puppet.features.mongrel?
-
+describe "Puppet::Network::HTTP::Mongrel", "after initializing", :if => 
Puppet.features.mongrel? do
   it "should not be listening" do
     require 'puppet/network/http/mongrel'
 
@@ -16,9 +14,7 @@ describe "Puppet::Network::HTTP::Mongrel", "after 
initializing" do
   end
 end
 
-describe "Puppet::Network::HTTP::Mongrel", "when turning on listening" do
-  confine "Mongrel is not available" => Puppet.features.mongrel?
-
+describe "Puppet::Network::HTTP::Mongrel", "when turning on listening", :if => 
Puppet.features.mongrel? do
   before do
     require 'puppet/network/http/mongrel'
 
@@ -100,9 +96,7 @@ describe "Puppet::Network::HTTP::Mongrel", "when turning on 
listening" do
   end
 end
 
-describe "Puppet::Network::HTTP::Mongrel", "when turning off listening" do
-  confine "Mongrel is not available" => Puppet.features.mongrel?
-
+describe "Puppet::Network::HTTP::Mongrel", "when turning off listening", :if 
=> Puppet.features.mongrel? do
   before do
     @mock_mongrel = mock('mongrel httpserver')
     @mock_mongrel.stubs(:run)
diff --git a/spec/unit/network/http/rack/rest_spec.rb 
b/spec/unit/network/http/rack/rest_spec.rb
index 96cf84c..3eed4a2 100755
--- a/spec/unit/network/http/rack/rest_spec.rb
+++ b/spec/unit/network/http/rack/rest_spec.rb
@@ -4,9 +4,7 @@ require File.dirname(__FILE__) + '/../../../../spec_helper'
 require 'puppet/network/http/rack' if Puppet.features.rack?
 require 'puppet/network/http/rack/rest'
 
-describe "Puppet::Network::HTTP::RackREST" do
-  confine "Rack is not available" => Puppet.features.rack?
-
+describe "Puppet::Network::HTTP::RackREST", :if => Puppet.features.rack? do
   it "should include the Puppet::Network::HTTP::Handler module" do
     Puppet::Network::HTTP::RackREST.ancestors.should 
be_include(Puppet::Network::HTTP::Handler)
   end
diff --git a/spec/unit/network/http/rack/xmlrpc_spec.rb 
b/spec/unit/network/http/rack/xmlrpc_spec.rb
index 870438f..e641152 100755
--- a/spec/unit/network/http/rack/xmlrpc_spec.rb
+++ b/spec/unit/network/http/rack/xmlrpc_spec.rb
@@ -5,9 +5,7 @@ require 'puppet/network/handler'
 require 'puppet/network/http/rack' if Puppet.features.rack?
 require 'puppet/network/http/rack/xmlrpc' if Puppet.features.rack?
 
-describe "Puppet::Network::HTTP::RackXMLRPC" do
-  confine "Rack is not available" => Puppet.features.rack?
-
+describe "Puppet::Network::HTTP::RackXMLRPC", :if => Puppet.features.rack? do
   describe "when initializing" do
     it "should create an Puppet::Network::XMLRPCServer" do
       Puppet::Network::XMLRPCServer.expects(:new).returns stub_everything
diff --git a/spec/unit/network/http/rack_spec.rb 
b/spec/unit/network/http/rack_spec.rb
index 8be9ccb..434294c 100755
--- a/spec/unit/network/http/rack_spec.rb
+++ b/spec/unit/network/http/rack_spec.rb
@@ -4,9 +4,7 @@ require File.dirname(__FILE__) + '/../../../spec_helper'
 require 'puppet/network/handler'
 require 'puppet/network/http/rack' if Puppet.features.rack?
 
-describe "Puppet::Network::HTTP::Rack" do
-  confine "Rack is not available" => Puppet.features.rack?
-
+describe "Puppet::Network::HTTP::Rack", :if => Puppet.features.rack? do
   describe "while initializing" do
 
     it "should require a protocol specification" do
diff --git a/spec/unit/parser/collector_spec.rb 
b/spec/unit/parser/collector_spec.rb
index 908cda6..4cab26c 100755
--- a/spec/unit/parser/collector_spec.rb
+++ b/spec/unit/parser/collector_spec.rb
@@ -263,9 +263,7 @@ describe Puppet::Parser::Collector, "when collecting 
virtual and catalog resourc
   end
 end
 
-describe Puppet::Parser::Collector, "when collecting exported resources" do
-  confine "Cannot test Rails integration without ActiveRecord" => 
Puppet.features.rails?
-
+describe Puppet::Parser::Collector, "when collecting exported resources", :if 
=> Puppet.features.rails? do
   before do
     @compiler = Puppet::Parser::Compiler.new(Puppet::Node.new("mynode"))
     @scope = Puppet::Parser::Scope.new :compiler => @compiler
@@ -469,9 +467,7 @@ describe Puppet::Parser::Collector, "when collecting 
exported resources" do
   end
 end
 
-describe Puppet::Parser::Collector, "when building its ActiveRecord query for 
collecting exported resources" do
-  confine "Cannot test Rails integration without ActiveRecord" => 
Puppet.features.rails?
-
+describe Puppet::Parser::Collector, "when building its ActiveRecord query for 
collecting exported resources", :if => Puppet.features.rails? do
   before do
     @scope = stub 'scope', :host => "myhost", :debug => nil
     @compiler = mock 'compile'
diff --git a/spec/unit/parser/lexer_spec.rb b/spec/unit/parser/lexer_spec.rb
index d52add3..8603269 100755
--- a/spec/unit/parser/lexer_spec.rb
+++ b/spec/unit/parser/lexer_spec.rb
@@ -5,7 +5,7 @@ require File.dirname(__FILE__) + '/../../spec_helper'
 require 'puppet/parser/lexer'
 
 # This is a special matcher to match easily lexer output
-Spec::Matchers.define :be_like do |*expected|
+RSpec::Matchers.define :be_like do |*expected|
   match do |actual|
     expected.zip(actual).all? { |e,a| !e or a[0] == e or (e.is_a? Array and 
a[0] == e[0] and (a[1] == e[1] or (a[1].is_a?(Hash) and a[1][:value] == e[1]))) 
}
   end
@@ -651,7 +651,8 @@ describe "Puppet::Parser::Lexer in the old tests" do
   end
 end
 
-require 'puppettest/support/utils'
+require File.dirname(__FILE__) + '/../../../test/lib/puppettest'
+require File.dirname(__FILE__) + '/../../../test/lib/puppettest/support/utils'
 describe "Puppet::Parser::Lexer in the old tests when lexing example files" do
   extend PuppetTest::Support::Utils
   textfiles do |file|
diff --git a/spec/unit/provider/mount/parsed_spec.rb 
b/spec/unit/provider/mount/parsed_spec.rb
index 7d2e8a8..5a1c986 100755
--- a/spec/unit/provider/mount/parsed_spec.rb
+++ b/spec/unit/provider/mount/parsed_spec.rb
@@ -157,8 +157,7 @@ describe provider_class do
     end
   end
 
-  describe provider_class, " when parsing information about the root 
filesystem" do
-    confine "Mount type not tested on Darwin" => 
Facter["operatingsystem"].value != "Darwin"
+  describe provider_class, " when parsing information about the root 
filesystem", :if => Facter["operatingsystem"].value != "Darwin" do
     include ParsedMountTesting
 
     before do
diff --git a/spec/unit/rails/host_spec.rb b/spec/unit/rails/host_spec.rb
index 324a673..4244f11 100755
--- a/spec/unit/rails/host_spec.rb
+++ b/spec/unit/rails/host_spec.rb
@@ -2,9 +2,7 @@
 
 require File.dirname(__FILE__) + '/../../spec_helper'
 
-describe "Puppet::Rails::Host" do
-  confine "Cannot test without ActiveRecord" => Puppet.features.rails?
-
+describe "Puppet::Rails::Host", :if => Puppet.features.rails? do
   def column(name, type)
     ActiveRecord::ConnectionAdapters::Column.new(name, nil, type, false)
   end
diff --git a/spec/unit/rails/param_value_spec.rb 
b/spec/unit/rails/param_value_spec.rb
index 243456e..f67022a 100755
--- a/spec/unit/rails/param_value_spec.rb
+++ b/spec/unit/rails/param_value_spec.rb
@@ -3,9 +3,7 @@
 require File.dirname(__FILE__) + '/../../spec_helper'
 require 'puppet/rails'
 
-describe "Puppet::Rails::ParamValue" do
-  confine "Cannot test without ActiveRecord" => Puppet.features.rails?
-
+describe "Puppet::Rails::ParamValue", :if => Puppet.features.rails? do
   def column(name, type)
     ActiveRecord::ConnectionAdapters::Column.new(name, nil, type, false)
   end
diff --git a/spec/unit/rails/resource_spec.rb b/spec/unit/rails/resource_spec.rb
index 6e23d20..e5bd8a6 100755
--- a/spec/unit/rails/resource_spec.rb
+++ b/spec/unit/rails/resource_spec.rb
@@ -3,9 +3,7 @@
 require File.dirname(__FILE__) + '/../../spec_helper'
 require 'puppet/rails'
 
-describe "Puppet::Rails::Resource" do
-  confine "Cannot test without ActiveRecord" => Puppet.features.rails?
-
+describe "Puppet::Rails::Resource", :if => Puppet.features.rails? do
   def column(name, type)
     ActiveRecord::ConnectionAdapters::Column.new(name, nil, type, false)
   end
diff --git a/spec/unit/rails_spec.rb b/spec/unit/rails_spec.rb
index 24248e6..02b54ef 100755
--- a/spec/unit/rails_spec.rb
+++ b/spec/unit/rails_spec.rb
@@ -3,9 +3,7 @@
 require File.dirname(__FILE__) + '/../spec_helper'
 require 'puppet/rails'
 
-describe Puppet::Rails, "when initializing any connection" do
-  confine "Cannot test without ActiveRecord" => Puppet.features.rails?
-
+describe Puppet::Rails, "when initializing any connection", :if => 
Puppet.features.rails? do
   before do
     Puppet.settings.stubs(:use)
     @logger = mock 'logger'
@@ -77,9 +75,7 @@ describe Puppet::Rails, "when initializing any connection" do
   end
 end
 
-describe Puppet::Rails, "when initializing a sqlite3 connection" do
-  confine "Cannot test without ActiveRecord" => Puppet.features.rails?
-
+describe Puppet::Rails, "when initializing a sqlite3 connection", :if => 
Puppet.features.rails? do
   it "should provide the adapter, log_level, and database arguments" do
     Puppet.settings.expects(:value).with(:dbadapter).returns("sqlite3")
     Puppet.settings.expects(:value).with(:rails_loglevel).returns("testlevel")
@@ -93,9 +89,7 @@ describe Puppet::Rails, "when initializing a sqlite3 
connection" do
   end
 end
 
-describe Puppet::Rails, "when initializing a mysql connection" do
-  confine "Cannot test without ActiveRecord" => Puppet.features.rails?
-
+describe Puppet::Rails, "when initializing a mysql connection", :if => 
Puppet.features.rails? do
   it "should provide the adapter, log_level, and host, port, username, 
password, database, and reconnect arguments" do
     Puppet.settings.stubs(:value).with(:dbadapter).returns("mysql")
     Puppet.settings.stubs(:value).with(:rails_loglevel).returns("testlevel")
@@ -190,9 +184,7 @@ describe Puppet::Rails, "when initializing a mysql 
connection" do
   end
 end
 
-describe Puppet::Rails, "when initializing a postgresql connection" do
-  confine "Cannot test without ActiveRecord" => Puppet.features.rails?
-
+describe Puppet::Rails, "when initializing a postgresql connection", :if => 
Puppet.features.rails? do
   it "should provide the adapter, log_level, and host, port, username, 
password, connections, and database arguments" do
     Puppet.settings.stubs(:value).with(:dbadapter).returns("postgresql")
     Puppet.settings.stubs(:value).with(:rails_loglevel).returns("testlevel")
@@ -263,9 +255,7 @@ describe Puppet::Rails, "when initializing a postgresql 
connection" do
   end
 end
 
-describe Puppet::Rails, "when initializing an Oracle connection" do
-  confine "Cannot test without ActiveRecord" => Puppet.features.rails?
-
+describe Puppet::Rails, "when initializing an Oracle connection", :if => 
Puppet.features.rails? do
   it "should provide the adapter, log_level, and username, password, and 
database arguments" do
     Puppet.settings.stubs(:value).with(:dbadapter).returns("oracle_enhanced")
     Puppet.settings.stubs(:value).with(:rails_loglevel).returns("testlevel")
diff --git a/spec/unit/relationship_spec.rb b/spec/unit/relationship_spec.rb
index 4586cd0..9ce6c56 100755
--- a/spec/unit/relationship_spec.rb
+++ b/spec/unit/relationship_spec.rb
@@ -155,9 +155,7 @@ describe Puppet::Relationship, " when matching edges with a 
non-standard event"
   end
 end
 
-describe Puppet::Relationship, "when converting to pson" do
-  confine "Missing 'pson' library" => Puppet.features.pson?
-
+describe Puppet::Relationship, "when converting to pson", :if => 
Puppet.features.pson? do
   before do
     @edge = Puppet::Relationship.new(:a, :b, :event => :random, :callback => 
:whatever)
   end
@@ -190,9 +188,7 @@ describe Puppet::Relationship, "when converting to pson" do
   end
 end
 
-describe Puppet::Relationship, "when converting from pson" do
-  confine "Missing 'pson' library" => Puppet.features.pson?
-
+describe Puppet::Relationship, "when converting from pson", :if => 
Puppet.features.pson? do
   before do
     @event = "random"
     @callback = "whatever"
diff --git a/spec/unit/resource/catalog_spec.rb 
b/spec/unit/resource/catalog_spec.rb
index 2b6beb5..9427214 100755
--- a/spec/unit/resource/catalog_spec.rb
+++ b/spec/unit/resource/catalog_spec.rb
@@ -880,9 +880,7 @@ describe Puppet::Resource::Catalog, "when compiling" do
   end
 end
 
-describe Puppet::Resource::Catalog, "when converting to pson" do
-  confine "Missing 'pson' library" => Puppet.features.pson?
-
+describe Puppet::Resource::Catalog, "when converting to pson", :if => 
Puppet.features.pson? do
   before do
     @catalog = Puppet::Resource::Catalog.new("myhost")
   end
@@ -940,9 +938,7 @@ describe Puppet::Resource::Catalog, "when converting to 
pson" do
   end
 end
 
-describe Puppet::Resource::Catalog, "when converting from pson" do
-  confine "Missing 'pson' library" => Puppet.features.pson?
-
+describe Puppet::Resource::Catalog, "when converting from pson", :if => 
Puppet.features.pson? do
   def pson_result_should
     Puppet::Resource::Catalog.expects(:new).with { |hash| yield hash }
   end
diff --git a/spec/unit/resource_spec.rb b/spec/unit/resource_spec.rb
index e65e8a1..877b6b6 100755
--- a/spec/unit/resource_spec.rb
+++ b/spec/unit/resource_spec.rb
@@ -585,9 +585,7 @@ describe Puppet::Resource do
     end
   end
 
-  describe "when converting to pson" do
-    confine "Missing 'pson' library" => Puppet.features.pson?
-
+  describe "when converting to pson", :if => Puppet.features.pson? do
     def pson_output_should
       @resource.class.expects(:pson_create).with { |hash| yield hash }
     end
@@ -666,9 +664,7 @@ describe Puppet::Resource do
     end
   end
 
-  describe "when converting from pson" do
-    confine "Missing 'pson' library" => Puppet.features.pson?
-
+  describe "when converting from pson", :if => Puppet.features.pson? do
     def pson_result_should
       Puppet::Resource.expects(:new).with { |hash| yield hash }
     end
diff --git a/spec/unit/ssl/certificate_authority/interface_spec.rb 
b/spec/unit/ssl/certificate_authority/interface_spec.rb
index d8c351a..5cf4073 100755
--- a/spec/unit/ssl/certificate_authority/interface_spec.rb
+++ b/spec/unit/ssl/certificate_authority/interface_spec.rb
@@ -4,7 +4,7 @@ require File.dirname(__FILE__) + '/../../../spec_helper'
 
 require 'puppet/ssl/certificate_authority'
 
-describe "a normal interface method", :shared => true do
+shared_examples_for "a normal interface method" do
   it "should call the method on the CA for each host specified if an array was 
provided" do
     @ca.expects(@method).with("host1")
     @ca.expects(@method).with("host2")
diff --git a/spec/unit/type/augeas_spec.rb b/spec/unit/type/augeas_spec.rb
index e426fbe..d2e40f0 100644
--- a/spec/unit/type/augeas_spec.rb
+++ b/spec/unit/type/augeas_spec.rb
@@ -5,9 +5,7 @@ require File.dirname(__FILE__) + '/../../spec_helper'
 augeas = Puppet::Type.type(:augeas)
 
 describe augeas do
-  describe "when augeas is present" do
-    confine "Augeas is unavailable" => Puppet.features.augeas?
-
+  describe "when augeas is present", :if => Puppet.features.augeas? do
     it "should have a default provider inheriting from Puppet::Provider" do
       augeas.defaultprovider.ancestors.should be_include(Puppet::Provider)
     end
diff --git a/spec/unit/type/file_spec.rb b/spec/unit/type/file_spec.rb
index 4fcad07..22921d8 100755
--- a/spec/unit/type/file_spec.rb
+++ b/spec/unit/type/file_spec.rb
@@ -208,8 +208,7 @@ describe Puppet::Type.type(:file) do
     end
   end
 
-  describe "when using Microsoft Windows filenames" do
-    confine "Only works on Microsoft Windows" => 
Puppet.features.microsoft_windows?
+  describe "when using Microsoft Windows filenames", :if => 
Puppet.features.microsoft_windows? do
     describe "on Microsoft Windows systems" do
       before do
         Puppet.features.stubs(:posix?).returns(false)
@@ -271,8 +270,7 @@ describe Puppet::Type.type(:file) do
   end
 
   describe "when using UNC filenames" do
-    describe "on Microsoft Windows systems" do
-      confine "Only works on Microsoft Windows" => 
Puppet.features.microsoft_windows?
+    describe "on Microsoft Windows systems", :if => 
Puppet.features.microsoft_windows? do
       before do
         Puppet.features.stubs(:posix?).returns(false)
         Puppet.features.stubs(:microsoft_windows?).returns(true)
@@ -381,9 +379,9 @@ describe Puppet::Type.type(:file) do
 
 
                 @resource = Puppet::Type.type(:file).new(
-                
+
             :path => @link,
-        
+
             :mode => "755"
           )
           @catalog.add_resource @resource
@@ -1058,7 +1056,7 @@ describe Puppet::Type.type(:file) do
     before do
       @type_class = Puppet::Type.type(:file)
     end
-    
+
     it "should have a regexp that captures the entire string, except for a 
terminating slash" do
       patterns = @type_class.title_patterns
       string = "abc/\n\tdef/"
diff --git a/spec/unit/util/queue/stomp_spec.rb 
b/spec/unit/util/queue/stomp_spec.rb
index 9f1d284..c33f1a6 100755
--- a/spec/unit/util/queue/stomp_spec.rb
+++ b/spec/unit/util/queue/stomp_spec.rb
@@ -3,18 +3,14 @@
 require File.dirname(__FILE__) + '/../../../spec_helper'
 require 'puppet/util/queue'
 
-describe Puppet::Util::Queue do
-  confine "Missing Stomp" => Puppet.features.stomp?
-
+describe Puppet::Util::Queue, :if => Puppet.features.stomp? do
   it 'should load :stomp client appropriately' do
     Puppet.settings.stubs(:value).returns 'faux_queue_source'
     Puppet::Util::Queue.queue_type_to_class(:stomp).name.should == 
'Puppet::Util::Queue::Stomp'
   end
 end
 
-describe 'Puppet::Util::Queue::Stomp' do
-  confine "Missing Stomp" => Puppet.features.stomp?
-
+describe 'Puppet::Util::Queue::Stomp', :if => Puppet.features.stomp? do
   before do
     # So we make sure we never create a real client instance.
     # Otherwise we'll try to connect, and that's bad.
diff --git a/spec/unit/util/settings/file_setting_spec.rb 
b/spec/unit/util/settings/file_setting_spec.rb
index 2870fbb..dcfb6e3 100755
--- a/spec/unit/util/settings/file_setting_spec.rb
+++ b/spec/unit/util/settings/file_setting_spec.rb
@@ -146,9 +146,7 @@ describe Puppet::Util::Settings::FileSetting do
       @file.to_resource.should be_instance_of(Puppet::Resource)
     end
 
-    describe "on POSIX systems" do
-      confine "no /dev on Microsoft Windows" => Puppet.features.posix?
-
+    describe "on POSIX systems", :if => Puppet.features.posix? do
       it "should skip files in /dev" do
         @settings.stubs(:value).with(:mydir).returns "/dev/file"
         @file.to_resource.should be_nil
-- 
1.7.3.3

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en.

Reply via email to