e82370a26d
This commit adds a native type that can check if a line exists and append it to a file. This use case seems common enough to warrant its inclusion into stdlib. Reviewed-by: Jeff McCune
30 lines
851 B
Ruby
30 lines
851 B
Ruby
require 'puppet'
|
|
require 'tempfile'
|
|
provider_class = Puppet::Type.type(:append_line).provider(:ruby)
|
|
describe provider_class do
|
|
before :each do
|
|
tmp = Tempfile.new('tmp')
|
|
@tmpfile = tmp.path
|
|
tmp.close!
|
|
@resource = Puppet::Type::Append_line.new(
|
|
{:name => 'foo', :path => @tmpfile, :line => 'foo'}
|
|
)
|
|
@provider = provider_class.new(@resource)
|
|
end
|
|
it 'should detect if the line exists in the file' do
|
|
File.open(@tmpfile, 'w') do |fh|
|
|
fh.write('foo')
|
|
end
|
|
@provider.exists?.should be_true
|
|
end
|
|
it 'should detect if the line does not exist in the file' do
|
|
File.open(@tmpfile, 'w') do |fh|
|
|
fh.write('foo1')
|
|
end
|
|
@provider.exists?.should be_nil
|
|
end
|
|
it 'should append to an existing file when creating' do
|
|
@provider.create
|
|
File.read(@tmpfile).chomp.should == 'foo'
|
|
end
|
|
end
|