From 528e4ebccb1026e31c9ac493db4d6f8511825147 Mon Sep 17 00:00:00 2001 From: Glauco Oliveira Date: Thu, 3 Sep 2015 15:04:19 -0300 Subject: [PATCH] Add acceptance tests for puppet-diskimage_builder. Add acceptance tests for puppet-diskimage_builder module so that once the module is applied we check if packages were installed. Change-Id: I37a7e4ae9f1a380568c0aa4f09cef1dfb7c4aaa9 Co-Authored-By: Bruno Tavares Co-Authored-By: Danilo Ramalho --- .gitignore | 3 ++ Gemfile | 4 ++ spec/acceptance/basic_spec.rb | 64 +++++++++++++++++++++++ spec/acceptance/fixtures/default.pp | 1 + spec/acceptance/fixtures/preconditions.pp | 7 +++ 5 files changed, 79 insertions(+) create mode 100644 spec/acceptance/basic_spec.rb create mode 100644 spec/acceptance/fixtures/default.pp create mode 100644 spec/acceptance/fixtures/preconditions.pp 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/spec/acceptance/basic_spec.rb b/spec/acceptance/basic_spec.rb new file mode 100644 index 0000000..aeb43db --- /dev/null +++ b/spec/acceptance/basic_spec.rb @@ -0,0 +1,64 @@ +require 'spec_helper_acceptance' + +describe 'puppet-diskimage_builder module', :if => ['debian', 'ubuntu'].include?(os[:family]) do + def pp_path + base_path = File.dirname(__FILE__) + File.join(base_path, 'fixtures') + end + + def preconditions_puppet_module + module_path = File.join(pp_path, 'preconditions.pp') + File.read(module_path) + end + + def default_puppet_module + module_path = File.join(pp_path, 'default.pp') + File.read(module_path) + end + + before(:all) do + apply_manifest(preconditions_puppet_module, catch_failures: true) + 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_changes: true) + end + + describe 'packages' do + describe 'required OS packages' do + required_packages = [ + package('debian-keyring'), + package('debootstrap'), + package('kpartx'), + package('python-lzma'), + package('python-yaml'), + package('qemu-utils'), + package('ubuntu-keyring'), + package('vhd-util'), + package('yum'), + package('yum-utils'), + ] + + required_packages.each do |package| + describe package do + it { should be_installed } + end + end + end + + describe 'required Python packages' do + describe package('diskimage-builder') do + it { should be_installed.by('pip') } + end + end + + describe ppa('openstack-ci-core/vhd-util') do + it { should exist } + it { should be_enabled } + end + end +end diff --git a/spec/acceptance/fixtures/default.pp b/spec/acceptance/fixtures/default.pp new file mode 100644 index 0000000..d4811fc --- /dev/null +++ b/spec/acceptance/fixtures/default.pp @@ -0,0 +1 @@ +class { '::diskimage_builder': } diff --git a/spec/acceptance/fixtures/preconditions.pp b/spec/acceptance/fixtures/preconditions.pp new file mode 100644 index 0000000..49d82c2 --- /dev/null +++ b/spec/acceptance/fixtures/preconditions.pp @@ -0,0 +1,7 @@ +package { 'ssl-cert': + ensure => present, +} + +package { 'software-properties-common': + ensure => present, +}