From a86dbdb500b5b2f048d2575de5c1a865758014df Mon Sep 17 00:00:00 2001 From: Danilo Ramalho Date: Mon, 21 Sep 2015 19:23:01 -0300 Subject: [PATCH] Add acceptance tests for puppet-ansible. Add acceptance tests for puppet-ansible module so that once the module is applied we check if files were created and packages were installed. Co-Authored-By: Bruno Tavares Change-Id: Ic569a70737f7e9d0a86c14e1f299b308ab9d3986 --- .gitignore | 3 +++ Gemfile | 4 ++++ README.md | 7 +++++++ spec/acceptance/basic_spec.rb | 22 ++++++++++++++++++++++ spec/acceptance/files_spec.rb | 21 +++++++++++++++++++++ spec/acceptance/fixtures/default.pp | 1 + spec/acceptance/packages_spec.rb | 7 +++++++ 7 files changed, 65 insertions(+) create mode 100644 spec/acceptance/basic_spec.rb create mode 100644 spec/acceptance/files_spec.rb create mode 100644 spec/acceptance/fixtures/default.pp create mode 100644 spec/acceptance/packages_spec.rb 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