puppet-ceph/spec/unit/provider/ceph_config/ini_setting_spec.rb

71 lines
1.9 KiB
Ruby

# Copyright (C) 2013 Mirantis Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Author: Andrew Woodward <xarses>
# This is aparently one of the few ways to do this load
# see https://github.com/openstack/puppet-nova/blob/master/spec/unit/provider/nova_config/ini_setting_spec.rb
$LOAD_PATH.push(
File.join(
File.dirname(__FILE__),
'..',
'..',
'..',
'fixtures',
'modules',
'inifile',
'lib')
)
require 'spec_helper'
require 'puppet'
provider_class = Puppet::Type.type(:ceph_config).provider(:ini_setting)
describe provider_class do
include PuppetlabsSpec::Files
let(:tmpfile) { tmpfilename("ceph_config_test") }
let(:params) { {
:path => tmpfile,
} }
def validate(expected)
expect(File.read(tmpfile)).to eq(expected)
end
it 'should create keys = value and ensure space around equals' do
resource = Puppet::Type::Ceph_config.new(params.merge(
:name => 'global/ceph_is_foo', :value => 'bar'))
provider = provider_class.new(resource)
expect(provider.exists?).to be_falsey
provider.create
expect(provider.exists?).to be_truthy
validate(<<-EOS
[global]
ceph_is_foo = bar
EOS
)
end
it 'should default to file_path if param path is not passed' do
resource = Puppet::Type::Ceph_config.new(
:name => 'global/ceph_is_foo', :value => 'bar')
provider = provider_class.new(resource)
expect(provider.file_path).to eq('/etc/ceph/ceph.conf')
end
end