diff --git a/.gitignore b/.gitignore index dade81e..ea90996 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ Gemfile.lock .bundled_gems/ +log/ +junit/ +.vagrant/ diff --git a/Gemfile b/Gemfile index 96912da..1d021a1 100644 --- a/Gemfile +++ b/Gemfile @@ -27,4 +27,8 @@ group :development, :test do end +group :system_tests do + gem 'beaker-rspec', :require => false +end + # vim:ft=ruby diff --git a/README.md b/README.md index 815883b..afb21bd 100644 --- a/README.md +++ b/README.md @@ -3,3 +3,10 @@ ## Overview Configures Ansible. + +## Run Tests + +```` +bundle install +bundle exec rspec +```` diff --git a/spec/acceptance/basic_spec.rb b/spec/acceptance/basic_spec.rb new file mode 100644 index 0000000..607c6b6 --- /dev/null +++ b/spec/acceptance/basic_spec.rb @@ -0,0 +1,22 @@ +require 'spec_helper_acceptance' + +describe 'puppet-ansible module' do + def pp_path + base_path = File.dirname(__FILE__) + File.join(base_path, 'fixtures') + end + + def default_puppet_module + module_path = File.join(pp_path, 'default.pp') + File.read(module_path) + end + + it 'should work with no errors' do + apply_manifest(default_puppet_module, catch_failures: true) + end + + it 'should be idempotent' do + apply_manifest(default_puppet_module, catch_failures: true) + apply_manifest(default_puppet_module, catch_changes: true) + end +end diff --git a/spec/acceptance/files_spec.rb b/spec/acceptance/files_spec.rb new file mode 100644 index 0000000..6afdf30 --- /dev/null +++ b/spec/acceptance/files_spec.rb @@ -0,0 +1,21 @@ +require 'spec_helper_acceptance' + +describe 'required files' do + describe file('/etc/ansible/ansible.cfg') do + it { should be_file } + it { should be_owned_by 'root' } + it { should be_grouped_into 'root' } + its(:content) { should include 'library=/usr/share/ansible' } + end + + describe file('/usr/local/bin/puppet-inventory') do + it { should be_file } + it { should be_owned_by 'root' } + it { should be_grouped_into 'root' } + its(:content) { should include "'_meta': {'hostvars': dict()}," } + end + + describe file('/etc/logrotate.d/ansible') do + its(:content) { should include '/var/log/ansible.log' } + end +end diff --git a/spec/acceptance/fixtures/default.pp b/spec/acceptance/fixtures/default.pp new file mode 100644 index 0000000..741c5ec --- /dev/null +++ b/spec/acceptance/fixtures/default.pp @@ -0,0 +1 @@ +class { '::ansible': } diff --git a/spec/acceptance/packages_spec.rb b/spec/acceptance/packages_spec.rb new file mode 100644 index 0000000..6ea0948 --- /dev/null +++ b/spec/acceptance/packages_spec.rb @@ -0,0 +1,7 @@ +require 'spec_helper_acceptance' + +describe 'required python package' do + describe package('ansible') do + it { should be_installed.by('pip') } + end +end