Skip to content

Commit

Permalink
Merge pull request #887 from treydock/acceptance-tests
Browse files Browse the repository at this point in the history
(GH-884) Update acceptance testing
  • Loading branch information
ghoneycutt authored Apr 26, 2018
2 parents cb5a083 + 69e6a13 commit 33f6c91
Show file tree
Hide file tree
Showing 19 changed files with 265 additions and 170 deletions.
50 changes: 49 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,56 @@ matrix:
include:
- rvm: 2.1.9
env: PUPPET_GEM_VERSION="~> 4"
- rvm: 2.4.1
- rvm: 2.4.3
env: PUPPET_GEM_VERSION="~> 5"
- rvm: 2.4.2
sudo: required
services: docker
env: BEAKER_set="centos-6"
bundler_args:
script: bundle exec rake beaker
- rvm: 2.4.2
sudo: required
services: docker
env: BEAKER_set="centos-7"
bundler_args:
script: bundle exec rake beaker
- rvm: 2.4.2
sudo: required
services: docker
env: BEAKER_set="debian-7"
bundler_args:
script: bundle exec rake beaker
- rvm: 2.4.2
sudo: required
services: docker
env: BEAKER_set="debian-8"
bundler_args:
script: bundle exec rake beaker
- rvm: 2.4.2
sudo: required
services: docker
env: BEAKER_set="debian-9"
bundler_args:
script: bundle exec rake beaker
- rvm: 2.4.2
sudo: required
services: docker
env: BEAKER_set="ubuntu-1404"
bundler_args:
script: bundle exec rake beaker
- rvm: 2.4.2
sudo: required
services: docker
env: BEAKER_set="ubuntu-1604"
bundler_args:
script: bundle exec rake beaker
- rvm: 2.4.2
sudo: required
services: docker
env: BEAKER_set="amazonlinux-201703"
bundler_args:
script: bundle exec rake beaker

notifications:
email: false
12 changes: 7 additions & 5 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
source ENV['GEM_SOURCE'] || "https://rubygems.org"

if puppetversion = ENV['PUPPET_GEM_VERSION']
if puppetversion = ENV['PUPPET_GEM_VERSION'] || "~> 5.x"
gem 'puppet', puppetversion, :require => false
else
gem 'puppet', :require => false
Expand All @@ -16,7 +16,7 @@ group :development, :unit_tests do
gem 'rake', '< 11.0.0'
gem 'rspec-puppet', '~> 2.5.0', :require => false
gem 'rspec-mocks', :require => false
gem 'puppetlabs_spec_helper', '>= 2.0.0', :require => false
gem 'puppetlabs_spec_helper', '>= 2.7.0', :require => false
gem 'puppet-lint', "~> 2.0", :require => false
gem 'json', "~> 1.8.3", :require => false
gem 'json_pure', "~> 1.8.3", :require => false
Expand Down Expand Up @@ -46,9 +46,11 @@ group :documentation do
end

group :system_tests do
gem 'beaker-rspec', :require => false
gem 'serverspec', :require => false
gem 'vagrant-wrapper', :require => false
gem 'beaker', :require => false
gem 'beaker-rspec', :require => false
gem 'serverspec', :require => false
gem 'beaker-puppet_install_helper', :require => false
gem 'beaker-module_install_helper', :require => false
end

group :development do
Expand Down
58 changes: 9 additions & 49 deletions spec/acceptance/class_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,24 +23,6 @@ class { 'sensu':}

context 'server => true, api => true' do
it 'should work with no errors' do
pp = <<-EOS
class { 'rabbitmq':
ssl => false,
delete_guest_user => true,
}
-> rabbitmq_vhost { 'sensu': }
-> rabbitmq_user { 'sensu': password => 'secret' }
-> rabbitmq_user_permissions { 'sensu@sensu':
configure_permission => '.*',
read_permission => '.*',
write_permission => '.*',
}
class { 'redis': }
EOS

# Set up dependencies
apply_manifest(pp, :catch_failures => true)

pp = <<-EOS
class { 'sensu':
server => true,
Expand Down Expand Up @@ -70,34 +52,11 @@ class { 'sensu':
it { is_expected.to be_running }
it { is_expected.to be_enabled }
end

describe command('curl 127.0.0.1:4567/info') do
its(:exit_status) { should eq 0 }
its(:stdout) { should match /sensu.*version/ }
end
end # server and api

if ENV['SE_USER'] && ENV['SE_PASS']
context 'enterprise => true and enterprise_dashboard => true' do
it 'should work with no errors' do
pp = <<-EOS
class { 'rabbitmq':
ssl => false,
delete_guest_user => true,
}
-> rabbitmq_vhost { 'sensu': }
-> rabbitmq_user { 'sensu': password => 'secret' }
-> rabbitmq_user_permissions { 'sensu@sensu':
configure_permission => '.*',
read_permission => '.*',
write_permission => '.*',
}
class { 'redis': }
EOS

# Set up dependencies
apply_manifest(pp, :catch_failures => true)

pp = <<-EOS
class { 'sensu':
enterprise => true,
Expand All @@ -107,14 +66,20 @@ class { 'sensu':
rabbitmq_password => 'secret',
rabbitmq_host => '127.0.0.1',
}
sensu::enterprise::dashboard::api { 'sensu.example.com':
datacenter => 'example-dc',
}
EOS

# Run it twice and test for idempotency
apply_manifest(pp, :catch_failures => true)
apply_manifest(pp, :catch_failures => true)
# sensu-enterprise sets incorrect perms on .keep files
apply_manifest(pp, :catch_changes => true)
shell('sleep 15') # allow sensu-enterprise to come up
end

describe file('/etc/sensu/dashboard.json') do
it { is_expected.to be_file }
its(:content) { should match /name.*?example-dc/ }
its(:content) { should match /host.*?sensu\.example\.com/ }
end

describe service('sensu-server') do
Expand All @@ -141,11 +106,6 @@ class { 'sensu':
it { is_expected.to_not be_running }
it { is_expected.to_not be_enabled }
end

describe command('curl 127.0.0.1:4567/info') do
its(:exit_status) { should eq 0 }
its(:stdout) { should match(/sensu.*version/) }
end
end # enterprise and enterprise_dashboard
end

Expand Down
39 changes: 0 additions & 39 deletions spec/acceptance/enterprise/dashboard/api_spec.rb

This file was deleted.

20 changes: 20 additions & 0 deletions spec/acceptance/nodesets/amazonlinux-201703.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
HOSTS:
amazonlinux-201703:
roles:
- agent
platform: el-6-x86_64
hypervisor: docker
image: amazonlinux:2017.03
docker_preserve_image: true
docker_cmd:
- '/sbin/init'
docker_image_commands:
- 'yum install -y tar wget cronie git upstart'
docker_container_name: 'sensu-amazonlinux-201703'
CONFIG:
log_level: debug
type: foss
ssh:
password: root
auth_methods: ["password"]

20 changes: 20 additions & 0 deletions spec/acceptance/nodesets/centos-6.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
HOSTS:
centos-6:
roles:
- agent
platform: el-6-x86_64
hypervisor: docker
image: centos:6
docker_preserve_image: true
docker_cmd:
- '/sbin/init'
docker_image_commands:
- 'yum install -y tar wget cronie git'
docker_container_name: 'sensu-el6'
CONFIG:
log_level: debug
type: foss
ssh:
password: root
auth_methods: ["password"]

11 changes: 0 additions & 11 deletions spec/acceptance/nodesets/centos-65-x64.yml

This file was deleted.

20 changes: 20 additions & 0 deletions spec/acceptance/nodesets/centos-7.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
HOSTS:
centos-7:
roles:
- agent
platform: el-7-x86_64
hypervisor: docker
image: centos:7
docker_preserve_image: true
docker_cmd:
- '/usr/sbin/init'
docker_image_commands:
- 'yum install -y tar wget cronie git iproute'
docker_container_name: 'sensu-el7'
CONFIG:
log_level: debug
type: foss
ssh:
password: root
auth_methods: ["password"]

11 changes: 0 additions & 11 deletions spec/acceptance/nodesets/centos-70-x64.yml

This file was deleted.

25 changes: 25 additions & 0 deletions spec/acceptance/nodesets/debian-7.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
HOSTS:
debian-7:
roles:
- agent
platform: debian-7-amd64
hypervisor: docker
image: debian:7
docker_preserve_image: true
docker_cmd:
- '/sbin/init'
docker_image_commands:
- 'apt-get install -y tar wget cron git net-tools locales'
- 'rm -f /usr/sbin/policy-rc.d'
- 'echo "LC_ALL=en_US.UTF-8" >> /etc/environment'
- 'echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen'
- 'echo "LANG=en_US.UTF-8" > /etc/locale.conf'
- 'locale-gen en_US.UTF-8'
docker_container_name: 'sensu-debian7'
CONFIG:
log_level: debug
type: foss
ssh:
password: root
auth_methods: ["password"]

25 changes: 25 additions & 0 deletions spec/acceptance/nodesets/debian-8.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
HOSTS:
debian-8:
roles:
- agent
platform: debian-8-amd64
hypervisor: docker
image: debian:8
docker_preserve_image: true
docker_cmd:
- '/sbin/init'
docker_image_commands:
- 'apt-get install -y tar wget cron git net-tools locales'
- 'rm -f /usr/sbin/policy-rc.d'
- 'echo "LC_ALL=en_US.UTF-8" >> /etc/environment'
- 'echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen'
- 'echo "LANG=en_US.UTF-8" > /etc/locale.conf'
- 'locale-gen en_US.UTF-8'
docker_container_name: 'sensu-debian8'
CONFIG:
log_level: debug
type: foss
ssh:
password: root
auth_methods: ["password"]

24 changes: 24 additions & 0 deletions spec/acceptance/nodesets/debian-9.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
HOSTS:
debian-9:
roles:
- agent
platform: debian-9-amd64
hypervisor: docker
image: debian:9
docker_preserve_image: true
docker_cmd:
- '/sbin/init'
docker_image_commands:
- 'apt-get install -y tar wget cron git net-tools systemd-sysv locales'
- 'echo "LC_ALL=en_US.UTF-8" >> /etc/environment'
- 'echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen'
- 'echo "LANG=en_US.UTF-8" > /etc/locale.conf'
- 'locale-gen en_US.UTF-8'
docker_container_name: 'sensu-debian9'
CONFIG:
log_level: debug
type: foss
ssh:
password: root
auth_methods: ["password"]

Loading

0 comments on commit 33f6c91

Please sign in to comment.