diff options
author | Jeff McCune <jeff@puppetlabs.com> | 2012-05-10 22:13:46 -0700 |
---|---|---|
committer | Jeff McCune <jeff@puppetlabs.com> | 2012-05-10 22:13:46 -0700 |
commit | fb43a6ff2fa2bc32c7fa9e1353e3b88a4dcdaa60 (patch) | |
tree | 54de34b7a0a97d011287730927b465ed8bd85a37 /spec | |
parent | f84c02011f3c00149dead77d712770d9468ad706 (diff) | |
parent | 1373e70639e0105ec314c006bd82545573a389e6 (diff) | |
download | puppet-stdlib-fb43a6ff2fa2bc32c7fa9e1353e3b88a4dcdaa60.tar.gz puppet-stdlib-fb43a6ff2fa2bc32c7fa9e1353e3b88a4dcdaa60.tar.bz2 |
Merge branch 'fix/2.3.x/file_line_ensure' into 2.3.x
* fix/2.3.x/file_line_ensure:
Make file_line default to ensure => present
Memoize file_line spec instance variables
Fix spec tests using the new spec_helper
Diffstat (limited to 'spec')
-rw-r--r-- | spec/spec_helper.rb | 73 | ||||
-rw-r--r-- | spec/unit/puppet/type/file_line_spec.rb | 17 |
2 files changed, 15 insertions, 75 deletions
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 0f3248b..f64fcba 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -10,90 +10,27 @@ require 'mocha' gem 'rspec', '>=2.0.0' require 'rspec/expectations' + # So everyone else doesn't have to include this base constant. module PuppetSpec FIXTURE_DIR = File.join(dir = File.expand_path(File.dirname(__FILE__)), "fixtures") unless defined?(FIXTURE_DIR) end -require 'pathname' -require 'tmpdir' - -require 'puppet_spec/verbose' +# TODO: ultimately would like to move these requires into the puppet_spec_helper.rb file, but the namespaces +# are not currently the same between the two, so tests would need to be modified. Not ready to undertake that +# just yet. require 'puppet_spec/files' -require 'puppet_spec/fixtures' -require 'puppet_spec/matchers' -require 'monkey_patches/alias_should_to_must' -require 'monkey_patches/publicize_methods' - -# JJM Hack to make the stdlib tests run in Puppet 2.6 (See puppet commit cf183534) -if not Puppet.constants.include? "Test" then - module Puppet::Test - class LogCollector - def initialize(logs) - @logs = logs - end - - def <<(value) - @logs << value - end - end - end - Puppet::Util::Log.newdesttype :log_collector do - match "Puppet::Test::LogCollector" - def initialize(messages) - @messages = messages - end +require 'puppet_spec_helper' - def handle(msg) - @messages << msg - end - end -end - -Pathname.glob("#{dir}/shared_behaviours/**/*.rb") do |behaviour| - require behaviour.relative_path_from(Pathname.new(dir)) -end RSpec.configure do |config| - include PuppetSpec::Fixtures - - config.mock_with :mocha config.before :each do GC.disable - - - # REVISIT: I think this conceals other bad tests, but I don't have time to - # fully diagnose those right now. When you read this, please come tell me - # I suck for letting this float. --daniel 2011-04-21 - Signal.stubs(:trap) - - # We're using send because this is a private method to communicate it - # should only be used for tests. Puppet 2.6.x does not have the method. - Puppet.settings.send(:initialize_everything_for_tests) unless Puppet.version =~ /^2\.6/ - - - @logs = [] - Puppet::Util::Log.newdestination(Puppet::Test::LogCollector.new(@logs)) - - @log_level = Puppet::Util::Log.level end config.after :each do - # We're using send because this is a private method to communicate it - # should only be used for tests. Puppet 2.6.x does not have the method. - Puppet.settings.send(:clear_everything_for_tests) unless Puppet.version =~ /^2\.6/ - Puppet::Node::Environment.clear - Puppet::Util::Storage.clear - Puppet::Util::ExecutionStub.reset if Puppet::Util.constants.include? "ExecutionStub" - - PuppetSpec::Files.cleanup - - @logs.clear - Puppet::Util::Log.close_all - Puppet::Util::Log.level = @log_level - GC.enable end end diff --git a/spec/unit/puppet/type/file_line_spec.rb b/spec/unit/puppet/type/file_line_spec.rb index 7e07c06..c86dbd2 100644 --- a/spec/unit/puppet/type/file_line_spec.rb +++ b/spec/unit/puppet/type/file_line_spec.rb @@ -1,19 +1,19 @@ require 'puppet' require 'tempfile' describe Puppet::Type.type(:file_line) do - before :each do - @file_line = Puppet::Type.type(:file_line).new(:name => 'foo', :line => 'line', :path => '/tmp/path') + let :file_line do + Puppet::Type.type(:file_line).new(:name => 'foo', :line => 'line', :path => '/tmp/path') end it 'should accept a line and path' do - @file_line[:line] = 'my_line' - @file_line[:line].should == 'my_line' + file_line[:line] = 'my_line' + file_line[:line].should == 'my_line' end it 'should accept posix filenames' do - @file_line[:path] = '/tmp/path' - @file_line[:path].should == '/tmp/path' + file_line[:path] = '/tmp/path' + file_line[:path].should == '/tmp/path' end it 'should not accept unqualified path' do - expect { @file_line[:path] = 'file' }.should raise_error(Puppet::Error, /File paths must be fully qualified/) + expect { file_line[:path] = 'file' }.should raise_error(Puppet::Error, /File paths must be fully qualified/) end it 'should require that a line is specified' do expect { Puppet::Type.type(:file_line).new(:name => 'foo', :path => '/tmp/file') }.should raise_error(Puppet::Error, /Both line and path are required attributes/) @@ -21,4 +21,7 @@ describe Puppet::Type.type(:file_line) do it 'should require that a file is specified' do expect { Puppet::Type.type(:file_line).new(:name => 'foo', :line => 'path') }.should raise_error(Puppet::Error, /Both line and path are required attributes/) end + it 'should default to ensure => present' do + file_line[:ensure].should eq :present + end end |