summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorJeff McCune <jeff@puppetlabs.com>2012-05-10 22:13:46 -0700
committerJeff McCune <jeff@puppetlabs.com>2012-05-10 22:13:46 -0700
commitfb43a6ff2fa2bc32c7fa9e1353e3b88a4dcdaa60 (patch)
tree54de34b7a0a97d011287730927b465ed8bd85a37 /spec
parentf84c02011f3c00149dead77d712770d9468ad706 (diff)
parent1373e70639e0105ec314c006bd82545573a389e6 (diff)
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.rb73
-rw-r--r--spec/unit/puppet/type/file_line_spec.rb17
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