puppet-neutron/spec/unit/type/neutron_api_uwsgi_config_spec.rb
Thomas Goirand 0b3d363ac0 Add support for neutron_api_uwsgi_config in Debian
This patch is adding the configuration of the number of workers,
threads, and the size of the listen queue in Debian, which uses
uwsgi to run Neutron API. Therefore, this patch adds a new
neutron_api_uwsgi_config provider as well as a new
neutron::wsgi::uwsgi class.

Change-Id: Iaa4171c05586ddca9fd3af1b4a78adfbe4105bab
2021-04-09 18:47:00 +02:00

65 lines
2.2 KiB
Ruby

require 'puppet'
require 'puppet/type/neutron_api_uwsgi_config'
describe 'Puppet::Type.type(:neutron_api_uwsgi_config)' do
before :each do
@neutron_api_uwsgi_config = Puppet::Type.type(:neutron_api_uwsgi_config).new(:name => 'DEFAULT/foo', :value => 'bar')
end
it 'should require a name' do
expect {
Puppet::Type.type(:neutron_api_uwsgi_config).new({})
}.to raise_error(Puppet::Error, 'Title or name must be provided')
end
it 'should not expect a name with whitespace' do
expect {
Puppet::Type.type(:neutron_api_uwsgi_config).new(:name => 'f oo')
}.to raise_error(Puppet::Error, /Parameter name failed/)
end
it 'should fail when there is no section' do
expect {
Puppet::Type.type(:neutron_api_uwsgi_config).new(:name => 'foo')
}.to raise_error(Puppet::Error, /Parameter name failed/)
end
it 'should not require a value when ensure is absent' do
Puppet::Type.type(:neutron_api_uwsgi_config).new(:name => 'DEFAULT/foo', :ensure => :absent)
end
it 'should accept a valid value' do
@neutron_api_uwsgi_config[:value] = 'bar'
expect(@neutron_api_uwsgi_config[:value]).to eq('bar')
end
it 'should not accept a value with whitespace' do
@neutron_api_uwsgi_config[:value] = 'b ar'
expect(@neutron_api_uwsgi_config[:value]).to eq('b ar')
end
it 'should accept valid ensure values' do
@neutron_api_uwsgi_config[:ensure] = :present
expect(@neutron_api_uwsgi_config[:ensure]).to eq(:present)
@neutron_api_uwsgi_config[:ensure] = :absent
expect(@neutron_api_uwsgi_config[:ensure]).to eq(:absent)
end
it 'should not accept invalid ensure values' do
expect {
@neutron_api_uwsgi_config[:ensure] = :latest
}.to raise_error(Puppet::Error, /Invalid value/)
end
it 'should autorequire the package that install the file' do
catalog = Puppet::Resource::Catalog.new
anchor = Puppet::Type.type(:anchor).new(:name => 'neutron::install::end')
catalog.add_resource anchor, @neutron_api_uwsgi_config
dependency = @neutron_api_uwsgi_config.autorequire
expect(dependency.size).to eq(1)
expect(dependency[0].target).to eq(@neutron_api_uwsgi_config)
expect(dependency[0].source).to eq(anchor)
end
end