Skip to content

Commit 9603d9a

Browse files
author
Ashley Penney
committed
Merge pull request #390 from apenney/add-more-tests
Add tests for all missing parameters.
2 parents 50f0ef8 + 757102b commit 9603d9a

8 files changed

+298
-57
lines changed

Modulefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ license 'Apache 2.0'
66
summary 'Mysql module'
77
description 'Mysql module'
88
project_page 'http://github.com/puppetlabs/puppetlabs-mysql'
9-
dependency 'puppetlabs/stdlib', '>= 2.2.1'
9+
dependency 'puppetlabs/stdlib', '>= 3.2.0'

spec/acceptance/mysql_backup_spec.rb

+9-5
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
context 'should work with no errors' do
55
it 'when configuring mysql backups' do
66
pp = <<-EOS
7-
class { 'mysql::server': override_options => { 'root_password' => 'password' } }
7+
class { 'mysql::server': root_password => 'password' }
88
mysql::db { 'backup1':
99
user => 'backup',
1010
password => 'secret',
@@ -31,13 +31,14 @@ class { 'mysql::server::backup':
3131
describe 'mysqlbackup.sh' do
3232
it 'should run mysqlbackup.sh with no errors' do
3333
shell("/usr/local/sbin/mysqlbackup.sh") do |r|
34-
expect(r.stderr).to eq("")
34+
expect(r.stderr).to eq("-- Warning: Skipping the data of table mysql.event. Specify the --events option explicitly.\n")
3535
end
3636
end
3737

3838
it 'should dump all databases to single file' do
39-
shell('ls /tmp/backups/ | grep -c "mysql_backup_backup1_[0-9][0-9]*-[0-9][0-9]*.sql.bz2"') do |r|
40-
expect(r.stdout).to match(/\d*[13579]/)
39+
shell('ls -l /tmp/backups/mysql_backup_*-*.sql.bz2 | wc -l') do |r|
40+
expect(r.stdout).to match(/1/)
41+
expect(r.exit_code).to be_zero
4142
end
4243
end
4344

@@ -48,7 +49,10 @@ class { 'mysql::server::backup':
4849
end
4950

5051
it 'creates at least one backup tarball' do
51-
expect(shell('ls /tmp/backups/ | grep -c "mysql_backup_backup1_[0-9][0-9]*-[0-9][0-9]*.sql.bz2"').stdout).to match(/\d*[02468]/)
52+
shell('ls -l /tmp/backups/mysql_backup_*-*.sql.bz2 | wc -l') do |r|
53+
expect(r.stdout).to match(/2/)
54+
expect(r.exit_code).to be_zero
55+
end
5256
end
5357
end
5458
end

spec/acceptance/mysql_bindings_spec.rb

+64-39
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,50 @@
11
require 'spec_helper_acceptance'
22

3-
describe 'mysql::bindings class' do
4-
osfamily = fact('osfamily')
5-
operatingsystem = fact('operatingsystem')
3+
osfamily = fact('osfamily')
4+
operatingsystem = fact('operatingsystem')
65

7-
case osfamily
8-
when 'RedHat'
9-
java_package = 'mysql-connector-java'
10-
perl_package = 'perl-DBD-MySQL'
11-
python_package = 'MySQL-python'
12-
ruby_package = 'ruby-mysql'
13-
when 'Suse'
14-
java_package = 'mysql-connector-java'
15-
perl_package = 'perl-DBD-MySQL'
16-
python_package = 'python-mysql'
17-
case operatingsystem
18-
when /OpenSuSE/
19-
ruby_package = 'rubygem-mysql'
20-
when /(SLES|SLED)/
21-
ruby_package = 'ruby-mysql'
22-
end
23-
when 'Debian'
24-
java_package = 'libmysql-java'
25-
perl_package = 'libdbd-mysql-perl'
26-
python_package = 'python-mysqldb'
27-
ruby_package = 'libmysql-ruby'
28-
when 'FreeBSD'
29-
java_package = 'databases/mysql-connector-java'
30-
perl_package = 'p5-DBD-mysql'
31-
python_package = 'databases/py-MySQLdb'
32-
ruby_package = 'ruby-mysql'
33-
else
34-
case operatingsystem
35-
when 'Amazon'
36-
java_package = 'mysql-connector-java'
6+
case osfamily
7+
when 'RedHat'
8+
java_package = 'mysql-connector-java'
9+
perl_package = 'perl-DBD-MySQL'
10+
php_package = 'php-mysql'
11+
python_package = 'MySQL-python'
12+
ruby_package = 'ruby-mysql'
13+
when 'Suse'
14+
java_package = 'mysql-connector-java'
15+
perl_package = 'perl-DBD-MySQL'
16+
php_package = 'apache2-mod_php5'
17+
python_package = 'python-mysql'
18+
case operatingsystem
19+
when /OpenSuSE/
20+
ruby_package = 'rubygem-mysql'
21+
when /(SLES|SLED)/
22+
ruby_package = 'ruby-mysql'
23+
end
24+
when 'Debian'
25+
java_package = 'libmysql-java'
26+
perl_package = 'libdbd-mysql-perl'
27+
php_package = 'php5-mysql'
28+
python_package = 'python-mysqldb'
29+
ruby_package = 'libmysql-ruby'
30+
when 'FreeBSD'
31+
java_package = 'databases/mysql-connector-java'
32+
perl_package = 'p5-DBD-mysql'
33+
php_package = 'php5-mysql'
34+
python_package = 'databases/py-MySQLdb'
35+
ruby_package = 'ruby-mysql'
36+
else
37+
case operatingsystem
38+
when 'Amazon'
39+
java_package = 'mysql-connector-java'
3740
perl_package = 'perl-DBD-MySQL'
41+
php_package = 'php5-mysql'
3842
python_package = 'MySQL-python'
3943
ruby_package = 'ruby-mysql'
40-
end
4144
end
45+
end
46+
47+
describe 'mysql::bindings class' do
4248

4349
describe 'running puppet code' do
4450
it 'should work with no errors' do
@@ -52,14 +58,29 @@ class { 'mysql::bindings': }
5258
end
5359
end
5460

55-
describe 'enabling bindings' do
61+
describe 'all parameters' do
5662
it 'should work with no errors' do
5763
pp = <<-EOS
5864
class { 'mysql::bindings':
59-
java_enable => true,
60-
perl_enable => true,
61-
python_enable => true,
62-
ruby_enable => true,
65+
java_enable => true,
66+
perl_enable => true,
67+
python_enable => true,
68+
ruby_enable => true,
69+
java_package_ensure => present,
70+
perl_package_ensure => present,
71+
php_package_ensure => present,
72+
python_package_ensure => present,
73+
ruby_package_ensure => present,
74+
java_package_name => #{java_package},
75+
perl_package_name => #{perl_package},
76+
php_package_name => #{php_package},
77+
python_package_name => #{python_package},
78+
ruby_package_name => #{ruby_package},
79+
java_package_provider => undef,
80+
perl_package_provider => undef,
81+
php_package_provider => undef,
82+
python_package_provider => undef,
83+
ruby_package_provider => undef,
6384
}
6485
EOS
6586

@@ -76,6 +97,10 @@ class { 'mysql::bindings':
7697
it { should be_installed }
7798
end
7899

100+
describe package(php_package) do
101+
it { should be_installed }
102+
end
103+
79104
describe package(python_package) do
80105
it { should be_installed }
81106
end

spec/acceptance/mysql_db_spec.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# Using puppet_apply as a helper
66
it 'should work with no errors' do
77
pp = <<-EOS
8-
class { 'mysql::server': override_options => { 'root_password' => 'password' } }
8+
class { 'mysql::server': root_password => 'password' }
99
mysql::db { 'spec1':
1010
user => 'root1',
1111
password => 'password',
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
require 'spec_helper_acceptance'
2+
3+
describe 'config location' do
4+
it 'creates the file elsewhere' do
5+
pp = <<-EOS
6+
class { 'mysql::server':
7+
config_file => '/etc/testmy.cnf',
8+
}
9+
EOS
10+
apply_manifest(pp, :catch_failures => true)
11+
end
12+
13+
describe file('/etc/testmy.cnf') do
14+
it { should be_file }
15+
end
16+
end
17+
18+
describe 'manage_config_file' do
19+
it 'wont reset the location of my.cnf' do
20+
pp = <<-EOS
21+
class { 'mysql::server':
22+
config_file => '/etc/my.cnf',
23+
manage_config_file => false,
24+
}
25+
EOS
26+
# Make sure this doesn't exist so we can test if puppet
27+
# readded it
28+
shell('rm /etc/my.cnf')
29+
apply_manifest(pp, :catch_failures => true)
30+
end
31+
32+
describe file('/etc/my.cnf') do
33+
it { should_not be_file }
34+
end
35+
end
36+
37+
describe 'resets' do
38+
it 'cleans up' do
39+
pp = <<-EOS
40+
class { 'mysql::server': }
41+
EOS
42+
apply_manifest(pp, :catch_failures => true)
43+
shell('rm /etc/testmy.cnf')
44+
end
45+
end

0 commit comments

Comments
 (0)