Files
puppet-openstack_health/spec/acceptance/api_spec.rb
Colleen Murphy 95e26637f5 Depend on helper gem for spec_helper_acceptance
Instead of keeping a local copy of spec_helper_acceptance.rb and
requiring updates to all modules for any change, we can move it into the
common helper gem and require it from there. This will make it easier to
create and review changes that affect all puppet modules. Also change
the Gemfile to look for the gem in the local workspace if running in a
zuul environment.

Change-Id: Ic0775473835f523d587b8e39170084fa5c37bcbe
2017-08-18 10:41:44 +02:00

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