From 8f2b017482a31ce950d3c6bcc4d5ebe1f2184ef2 Mon Sep 17 00:00:00 2001 From: ZhongShengping Date: Fri, 20 Jan 2017 17:06:18 +0800 Subject: [PATCH] Add unit test for client.pp 1) Add unit test for magnum::client class. 2) Fix package_ensure default value, the present should be enclosed in single quotation marks in order to indicate that it is string. Change-Id: I553491782e6c734ef8c6c15d1ba7fc4d5617e3a3 --- manifests/client.pp | 4 +-- spec/classes/magnum_client_spec.rb | 39 ++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 spec/classes/magnum_client_spec.rb diff --git a/manifests/client.pp b/manifests/client.pp index 638c152..e46983f 100644 --- a/manifests/client.pp +++ b/manifests/client.pp @@ -6,10 +6,10 @@ # # [*package_ensure*] # (optional) The state of the package -# Defaults to present +# Defaults to 'present' # class magnum::client ( - $package_ensure = present + $package_ensure = 'present' ) { include ::magnum::deps diff --git a/spec/classes/magnum_client_spec.rb b/spec/classes/magnum_client_spec.rb new file mode 100644 index 0000000..196cfef --- /dev/null +++ b/spec/classes/magnum_client_spec.rb @@ -0,0 +1,39 @@ +require 'spec_helper' + +describe 'magnum::client' do + + shared_examples_for 'magnum client' do + + it { is_expected.to contain_class('magnum::deps') } + it { is_expected.to contain_class('magnum::params') } + + it 'installs magnum client package' do + is_expected.to contain_package('python-magnumclient').with( + :ensure => 'present', + :name => platform_params[:client_package], + :tag => 'openstack', + ) + 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 + + let(:platform_params) do + case facts[:osfamily] + when 'Debian' + { :client_package => 'python-magnumclient' } + when 'RedHat' + { :client_package => 'python2-magnumclient' } + end + end + it_configures 'magnum client' + end + end + +end