puppet-openstack_health/spec/acceptance/api_spec.rb

67 lines
1.9 KiB
Ruby

require 'puppet-openstack_infra_spec_helper/spec_helper_acceptance'
describe 'puppet-openstack_health::api manifest', :if => ['debian', 'ubuntu'].include?(os[:family]) do
def pp_path
base_path = File.dirname(__FILE__)
File.join(base_path, 'fixtures')
end
def api_puppet_module
module_path = File.join(pp_path, 'api.pp')
File.read(module_path)
end
it 'should work with no errors' do
apply_manifest(api_puppet_module, catch_failures: true)
end
describe 'required packages' do
describe 'os packages' do
required_packages = [
package('apache2'),
package('python-dev'),
package('python-pip'),
package('python-virtualenv'),
]
required_packages.each do |package|
describe package do
it { should be_installed }
end
end
end
end
describe 'required files' do
describe file('/opt/openstack-health') do
it { should be_directory }
it { should be_owned_by 'openstack_health' }
it { should be_grouped_into 'openstack_health' }
end
describe file('/etc/openstack-health.conf') do
it { should be_file }
it { should be_owned_by 'openstack_health' }
it { should be_grouped_into 'openstack_health' }
its(:content) { should contain 'db_uri' }
its(:content) { should contain 'ignored_run_metadata_keys' }
its(:content) { should contain 'build_change' }
its(:content) { should contain 'build_zuul_url' }
end
end
describe 'required services' do
describe 'ports are open and services are reachable' do
describe port(5000) do
it { should be_listening }
end
describe command('curl http://localhost:5000/status --verbose') do
its(:stdout) { should contain('status') }
its(:stdout) { should contain('true') }
its(:stdout) { should_not contain('false') }
end
end
end
end