Improve ChefSpec test speed by enabling caching
This updates all references of let(:chef_run) to cached(:chef_run) to speed up tests. By doing this, we have to create a new cached(:chef_run) block whenever we need to adjust node attributes for testing. Speed was improved from 24.75 seconds to 14.75 seconds. Change-Id: Ib5bea5c649a80677b673099a55c1c965b9d38390
This commit is contained in:
parent
07f6c83a00
commit
3b508052a1
|
@ -5,7 +5,7 @@ describe 'openstack-ops-messaging::rabbitmq-server' do
|
|||
describe 'redhat' do
|
||||
let(:runner) { ChefSpec::SoloRunner.new(REDHAT_OPTS) }
|
||||
let(:node) { runner.node }
|
||||
let(:chef_run) { runner.converge(described_recipe) }
|
||||
cached(:chef_run) { runner.converge(described_recipe) }
|
||||
|
||||
include_context 'ops_messaging_stubs'
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ describe 'openstack-ops-messaging::rabbitmq-server' do
|
|||
describe 'ubuntu' do
|
||||
let(:runner) { ChefSpec::SoloRunner.new(UBUNTU_OPTS) }
|
||||
let(:node) { runner.node }
|
||||
let(:chef_run) { runner.converge(described_recipe) }
|
||||
cached(:chef_run) { runner.converge(described_recipe) }
|
||||
|
||||
include_context 'ops_messaging_stubs'
|
||||
|
||||
|
@ -18,22 +18,28 @@ describe 'openstack-ops-messaging::rabbitmq-server' do
|
|||
expect(chef_run.node['rabbitmq']['use_distro_version']).to be_truthy
|
||||
end
|
||||
|
||||
it 'overrides rabbit and openstack image attributes' do
|
||||
context 'override rabbit and openstack image attributes' do
|
||||
cached(:chef_run) do
|
||||
node.override['openstack']['bind_service']['mq']['interface'] = 'enp0s3'
|
||||
node.override['openstack']['bind_service']['mq']['port'] = '4242'
|
||||
node.override['openstack']['endpoints']['mq']['port'] = '4242'
|
||||
node.override['openstack']['mq']['user'] = 'foo'
|
||||
node.override['openstack']['mq']['vhost'] = '/bar'
|
||||
runner.converge(described_recipe)
|
||||
end
|
||||
it 'overrides rabbit and openstack image attributes' do
|
||||
expect(chef_run.node['openstack']['mq']['listen']).to eq('33.44.55.66')
|
||||
expect(chef_run.node['openstack']['mq']['image']['rabbit']['port']).to eq('4242')
|
||||
expect(chef_run.node['openstack']['mq']['image']['rabbit']['userid']).to eq('foo')
|
||||
expect(chef_run.node['openstack']['mq']['image']['rabbit']['vhost']).to eq('/bar')
|
||||
end
|
||||
end
|
||||
|
||||
describe 'rabbit ssl' do
|
||||
before do
|
||||
context 'rabbit ssl' do
|
||||
cached(:chef_run) do
|
||||
node.override['openstack']['mq']['rabbitmq']['use_ssl'] = true
|
||||
node.override['openstack']['bind_service']['mq']['port'] = '1234'
|
||||
runner.converge(described_recipe)
|
||||
end
|
||||
|
||||
it 'overrides rabbit ssl attributes' do
|
||||
|
@ -41,11 +47,10 @@ describe 'openstack-ops-messaging::rabbitmq-server' do
|
|||
end
|
||||
end
|
||||
|
||||
describe 'cluster' do
|
||||
before do
|
||||
node.override['openstack']['mq'] = {
|
||||
'cluster' => true,
|
||||
}
|
||||
context 'cluster' do
|
||||
cached(:chef_run) do
|
||||
node.override['openstack']['mq'] = { 'cluster' => true }
|
||||
runner.converge(described_recipe)
|
||||
end
|
||||
|
||||
it 'overrides cluster' do
|
||||
|
@ -64,11 +69,17 @@ describe 'openstack-ops-messaging::rabbitmq-server' do
|
|||
)
|
||||
end
|
||||
|
||||
it 'does not search for cluster_disk_nodes' do
|
||||
context 'search_for_cluster_disk_nodes false' do
|
||||
cached(:chef_run) do
|
||||
node.override['openstack']['mq'] = { 'cluster' => true }
|
||||
node.override['openstack']['mq']['search_for_cluster_disk_nodes'] = false
|
||||
runner.converge(described_recipe)
|
||||
end
|
||||
it 'does not search for cluster_disk_nodes' do
|
||||
expect(chef_run.node['rabbitmq']['clustering']['cluster_nodes']).to eq([])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
it 'includes rabbit recipes' do
|
||||
expect(chef_run).to include_recipe 'rabbitmq'
|
||||
|
@ -77,9 +88,10 @@ describe 'openstack-ops-messaging::rabbitmq-server' do
|
|||
|
||||
describe 'lwrps' do
|
||||
context 'custom mq attributes' do
|
||||
before do
|
||||
cached(:chef_run) do
|
||||
node.override['openstack']['mq']['user'] = 'not-a-guest'
|
||||
node.override['openstack']['mq']['vhost'] = '/foo'
|
||||
runner.converge(described_recipe)
|
||||
end
|
||||
|
||||
it 'adds openstack rabbit user' do
|
||||
|
|
|
@ -2,18 +2,19 @@
|
|||
require 'chefspec'
|
||||
require 'chefspec/berkshelf'
|
||||
|
||||
ChefSpec::Coverage.start! { add_filter 'openstack-ops-messaging' }
|
||||
RSpec.configure do |config|
|
||||
config.color = true
|
||||
config.formatter = :documentation
|
||||
config.log_level = :warn
|
||||
end
|
||||
|
||||
LOG_LEVEL = :fatal
|
||||
REDHAT_OPTS = {
|
||||
platform: 'redhat',
|
||||
version: '7.3',
|
||||
log_level: LOG_LEVEL,
|
||||
version: '7',
|
||||
}.freeze
|
||||
UBUNTU_OPTS = {
|
||||
platform: 'ubuntu',
|
||||
version: '16.04',
|
||||
log_level: LOG_LEVEL,
|
||||
}.freeze
|
||||
|
||||
shared_context 'ops_messaging_stubs' do
|
||||
|
|
Loading…
Reference in New Issue