diff --git a/.fixtures.yml b/.fixtures.yml new file mode 100644 index 0000000..72cc767 --- /dev/null +++ b/.fixtures.yml @@ -0,0 +1,5 @@ +fixtures: + repositories: + stdlib: "https://github.com/puppetlabs/puppetlabs-stdlib.git" + concat: "https://github.com/puppetlabs/puppetlabs-concat.git" + motd: "https://github.com/torian/puppet-motd.git" diff --git a/Gemfile b/Gemfile index 462f94e..b8bc1fc 100644 --- a/Gemfile +++ b/Gemfile @@ -1,6 +1,6 @@ -source :rubygems +source 'https://rubygems.org' -gem 'rake', '~> 0.8.7' +gem 'rake', '~> 10.3' gem 'puppet', '~> 2.7' -gem 'rspec-puppet', '~> 0.1.6' +gem 'rspec-puppet', '~> 1.0.1' gem 'puppetlabs_spec_helper', '~> 0.4.1' diff --git a/Gemfile.lock b/Gemfile.lock deleted file mode 100644 index 98e5146..0000000 --- a/Gemfile.lock +++ /dev/null @@ -1,35 +0,0 @@ -GEM - remote: http://rubygems.org/ - specs: - diff-lcs (1.2.4) - facter (1.7.2) - metaclass (0.0.1) - mocha (0.14.0) - metaclass (~> 0.0.1) - puppet (2.7.22) - facter (~> 1.5) - puppetlabs_spec_helper (0.4.1) - mocha (>= 0.10.5) - rake - rspec (>= 2.9.0) - rspec-puppet (>= 0.1.1) - rake (0.8.7) - rspec (2.13.0) - rspec-core (~> 2.13.0) - rspec-expectations (~> 2.13.0) - rspec-mocks (~> 2.13.0) - rspec-core (2.13.1) - rspec-expectations (2.13.0) - diff-lcs (>= 1.1.3, < 2.0) - rspec-mocks (2.13.1) - rspec-puppet (0.1.6) - rspec - -PLATFORMS - ruby - -DEPENDENCIES - puppet (~> 2.7) - puppetlabs_spec_helper (~> 0.4.1) - rake (~> 0.8.7) - rspec-puppet (~> 0.1.6) diff --git a/README.md b/README.md index b2de422..8c9ab82 100644 --- a/README.md +++ b/README.md @@ -143,6 +143,19 @@ TODO the schemas specified by *index_inc*. It just adds an include to slapd * Need support for extending ACLs +Run Tests +--------- +To run the tests you need bundler (```apt-get install bundler``` or see http://bundler.io/). + +Install needed gems with bundler: + + bundler install --path=vendor + +Run the tests with bundler: + + bundler exec rake spec + + CopyLeft --------- diff --git a/Rakefile b/Rakefile index 4c80c5a..80d2370 100644 --- a/Rakefile +++ b/Rakefile @@ -1,8 +1,4 @@ +require 'puppetlabs_spec_helper/rake_tasks' +require 'puppet-lint/tasks/puppet-lint' -require 'rake' -require 'rspec/core/rake_task' - -RSpec::Core::RakeTask.new(:spec) do |t| - t.pattern = 'spec/*/*_spec.rb' - t.rspec_opts = File.read("spec/spec.opts").chomp || "" -end +PuppetLint.configuration.ignore_paths = ["spec/**/*.pp", "vendor/**/*.pp"] diff --git a/spec/classes/ldap_client_spec.rb b/spec/classes/ldap_client_spec.rb index 126615e..c3778be 100644 --- a/spec/classes/ldap_client_spec.rb +++ b/spec/classes/ldap_client_spec.rb @@ -5,62 +5,63 @@ describe 'ldap::client' do - oses.keys.each do |os| + oses.keys.each do |os| - describe "Running on #{os}" do + describe "Running on #{os}" do - let(:facts) { { - :osfamily => oses[os][:osfamily], - :operatingsystem => oses[os][:operatingsystem], - :operatingsystemmajrelease => oses[os][:operatingsystemmajrelease], - :architecture => oses[os][:architecture], - } } + let(:facts) { { + :osfamily => oses[os][:osfamily], + :operatingsystem => oses[os][:operatingsystem], + :operatingsystemmajrelease => oses[os][:operatingsystemmajrelease], + :architecture => oses[os][:architecture], + :concat_basedir => '/nonexistent', + } } - let(:params) { { - :uri => 'ldap://ldap.example.com', - :base => 'dc=suffix', - } } - - it { should include_class('ldap::params') } - it { should contain_file(oses[os][:utils_cfg]) } + let(:params) { { + :uri => 'ldap://ldap.example.com', + :base => 'dc=suffix', + } } - context 'Motd disabled (default)' do - it { should_not contain_motd__register('ldap') } - end - context 'Motd enabled' do - let(:params) { { - :uri => 'ldap://ldap.example.com', - :base => 'dc=suffix', - :enable_motd => true - } } - it { should contain_motd__register('ldap') } - end + it { should contain_class('ldap::params') } + it { should contain_file(oses[os][:utils_cfg]) } - context 'SSL Enabled with certificate filename' do - let(:params) { { - :uri => 'ldap://ldap.example.com', - :base => 'dc=suffix', - :ssl => true, - :ssl_cert => oses[os][:ssl_cert], - } } - it { should contain_file("#{oses[os][:cacertdir]}/#{oses[os][:ssl_cert]}") } - end + context 'Motd disabled (default)' do + it { should_not contain_motd__register('ldap') } + end + context 'Motd enabled' do + let(:params) { { + :uri => 'ldap://ldap.example.com', + :base => 'dc=suffix', + :enable_motd => true + } } + it { should contain_motd__register('ldap') } + end - context 'SSL Enabled without certificate' do - let(:params) { { - :uri => 'ldap://ldap.example.com', - :base => 'dc=suffix', - :ssl => true, - } } - it { expect { - should contain_file("#{oses[os][:cacertdir]}/#{oses[os][:ssl_cert]}") - }.to raise_error(Puppet::Error, /^When ssl is.*/) - } + context 'SSL Enabled with certificate filename' do + let(:params) { { + :uri => 'ldap://ldap.example.com', + :base => 'dc=suffix', + :ssl => true, + :ssl_cert => oses[os][:ssl_cert], + } } + it { should contain_file("#{oses[os][:cacertdir]}/#{oses[os][:ssl_cert]}") } + end - end + context 'SSL Enabled without certificate' do + let(:params) { { + :uri => 'ldap://ldap.example.com', + :base => 'dc=suffix', + :ssl => true, + } } + it { expect { + should contain_file("#{oses[os][:cacertdir]}/#{oses[os][:ssl_cert]}") + }.to raise_error(Puppet::Error, /^When ssl is.*/) + } - end + end - end + end + + end end diff --git a/spec/classes/ldap_server_master_spec.rb b/spec/classes/ldap_server_master_spec.rb index e143209..89e69eb 100644 --- a/spec/classes/ldap_server_master_spec.rb +++ b/spec/classes/ldap_server_master_spec.rb @@ -1,57 +1,58 @@ - + require 'spec_helper' oses = @oses describe 'ldap::server::master' do - + oses.keys.each do |os| - - describe "Running on #{os}" do - - let(:facts) { { - :osfamily => oses[os][:osfamily], - :operatingsystem => oses[os][:operatingsystem], - :operatingsystemmajrelease => oses[os][:operatingsystemmajrelease], - :architecture => oses[os][:architecture], + + describe "Running on #{os}" do + + let(:facts) { { + :osfamily => oses[os][:osfamily], + :operatingsystem => oses[os][:operatingsystem], + :operatingsystemmajrelease => oses[os][:operatingsystemmajrelease], + :architecture => oses[os][:architecture], + :concat_basedir => '/nonexistent', } } - - let(:params) { { + + let(:params) { { :suffix => 'dc=example,dc=com', :rootpw => 'asdqw', } } - - it { should include_class('ldap') } - it { should contain_service(oses[os][:service]) } - it { should contain_package(oses[os][:server_pkg]) } - it { should contain_file(oses[os][:server_cfg]) } - - context 'Motd disabled (default)' do - it { should_not contain_motd__register('ldap::server::master') } - end - - context 'Motd enabled' do - let(:params) { { - :suffix => 'dc=example,dc=com', - :rootpw => 'asdqw', - :enable_motd => true - } } - it { should contain_motd__register('ldap::server::master') } - end - end - end - - describe "Running on unsupported OS" do - let(:facts) { { :osfamily => 'solaris' } } - let(:params) { { - :suffix => 'dc=example,dc=com', - :rootpw => 'asdqw', - } } - it { - expect { - should include_class('ldap') - }.to raise_error(Puppet::Error, /^Operating system.*/) - } - end + + it { should contain_class('ldap') } + it { should contain_service(oses[os][:service]) } + it { should contain_package(oses[os][:server_pkg]) } + it { should contain_file(oses[os][:server_cfg]) } + + context 'Motd disabled (default)' do + it { should_not contain_motd__register('ldap::server::master') } + end + + context 'Motd enabled' do + let(:params) { { + :suffix => 'dc=example,dc=com', + :rootpw => 'asdqw', + :enable_motd => true + } } + it { should contain_motd__register('ldap::server::master') } + end + end + end + + describe "Running on unsupported OS" do + let(:facts) { { :osfamily => 'solaris' } } + let(:params) { { + :suffix => 'dc=example,dc=com', + :rootpw => 'asdqw', + } } + it { + expect { + should contain_class('ldap') + }.to raise_error(Puppet::Error, /^Operating system.*/) + } + end end diff --git a/spec/classes/ldap_server_slave_spec.rb b/spec/classes/ldap_server_slave_spec.rb index f7c9173..dbcb5e2 100644 --- a/spec/classes/ldap_server_slave_spec.rb +++ b/spec/classes/ldap_server_slave_spec.rb @@ -1,4 +1,4 @@ - + require 'spec_helper' oses = @oses @@ -6,17 +6,18 @@ describe 'ldap::server::slave' do oses.keys.each do |os| - - describe "Running on #{os}" do - let(:facts) { { - :osfamily => oses[os][:osfamily], - :operatingsystem => oses[os][:operatingsystem], - :operatingsystemmajrelease => oses[os][:operatingsystemmajrelease], - :architecture => oses[os][:architecture], + describe "Running on #{os}" do + + let(:facts) { { + :osfamily => oses[os][:osfamily], + :operatingsystem => oses[os][:operatingsystem], + :operatingsystemmajrelease => oses[os][:operatingsystemmajrelease], + :architecture => oses[os][:architecture], + :concat_basedir => '/nonexistent', } } - - let(:params) { { + + let(:params) { { :suffix => 'dc=example,dc=com', :rootpw => 'rootpwsuperpass', :sync_rid => 1, @@ -25,14 +26,14 @@ :sync_binddn => 'cn=sync,dc=example,dc=com', :sync_bindpw => 'password', } } - - it { should include_class('ldap') } - it { should contain_package(oses[os][:server_pkg]) } - it { should contain_service(oses[os][:service]) } - it { should contain_file(oses[os][:server_cfg]) } - context 'Motd disabled (default)' do - let(:params) { { + it { should contain_class('ldap') } + it { should contain_package(oses[os][:server_pkg]) } + it { should contain_service(oses[os][:service]) } + it { should contain_file(oses[os][:server_cfg]) } + + context 'Motd disabled (default)' do + let(:params) { { :suffix => 'dc=example,dc=com', :rootpw => 'rootpwsuperpass', :sync_rid => 1, @@ -41,11 +42,11 @@ :sync_binddn => 'cn=sync,dc=example,dc=com', :sync_bindpw => 'password', } } - it { should_not contain_motd__register('ldap::server::master') } - end - - context 'Motd enabled' do - let(:params) { { + it { should_not contain_motd__register('ldap::server::master') } + end + + context 'Motd enabled' do + let(:params) { { :suffix => 'dc=example,dc=com', :rootpw => 'rootpwsuperpass', :sync_rid => 1, @@ -55,15 +56,15 @@ :sync_bindpw => 'password', :enable_motd => true, } } - - it { should contain_motd__register('ldap::server::slave') } - end - end - end - - describe "Running on unsupported OS" do - let(:facts) { { :osfamily => 'solaris' } } - let(:params) { { + + it { should contain_motd__register('ldap::server::slave') } + end + end + end + + describe "Running on unsupported OS" do + let(:facts) { { :osfamily => 'solaris' } } + let(:params) { { :suffix => 'dc=example,dc=com', :rootpw => 'rootpwsuperpass', :sync_rid => 1, @@ -73,11 +74,11 @@ :sync_bindpw => 'password', } } - it { - expect { - should include_class('ldap') - }.to raise_error(Puppet::Error, /^Operating system.*/) - } - end + it { + expect { + should contain_class('ldap') + }.to raise_error(Puppet::Error, /^Operating system.*/) + } + end end diff --git a/spec/classes/ldap_spec.rb b/spec/classes/ldap_spec.rb index a259091..7da1a5a 100644 --- a/spec/classes/ldap_spec.rb +++ b/spec/classes/ldap_spec.rb @@ -5,26 +5,27 @@ describe 'ldap' do - oses.keys.each do |os| + oses.keys.each do |os| - describe "Running on #{os}" do + describe "Running on #{os}" do - let(:facts) { { - :osfamily => oses[os][:osfamily], - :operatingsystem => oses[os][:operatingsystem], - :operatingsystemmajrelease => oses[os][:operatingsystemmajrelease], - :architecture => oses[os][:architecture], - } } + let(:facts) { { + :osfamily => oses[os][:osfamily], + :operatingsystem => oses[os][:operatingsystem], + :operatingsystemmajrelease => oses[os][:operatingsystemmajrelease], + :architecture => oses[os][:architecture], + :concat_basedir => '/nonexistent', + } } - it { should include_class('ldap::params') } + it { should contain_class('ldap::params') } context 'Ensure is set to present' do - let(:params) { { + let(:params) { { :ensure => 'present', } } - it 'install required packages ' do + it 'install required packages ' do should contain_package(oses[os][:utils_pkg]).with({ 'ensure' => 'present', }) @@ -34,11 +35,11 @@ context 'Ensure is set to absent' do - let(:params) { { + let(:params) { { :ensure => 'absent', } } - it 'do not install required packages ' do + it 'do not install required packages ' do should contain_package(oses[os][:utils_pkg]).with({ 'ensure' => 'absent', }) @@ -48,7 +49,7 @@ context 'Ensure is not set' do - it 'install required packages ' do + it 'install required packages ' do should contain_package(oses[os][:utils_pkg]).with({ 'ensure' => 'present', }) @@ -56,8 +57,8 @@ end - end + end - end + end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index acdd45f..96742c7 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,4 +1,4 @@ -require 'rspec-puppet' +require 'puppetlabs_spec_helper/module_spec_helper' fixture_path = File.expand_path(File.join(__FILE__, '..', 'fixtures'))