
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: I7a23414094109add8afefc2dbddf863091994403
49 lines
1.4 KiB
Ruby
49 lines
1.4 KiB
Ruby
require 'puppet-openstack_infra_spec_helper/spec_helper_acceptance'
|
|
|
|
describe 'puppet-bandersnatch module' do
|
|
def pp_path
|
|
base_path = File.dirname(__FILE__)
|
|
File.join(base_path, 'fixtures')
|
|
end
|
|
|
|
def preconditions_puppet_module
|
|
module_path = File.join(pp_path, 'preconditions.pp')
|
|
File.read(module_path)
|
|
end
|
|
|
|
def default_puppet_module
|
|
module_path = File.join(pp_path, 'default.pp')
|
|
File.read(module_path)
|
|
end
|
|
|
|
before(:all) do
|
|
apply_manifest(preconditions_puppet_module, catch_failures: true)
|
|
end
|
|
|
|
it 'should work with no errors' do
|
|
apply_manifest(default_puppet_module, catch_failures: true)
|
|
end
|
|
|
|
it 'should be idempotent', :if => ['debian', 'ubuntu'].include?(os[:family]) do
|
|
apply_manifest(default_puppet_module, catch_changes: true)
|
|
end
|
|
|
|
it 'should be idempotent', :if => ['fedora', 'redhat'].include?(os[:family]) do
|
|
pending('this module is not idempotent on CentOS yet')
|
|
apply_manifest(default_puppet_module, catch_changes: true)
|
|
end
|
|
|
|
describe 'required services' do
|
|
# Wait for bandersnatch to run
|
|
describe command('sleep 480 && curl localhost') do
|
|
its(:stdout) { should contain('Index of /') }
|
|
its(:stdout) { should contain('simple/') }
|
|
end
|
|
|
|
describe command('curl localhost/robots.txt') do
|
|
its(:stdout) { should match 'User-agent: *' }
|
|
its(:stdout) { should match 'Disallow: /' }
|
|
end
|
|
end
|
|
end
|