From 4a96a902ccda14e665dee6aed35f45f42c448334 Mon Sep 17 00:00:00 2001 From: Tobias Urdin Date: Wed, 7 Nov 2018 16:45:52 +0100 Subject: [PATCH] Convert define spec testing to rspec-puppet-facts Change-Id: Icf7228fa1cd3d466c32650c0f607acb86fb122de --- .../manila_backend_dellemc_isilon_spec.rb | 44 +++++++---- .../manila_backend_dellemc_unity_spec.rb | 44 +++++++---- .../manila_backend_dellemc_vmax_spec.rb | 44 +++++++---- .../manila_backend_dellemc_vnx_spec.rb | 44 +++++++---- spec/defines/manila_backend_generic_spec.rb | 37 ++++++--- spec/defines/manila_backend_glusterfs_spec.rb | 23 +++--- .../manila_backend_glusternative_spec.rb | 23 +++--- .../defines/manila_backend_glusternfs_spec.rb | 23 +++--- .../manila_backend_hitachi_hnas_spec.rb | 33 +++++--- spec/defines/manila_backend_netapp_spec.rb | 44 +++++++---- ...ila_network_neutron_single_network_spec.rb | 27 +++++-- .../defines/manila_network_standalone_spec.rb | 26 +++++-- spec/defines/manila_service_instance_spec.rb | 76 +++++++++++-------- spec/defines/manila_type_set_spec.rb | 22 +++--- spec/defines/manila_type_spec.rb | 22 +++--- 15 files changed, 318 insertions(+), 214 deletions(-) diff --git a/spec/defines/manila_backend_dellemc_isilon_spec.rb b/spec/defines/manila_backend_dellemc_isilon_spec.rb index 63677276..1a56cd74 100644 --- a/spec/defines/manila_backend_dellemc_isilon_spec.rb +++ b/spec/defines/manila_backend_dellemc_isilon_spec.rb @@ -40,27 +40,39 @@ describe 'manila::backend::dellemc_isilon' do end end + shared_examples 'manila::backend::dellemc_isilon' do + context 'with default parameters' do + before do + params = {} + end - context 'with default parameters' do - before do - params = {} + it_configures 'dell emc isilon share driver' end - it_configures 'dell emc isilon share driver' - end - - context 'with provided parameters' do - it_configures 'dell emc isilon share driver' - end - - context 'with share server config' do - before do - params.merge!({ - :emc_nas_password => true, - }) + context 'with provided parameters' do + it_configures 'dell emc isilon share driver' end - it { is_expected.to raise_error(Puppet::Error, /true is not a string. It looks to be a TrueClass/) } + context 'with share server config' do + before do + params.merge!({ + :emc_nas_password => true, + }) + end + + it { is_expected.to raise_error(Puppet::Error, /true is not a string. It looks to be a TrueClass/) } + end end + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge!(OSDefaults.get_facts()) + end + + it_behaves_like 'manila::backend::dellemc_isilon' + end + end end diff --git a/spec/defines/manila_backend_dellemc_unity_spec.rb b/spec/defines/manila_backend_dellemc_unity_spec.rb index 089c92a1..83e7f22c 100644 --- a/spec/defines/manila_backend_dellemc_unity_spec.rb +++ b/spec/defines/manila_backend_dellemc_unity_spec.rb @@ -49,27 +49,39 @@ describe 'manila::backend::dellemc_unity' do end end + shared_examples 'manila::backend::dellemc_unity' do + context 'with default parameters' do + before do + params = {} + end - context 'with default parameters' do - before do - params = {} + it_configures 'dell emc unity share driver' end - it_configures 'dell emc unity share driver' - end - - context 'with provided parameters' do - it_configures 'dell emc unity share driver' - end - - context 'with share server config' do - before do - params.merge!({ - :emc_nas_password => true, - }) + context 'with provided parameters' do + it_configures 'dell emc unity share driver' end - it { is_expected.to raise_error(Puppet::Error, /true is not a string. It looks to be a TrueClass/) } + context 'with share server config' do + before do + params.merge!({ + :emc_nas_password => true, + }) + end + + it { is_expected.to raise_error(Puppet::Error, /true is not a string. It looks to be a TrueClass/) } + end end + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge!(OSDefaults.get_facts()) + end + + it_behaves_like 'manila::backend::dellemc_unity' + end + end end diff --git a/spec/defines/manila_backend_dellemc_vmax_spec.rb b/spec/defines/manila_backend_dellemc_vmax_spec.rb index 56802ed6..6d623a21 100644 --- a/spec/defines/manila_backend_dellemc_vmax_spec.rb +++ b/spec/defines/manila_backend_dellemc_vmax_spec.rb @@ -43,27 +43,39 @@ describe 'manila::backend::dellemc_vmax' do end end + shared_examples 'manila::backend::dellemc_vmax' do + context 'with default parameters' do + before do + params = {} + end - context 'with default parameters' do - before do - params = {} + it_configures 'dell emc vmax share driver' end - it_configures 'dell emc vmax share driver' - end - - context 'with provided parameters' do - it_configures 'dell emc vmax share driver' - end - - context 'with share server config' do - before do - params.merge!({ - :emc_nas_password => true, - }) + context 'with provided parameters' do + it_configures 'dell emc vmax share driver' end - it { is_expected.to raise_error(Puppet::Error, /true is not a string. It looks to be a TrueClass/) } + context 'with share server config' do + before do + params.merge!({ + :emc_nas_password => true, + }) + end + + it { is_expected.to raise_error(Puppet::Error, /true is not a string. It looks to be a TrueClass/) } + end end + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge!(OSDefaults.get_facts()) + end + + it_behaves_like 'manila::backend::dellemc_vmax' + end + end end diff --git a/spec/defines/manila_backend_dellemc_vnx_spec.rb b/spec/defines/manila_backend_dellemc_vnx_spec.rb index 355ab5c0..80e3cd59 100644 --- a/spec/defines/manila_backend_dellemc_vnx_spec.rb +++ b/spec/defines/manila_backend_dellemc_vnx_spec.rb @@ -49,27 +49,39 @@ describe 'manila::backend::dellemc_vnx' do end end + shared_examples 'manila::backend::dellemc_vnx' do + context 'with default parameters' do + before do + params = {} + end - context 'with default parameters' do - before do - params = {} + it_configures 'dell emc vnx share driver' end - it_configures 'dell emc vnx share driver' - end - - context 'with provided parameters' do - it_configures 'dell emc vnx share driver' - end - - context 'with share server config' do - before do - params.merge!({ - :emc_nas_password => true, - }) + context 'with provided parameters' do + it_configures 'dell emc vnx share driver' end - it { is_expected.to raise_error(Puppet::Error, /true is not a string. It looks to be a TrueClass/) } + context 'with share server config' do + before do + params.merge!({ + :emc_nas_password => true, + }) + end + + it { is_expected.to raise_error(Puppet::Error, /true is not a string. It looks to be a TrueClass/) } + end end + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge!(OSDefaults.get_facts()) + end + + it_behaves_like 'manila::backend::dellemc_vnx' + end + end end diff --git a/spec/defines/manila_backend_generic_spec.rb b/spec/defines/manila_backend_generic_spec.rb index 366df4fe..02068b54 100644 --- a/spec/defines/manila_backend_generic_spec.rb +++ b/spec/defines/manila_backend_generic_spec.rb @@ -19,19 +19,32 @@ describe 'manila::backend::generic' do } end - describe 'generic share driver' do - - it 'configures generic share driver' do - is_expected.to contain_manila_config('hippo/share_backend_name').with( - :value => 'hippo') - is_expected.to contain_manila_config('hippo/share_driver').with_value( - 'manila.share.drivers.generic.GenericShareDriver') - is_expected.to contain_manila_config('hippo/share_helpers').with_value( - 'CIFS=manila.share.drivers.helpers.CIFSHelperIPAccess,'\ - 'NFS=manila.share.drivers.helpers.NFSHelper') - params.each_pair do |config,value| - is_expected.to contain_manila_config("hippo/#{config}").with_value( value ) + shared_examples 'manila::backend::generic' do + context 'generic share driver' do + it 'configures generic share driver' do + is_expected.to contain_manila_config('hippo/share_backend_name').with( + :value => 'hippo') + is_expected.to contain_manila_config('hippo/share_driver').with_value( + 'manila.share.drivers.generic.GenericShareDriver') + is_expected.to contain_manila_config('hippo/share_helpers').with_value( + 'CIFS=manila.share.drivers.helpers.CIFSHelperIPAccess,'\ + 'NFS=manila.share.drivers.helpers.NFSHelper') + params.each_pair do |config,value| + is_expected.to contain_manila_config("hippo/#{config}").with_value( value ) + end end end end + + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge!(OSDefaults.get_facts()) + end + + it_behaves_like 'manila::backend::generic' + end + end end diff --git a/spec/defines/manila_backend_glusterfs_spec.rb b/spec/defines/manila_backend_glusterfs_spec.rb index 10d1f8bf..0c09f457 100644 --- a/spec/defines/manila_backend_glusterfs_spec.rb +++ b/spec/defines/manila_backend_glusterfs_spec.rb @@ -24,20 +24,15 @@ describe 'manila::backend::glusterfs' do end end - context 'on Debian platforms' do - let :facts do - @default_facts.merge({ :osfamily => 'Debian' }) + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge!(OSDefaults.get_facts()) + end + + it_behaves_like 'glusterfs share driver' end - - it_configures 'glusterfs share driver' end - - context 'on RedHat platforms' do - let :facts do - @default_facts.merge({ :osfamily => 'RedHat' }) - end - - it_configures 'glusterfs share driver' - end - end diff --git a/spec/defines/manila_backend_glusternative_spec.rb b/spec/defines/manila_backend_glusternative_spec.rb index 98277634..e7c31db7 100644 --- a/spec/defines/manila_backend_glusternative_spec.rb +++ b/spec/defines/manila_backend_glusternative_spec.rb @@ -26,20 +26,15 @@ describe 'manila::backend::glusternative' do end end - context 'on Debian platforms' do - let :facts do - @default_facts.merge({ :osfamily => 'Debian' }) + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge!(OSDefaults.get_facts()) + end + + it_behaves_like 'glusternative volume driver' end - - it_configures 'glusternative volume driver' end - - context 'on RedHat platforms' do - let :facts do - @default_facts.merge({ :osfamily => 'RedHat' }) - end - - it_configures 'glusternative volume driver' - end - end diff --git a/spec/defines/manila_backend_glusternfs_spec.rb b/spec/defines/manila_backend_glusternfs_spec.rb index 8681e4eb..674ddc8c 100644 --- a/spec/defines/manila_backend_glusternfs_spec.rb +++ b/spec/defines/manila_backend_glusternfs_spec.rb @@ -28,20 +28,15 @@ describe 'manila::backend::glusternfs' do end end - context 'on Debian platforms' do - let :facts do - @default_facts.merge({ :osfamily => 'Debian' }) + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge!(OSDefaults.get_facts()) + end + + it_behaves_like 'glusternfs volume driver' end - - it_configures 'glusternfs volume driver' end - - context 'on RedHat platforms' do - let :facts do - @default_facts.merge({ :osfamily => 'RedHat' }) - end - - it_configures 'glusternfs volume driver' - end - end diff --git a/spec/defines/manila_backend_hitachi_hnas_spec.rb b/spec/defines/manila_backend_hitachi_hnas_spec.rb index 2c7a849e..098de135 100644 --- a/spec/defines/manila_backend_hitachi_hnas_spec.rb +++ b/spec/defines/manila_backend_hitachi_hnas_spec.rb @@ -30,18 +30,31 @@ describe 'manila::backend::hitachi_hnas' do end end - context 'with provided parameters' do - it_configures 'hitachi hnas share driver' - end - - context 'with share server config' do - before do - params.merge!({ - :hitachi_hnas_password => true, - }) + shared_examples 'manila::backend::hitachi_hnas' do + context 'with provided parameters' do + it_configures 'hitachi hnas share driver' end - it { is_expected.to raise_error(Puppet::Error, /true is not a string. It looks to be a TrueClass/) } + context 'with share server config' do + before do + params.merge!({ + :hitachi_hnas_password => true, + }) + end + + it { is_expected.to raise_error(Puppet::Error, /true is not a string. It looks to be a TrueClass/) } + end end + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge!(OSDefaults.get_facts()) + end + + it_behaves_like 'manila::backend::hitachi_hnas' + end + end end diff --git a/spec/defines/manila_backend_netapp_spec.rb b/spec/defines/manila_backend_netapp_spec.rb index d4dd5819..0fdc915d 100644 --- a/spec/defines/manila_backend_netapp_spec.rb +++ b/spec/defines/manila_backend_netapp_spec.rb @@ -48,27 +48,39 @@ describe 'manila::backend::netapp' do end end + shared_examples 'manila::backend::netapp' do + context 'with default parameters' do + before do + params = {} + end - context 'with default parameters' do - before do - params = {} + it_configures 'netapp share driver' end - it_configures 'netapp share driver' - end - - context 'with provided parameters' do - it_configures 'netapp share driver' - end - - context 'with share server config' do - before do - params.merge!({ - :netapp_password => true, - }) + context 'with provided parameters' do + it_configures 'netapp share driver' end - it { is_expected.to raise_error(Puppet::Error, /true is not a string. It looks to be a TrueClass/) } + context 'with share server config' do + before do + params.merge!({ + :netapp_password => true, + }) + end + + it { is_expected.to raise_error(Puppet::Error, /true is not a string. It looks to be a TrueClass/) } + end end + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge!(OSDefaults.get_facts()) + end + + it_behaves_like 'manila::backend::netapp' + end + end end diff --git a/spec/defines/manila_network_neutron_single_network_spec.rb b/spec/defines/manila_network_neutron_single_network_spec.rb index ebad77e1..a1fd00e4 100644 --- a/spec/defines/manila_network_neutron_single_network_spec.rb +++ b/spec/defines/manila_network_neutron_single_network_spec.rb @@ -12,15 +12,28 @@ describe 'manila::network::neutron_single_network' do } end - context 'with provided parameters' do - it 'configures neutron single network plugin' do + shared_examples 'manila::network::neutron_single_network' do + context 'with provided parameters' do + it 'configures neutron single network plugin' do + is_expected.to contain_manila_config("neutronsingle/network_api_class").with_value( + 'manila.network.neutron.neutron_network_plugin.NeutronSingleNetworkPlugin') - is_expected.to contain_manila_config("neutronsingle/network_api_class").with_value( - 'manila.network.neutron.neutron_network_plugin.NeutronSingleNetworkPlugin') - - params.each_pair do |config,value| - is_expected.to contain_manila_config("neutronsingle/#{config}").with_value( value ) + params.each_pair do |config,value| + is_expected.to contain_manila_config("neutronsingle/#{config}").with_value( value ) + end end end end + + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge!(OSDefaults.get_facts()) + end + + it_behaves_like 'manila::network::neutron_single_network' + end + end end diff --git a/spec/defines/manila_network_standalone_spec.rb b/spec/defines/manila_network_standalone_spec.rb index da07985f..93efe97f 100644 --- a/spec/defines/manila_network_standalone_spec.rb +++ b/spec/defines/manila_network_standalone_spec.rb @@ -26,15 +26,29 @@ describe 'manila::network::standalone' do end end - context 'with default parameters' do - before do - params = {} + shared_examples 'manila::network::standalone' do + context 'with default parameters' do + before do + params = {} + end + + it_configures 'standalone network plugin' end - it_configures 'standalone network plugin' + context 'with provided parameters' do + it_configures 'standalone network plugin' + end end - context 'with provided parameters' do - it_configures 'standalone network plugin' + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge!(OSDefaults.get_facts()) + end + + it_behaves_like 'manila::network::standalone' + end end end diff --git a/spec/defines/manila_service_instance_spec.rb b/spec/defines/manila_service_instance_spec.rb index 26505334..cdb3eace 100644 --- a/spec/defines/manila_service_instance_spec.rb +++ b/spec/defines/manila_service_instance_spec.rb @@ -24,41 +24,55 @@ describe 'manila::service_instance' do } end - context 'with default parameters' do - it 'configures service instance' do - expect { - params.each_pair do |config,value| - is_expected.to contain_manila_config("DEFAULT/#{config}").with_value( value ) - end - }.to raise_error(Puppet::Error, /Missing required parameter service_image_location/) + shared_examples 'manila::service_instance' do + context 'with default parameters' do + it 'configures service instance' do + expect { + params.each_pair do |config,value| + is_expected.to contain_manila_config("DEFAULT/#{config}").with_value( value ) + end + }.to raise_error(Puppet::Error, /Missing required parameter service_image_location/) + end + end + + context 'with service image provided' do + let (:req_params) { params.merge!({ + :service_image_name => 'manila-service-image', + :service_image_location => 'http://example.com/manila_service_image.iso', + }) } + + it 'creates Glance image' do + is_expected.to contain_glance_image(req_params[:service_image_name]).with( + :ensure => 'present', + :is_public => 'yes', + :container_format => 'bare', + :disk_format => 'qcow2', + :source => req_params[:service_image_location] + ) + end + end + + context 'with create_service_image false' do + let (:req_params) { params.merge!({ + :create_service_image => false, + :service_image_name => 'manila-service-image', + }) } + + it 'does not create Glance image' do + is_expected.to_not contain_glance_image(req_params[:service_image_name]) + end end end - context 'with service image provided' do - let (:req_params) { params.merge!({ - :service_image_name => 'manila-service-image', - :service_image_location => 'http://example.com/manila_service_image.iso', - }) } + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge!(OSDefaults.get_facts()) + end - it 'creates Glance image' do - is_expected.to contain_glance_image(req_params[:service_image_name]).with( - :ensure => 'present', - :is_public => 'yes', - :container_format => 'bare', - :disk_format => 'qcow2', - :source => req_params[:service_image_location] - ) - end - end - - context 'with create_service_image false' do - let (:req_params) { params.merge!({ - :create_service_image => false, - :service_image_name => 'manila-service-image', - }) } - - it 'does not create Glance image' do - is_expected.to_not contain_glance_image(req_params[:service_image_name]) + it_behaves_like 'manila::service_instance' end end end diff --git a/spec/defines/manila_type_set_spec.rb b/spec/defines/manila_type_set_spec.rb index b9282e2b..1ab3355b 100644 --- a/spec/defines/manila_type_set_spec.rb +++ b/spec/defines/manila_type_set_spec.rb @@ -31,19 +31,15 @@ describe 'manila::type_set' do end end - context 'on Debian platforms' do - let :facts do - @default_facts.merge({ :osfamily => 'Debian' }) + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge!(OSDefaults.get_facts()) + end + + it_behaves_like 'manila types' end - - it_configures 'manila types' - end - - context 'on RedHat platforms' do - let :facts do - @default_facts.merge({ :osfamily => 'RedHat' }) - end - - it_configures 'manila types' end end diff --git a/spec/defines/manila_type_spec.rb b/spec/defines/manila_type_spec.rb index 09fdd3e2..55f20d3c 100644 --- a/spec/defines/manila_type_spec.rb +++ b/spec/defines/manila_type_spec.rb @@ -35,19 +35,15 @@ describe 'manila::type' do end end - context 'on Debian platforms' do - let :facts do - @default_facts.merge({ :osfamily => 'Debian' }) + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge!(OSDefaults.get_facts()) + end + + it_behaves_like 'manila types' end - - it_configures 'manila types' - end - - context 'on RedHat platforms' do - let :facts do - @default_facts.merge({ :osfamily => 'RedHat' }) - end - - it_configures 'manila types' end end