Add more spec test coverage
This commit adds full spec test coverage for - mysql::python - mysql - mysql::ruby - mysql::server
This commit is contained in:
parent
9779208b0a
commit
55e399db0d
4 changed files with 201 additions and 19 deletions
|
@ -1,9 +1,46 @@
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe 'mysql' do
|
describe 'mysql' do
|
||||||
|
|
||||||
|
describe 'on a debian based os' do
|
||||||
let :facts do
|
let :facts do
|
||||||
{ :osfamily => 'Debian'}
|
{ :osfamily => 'Debian'}
|
||||||
end
|
end
|
||||||
|
it { should contain_package('mysql_client').with(
|
||||||
it { should contain_class 'mysql' }
|
:name => 'mysql-client',
|
||||||
|
:ensure => 'present'
|
||||||
|
)}
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'on a redhat based os' do
|
||||||
|
let :facts do
|
||||||
|
{:osfamily => 'Redhat'}
|
||||||
|
end
|
||||||
|
it { should contain_package('mysql_client').with(
|
||||||
|
:name => 'mysql',
|
||||||
|
:ensure => 'present'
|
||||||
|
)}
|
||||||
|
describe 'when parameters are supplied' do
|
||||||
|
let :params do
|
||||||
|
{:package_ensure => 'latest', :package_name => 'mysql_client'}
|
||||||
|
end
|
||||||
|
it { should contain_package('mysql_client').with(
|
||||||
|
:name => 'mysql_client',
|
||||||
|
:ensure => 'latest'
|
||||||
|
)}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'on any other os' do
|
||||||
|
let :facts do
|
||||||
|
{:osfamily => 'foo'}
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should fail' do
|
||||||
|
expect do
|
||||||
|
subject
|
||||||
|
end.should raise_error(/Unsupported osfamily: foo/)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
46
spec/classes/mysql_python_spec.rb
Normal file
46
spec/classes/mysql_python_spec.rb
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe 'mysql::python' do
|
||||||
|
|
||||||
|
describe 'on a debian based os' do
|
||||||
|
let :facts do
|
||||||
|
{ :osfamily => 'Debian'}
|
||||||
|
end
|
||||||
|
it { should contain_package('python-mysqldb').with(
|
||||||
|
:name => 'python-mysqldb',
|
||||||
|
:ensure => 'present'
|
||||||
|
)}
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'on a redhat based os' do
|
||||||
|
let :facts do
|
||||||
|
{:osfamily => 'Redhat'}
|
||||||
|
end
|
||||||
|
it { should contain_package('python-mysqldb').with(
|
||||||
|
:name => 'MySQL-python',
|
||||||
|
:ensure => 'present'
|
||||||
|
)}
|
||||||
|
describe 'when parameters are supplied' do
|
||||||
|
let :params do
|
||||||
|
{:package_ensure => 'latest', :package_name => 'python-mysql'}
|
||||||
|
end
|
||||||
|
it { should contain_package('python-mysqldb').with(
|
||||||
|
:name => 'python-mysql',
|
||||||
|
:ensure => 'latest'
|
||||||
|
)}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'on any other os' do
|
||||||
|
let :facts do
|
||||||
|
{:osfamily => 'foo'}
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should fail' do
|
||||||
|
expect do
|
||||||
|
subject
|
||||||
|
end.should raise_error(/Unsupported osfamily: foo/)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
53
spec/classes/mysql_ruby_spec.rb
Normal file
53
spec/classes/mysql_ruby_spec.rb
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe 'mysql::ruby' do
|
||||||
|
|
||||||
|
describe 'on a debian based os' do
|
||||||
|
let :facts do
|
||||||
|
{ :osfamily => 'Debian'}
|
||||||
|
end
|
||||||
|
it { should contain_package('ruby_mysql').with(
|
||||||
|
:name => 'libmysql-ruby',
|
||||||
|
:ensure => 'present',
|
||||||
|
# TODO is this what we want? does this actually work
|
||||||
|
# if the provider is blank
|
||||||
|
:provider => ''
|
||||||
|
)}
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'on a redhat based os' do
|
||||||
|
let :facts do
|
||||||
|
{:osfamily => 'Redhat'}
|
||||||
|
end
|
||||||
|
it { should contain_package('ruby_mysql').with(
|
||||||
|
:name => 'ruby-mysql',
|
||||||
|
:ensure => 'present',
|
||||||
|
:provider => 'gem'
|
||||||
|
)}
|
||||||
|
describe 'when parameters are supplied' do
|
||||||
|
let :params do
|
||||||
|
{:package_ensure => 'latest',
|
||||||
|
:package_provider => 'zypper',
|
||||||
|
:package_name => 'mysql_ruby'}
|
||||||
|
end
|
||||||
|
it { should contain_package('ruby_mysql').with(
|
||||||
|
:name => 'mysql_ruby',
|
||||||
|
:ensure => 'latest',
|
||||||
|
:provider => 'zypper'
|
||||||
|
)}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'on any other os' do
|
||||||
|
let :facts do
|
||||||
|
{:osfamily => 'foo'}
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should fail' do
|
||||||
|
expect do
|
||||||
|
subject
|
||||||
|
end.should raise_error(/Unsupported osfamily: foo/)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
|
@ -1,22 +1,68 @@
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe 'mysql::server' do
|
describe 'mysql::server' do
|
||||||
let (:facts) do
|
|
||||||
{ :osfamily => 'Debian' }
|
let :constant_parameter_defaults do
|
||||||
|
{:config_hash => {},
|
||||||
|
:package_ensure => 'present',
|
||||||
|
:package_name => 'mysql-server'
|
||||||
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
it { should contain_package('mysql-server').with_ensure('present') }
|
describe 'with osfamily specific defaults' do
|
||||||
it do should contain_service('mysqld').with(
|
{
|
||||||
'name' => 'mysql',
|
'Debian' => {
|
||||||
'ensure' => 'running',
|
:service_name => 'mysql'
|
||||||
'enable' => 'true'
|
},
|
||||||
) end
|
'Redhat' => {
|
||||||
|
:service_name => 'mysqld'
|
||||||
|
}
|
||||||
|
}.each do |osfamily, osparams|
|
||||||
|
|
||||||
it { should contain_class 'mysql::config' }
|
describe "when osfamily is #{osfamily}" do
|
||||||
it do should contain_exec('mysqld-restart').with(
|
|
||||||
'command' => 'service mysql restart',
|
let :facts do
|
||||||
'logoutput' => 'on_failure',
|
{:osfamily => osfamily}
|
||||||
'path' => '/sbin/:/usr/sbin/:/usr/bin/:/bin/',
|
end
|
||||||
'refreshonly' => 'true'
|
|
||||||
) end
|
[
|
||||||
|
{},
|
||||||
|
{
|
||||||
|
:package_name => 'dans_package',
|
||||||
|
:package_ensure => 'latest',
|
||||||
|
:service_name => 'dans_service',
|
||||||
|
:config_hash => {'root_password' => 'foo'}
|
||||||
|
}
|
||||||
|
].each do |passed_params|
|
||||||
|
|
||||||
|
describe "with #{passed_params == {} ? 'default' : 'specified'} parameters" do
|
||||||
|
|
||||||
|
let :parameter_defaults do
|
||||||
|
constant_parameter_defaults.merge(osparams)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
let :params do
|
||||||
|
passed_params
|
||||||
|
end
|
||||||
|
|
||||||
|
let :param_values do
|
||||||
|
parameter_defaults.merge(params)
|
||||||
|
end
|
||||||
|
|
||||||
|
it { should contain_package('mysql-server').with(
|
||||||
|
:name => param_values[:package_name],
|
||||||
|
:ensure => param_values[:package_ensure]
|
||||||
|
)}
|
||||||
|
|
||||||
|
it { should contain_service('mysqld').with(
|
||||||
|
:name => param_values[:service_name],
|
||||||
|
:ensure => 'running',
|
||||||
|
:enable => 'true',
|
||||||
|
:require => 'Package[mysql-server]'
|
||||||
|
)}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue