Files
cookbook-openstack-common/spec/spec_helper.rb
Lance Albertson 4000e8aa96 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.

Some additional fixes include:
- Add default['openstack']['common']['search_count_max'] attribute to allow speed
  ups during testing.
- Improved a few tests
- Adjusted some formatting
- Remove deprecated ChefSpec::Coverage.start function
- Show warnings
- Use major version for redhat platform
- Update to Ubuntu 18.04

Speed was improved from 4 minutes 16 seconds to 41.98 seconds.

Change-Id: Icb9147036a01f92ec48a24c692dd022258e294c0
2020-01-06 11:34:18 -08:00

51 lines
1.1 KiB
Ruby

# encoding: UTF-8
require 'chefspec'
require 'chefspec/berkshelf'
RSpec.configure do |config|
config.color = true
config.formatter = :documentation
config.log_level = :warn
end
UBUNTU_OPTS = {
platform: 'ubuntu',
version: '18.04',
}.freeze
REDHAT_OPTS = {
platform: 'redhat',
version: '7',
}.freeze
# We set a default platform for non-platform specific test cases
CHEFSPEC_OPTS = UBUNTU_OPTS
shared_context 'library-stubs' do
before do
allow(subject).to receive(:node).and_return(chef_run.node)
end
end
shared_context 'common-stubs' do
before do
allow_any_instance_of(Chef::Recipe).to receive(:search_for)
.with('os-identity').and_return(
[{
'openstack' => {
'identity' => {
'admin_tenant_name' => 'admin',
'admin_user' => 'admin',
},
},
}]
)
allow_any_instance_of(Chef::Recipe).to receive(:get_password)
.with('user', 'admin')
.and_return('admin')
allow_any_instance_of(Chef::Recipe).to receive(:get_password)
.with('user', 'admin-user-override')
.and_return('admin-user-override')
end
end