diff --git a/spec/classes/cloudkitty_db_spec.rb b/spec/classes/cloudkitty_db_spec.rb index 64e9af6..4a2cb3f 100644 --- a/spec/classes/cloudkitty_db_spec.rb +++ b/spec/classes/cloudkitty_db_spec.rb @@ -4,7 +4,9 @@ describe 'cloudkitty::db' do shared_examples 'cloudkitty::db' do context 'with default parameters' do - it { is_expected.to contain_oslo__db('cloudkitty_config').with( + it { should contain_class('cloudkitty::deps') } + + it { should contain_oslo__db('cloudkitty_config').with( :db_max_retries => '', :connection => 'sqlite:////var/lib/cloudkitty/cloudkitty.sqlite', :idle_timeout => '', @@ -19,7 +21,8 @@ describe 'cloudkitty::db' do context 'with specific parameters' do let :params do - { :database_connection => 'mysql+pymysql://cloudkitty:cloudkitty@localhost/cloudkitty', + { + :database_connection => 'mysql+pymysql://cloudkitty:cloudkitty@localhost/cloudkitty', :database_idle_timeout => '3601', :database_min_pool_size => '2', :database_db_max_retries => '-1', @@ -31,7 +34,9 @@ describe 'cloudkitty::db' do } end - it { is_expected.to contain_oslo__db('cloudkitty_config').with( + it { should contain_class('cloudkitty::deps') } + + it { should contain_oslo__db('cloudkitty_config').with( :db_max_retries => '-1', :connection => 'mysql+pymysql://cloudkitty:cloudkitty@localhost/cloudkitty', :idle_timeout => '3601', @@ -43,79 +48,17 @@ describe 'cloudkitty::db' do :pool_timeout => '21', )} end - - context 'with postgresql backend' do - let :params do - { :database_connection => 'postgresql://cloudkitty:cloudkitty@localhost/cloudkitty', } - end - - it 'install the proper backend package' do - is_expected.to contain_package('python-psycopg2').with(:ensure => 'present') - end - - end - - context 'with MySQL-python library as backend package' do - let :params do - { :database_connection => 'mysql://cloudkitty:cloudkitty@localhost/cloudkitty', } - end - - it { is_expected.to contain_package('python-mysqldb').with(:ensure => 'present') } - end - - context 'with incorrect database_connection string' do - let :params do - { :database_connection => 'foodb://cloudkitty:cloudkitty@localhost/cloudkitty', } - end - - it_raises 'a Puppet::Error', /validate_re/ - end - - context 'with incorrect pymysql database_connection string' do - let :params do - { :database_connection => 'foo+pymysql://cloudkitty:cloudkitty@localhost/cloudkitty', } - end - - it_raises 'a Puppet::Error', /validate_re/ - end - - end - - shared_examples_for 'cloudkitty::db on Debian' do - context 'using pymysql driver' do - let :params do - { :database_connection => 'mysql+pymysql://cloudkitty:cloudkitty@localhost/cloudkitty', } - end - - it 'install the proper backend package' do - is_expected.to contain_package('python-pymysql').with( - :ensure => 'present', - :name => 'python-pymysql', - :tag => 'openstack' - ) - end - end - end - - shared_examples_for 'cloudkitty::db on RedHat' do - context 'using pymysql driver' do - let :params do - { :database_connection => 'mysql+pymysql://cloudkitty:cloudkitty@localhost/cloudkitty', } - end - - end end on_supported_os({ - :supported_os => OSDefaults.get_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_configures 'cloudkitty::db' - it_configures "cloudkitty::db on #{facts[:osfamily]}" + it_behaves_like 'cloudkitty::db' end end end