From 8f72965a90d8eb152e6770bcb0a012d75029a57f Mon Sep 17 00:00:00 2001 From: Josh Cooper Date: Thu, 28 Jun 2018 14:19:51 -0700 Subject: Convert beaker tests to rspec Add default nodeset for ubuntu 16.04 --- spec/acceptance/tests/hosts_spec.rb | 60 ++++++++++++++++++++++++++++++++++ spec/acceptance/tests/puppet_spec.rb | 39 ++++++++++++++++++++++ spec/acceptance/tests/services_spec.rb | 60 ++++++++++++++++++++++++++++++++++ 3 files changed, 159 insertions(+) create mode 100644 spec/acceptance/tests/hosts_spec.rb create mode 100644 spec/acceptance/tests/puppet_spec.rb create mode 100644 spec/acceptance/tests/services_spec.rb (limited to 'spec/acceptance/tests') diff --git a/spec/acceptance/tests/hosts_spec.rb b/spec/acceptance/tests/hosts_spec.rb new file mode 100644 index 0000000..db05f69 --- /dev/null +++ b/spec/acceptance/tests/hosts_spec.rb @@ -0,0 +1,60 @@ +require 'spec_helper_acceptance' + +RSpec.context 'Augeas hosts file' do + before(:all) do + on agents, 'cp /etc/hosts /tmp/hosts.bak' + end + + after(:all) do + on agents, 'cat /tmp/hosts.bak > /etc/hosts && rm /tmp/hosts.bak' + end + + agents.each do |agent| + context "on #{agent}" do + it 'creates an entry in the hosts file' do + on(agent, puppet_apply('--verbose'), stdin: < '/files/etc/hosts', + incl => '/etc/hosts', + lens => 'Hosts.lns', + changes => [ + 'set 01/ipaddr 192.168.0.1', + 'set 01/canonical pigiron.example.com', + 'set 01/alias[1] pigiron', + 'set 01/alias[2] piggy' + ] +} +MANIFEST + on agent, "fgrep '192.168.0.1\tpigiron.example.com pigiron piggy' /etc/hosts" + end + + it 'modifies an entry in the hosts file' do + on(hosts, puppet_apply('--verbose'), stdin: < '/files/etc/hosts', + incl => '/etc/hosts', + lens => 'Hosts.lns', + changes => [ + 'set *[canonical = "pigiron.example.com"]/alias[last()+1] oinker' + ] +} +MANIFEST + on hosts, "fgrep '192.168.0.1\tpigiron.example.com pigiron piggy oinker' /etc/hosts" + end + + it 'removes an entry from the hosts file' do + on(hosts, puppet_apply('--verbose'), stdin: < '/files/etc/hosts', + incl => '/etc/hosts', + lens => 'Hosts.lns', + changes => [ + 'rm *[canonical = "pigiron.example.com"]' + ] +} +MANIFEST + on hosts, "fgrep 'pigiron.example.com' /etc/hosts", acceptable_exit_codes: [1] + end + end + end +end diff --git a/spec/acceptance/tests/puppet_spec.rb b/spec/acceptance/tests/puppet_spec.rb new file mode 100644 index 0000000..a65df19 --- /dev/null +++ b/spec/acceptance/tests/puppet_spec.rb @@ -0,0 +1,39 @@ +require 'spec_helper_acceptance' + +RSpec.context 'Augeas puppet configuration' do + before(:all) do + agents.each do |agent| + on agent, "mv #{agent.puppet['confdir']}/puppet.conf /tmp/puppet.conf.bak" + end + end + + after(:all) do + agents.each do |agent| + on agent, "cat /tmp/puppet.conf.bak > #{agent.puppet['confdir']}/puppet.conf && rm /tmp/puppet.conf.bak" + end + end + + agents.each do |agent| + context "on #{agent}" do + it 'creates a new puppet config that has a master and agent section' do + puppet_conf = <> #{agent.puppet['confdir']}/puppet.conf" + end + + it 'modifies an existing puppet config' do + on(agent, puppet_apply('--verbose'), stdin: < "/files#{agent.puppet['confdir']}/puppet.conf/agent", + incl => "/etc/puppetlabs/puppet/puppet.conf", + lens => 'Puppet.lns', + changes => 'set noop true', +} +MANIFEST + + on agent, "grep 'noop=true' #{agent.puppet['confdir']}/puppet.conf" + end + end + end +end diff --git a/spec/acceptance/tests/services_spec.rb b/spec/acceptance/tests/services_spec.rb new file mode 100644 index 0000000..03175e3 --- /dev/null +++ b/spec/acceptance/tests/services_spec.rb @@ -0,0 +1,60 @@ +require 'spec_helper_acceptance' + +RSpec.context 'Augeas services file' do + before(:all) do + on agents, 'cp /etc/services /tmp/services.bak' + end + + after(:all) do + on agents, 'cat /tmp/services.bak > /etc/services && rm /tmp/services.bak' + end + + agents.each do |agent| + context "on #{agent}" do + it 'adds an entry to the services file' do + on(hosts, puppet_apply('--verbose'), stdin: < '/files/etc/services', + incl => '/etc/services', + lens => 'Services.lns', + changes => [ + 'ins service-name after service-name[last()]', + 'set service-name[last()] "Doom"', + 'set service-name[. = "Doom"]/port "666"', + 'set service-name[. = "Doom"]/protocol "udp"' + ] +} +MANIFEST + on hosts, "fgrep 'Doom 666/udp' /etc/services" + end + + it 'changes the protocol to udp' do + on(hosts, puppet_apply('--verbose'), stdin: < '/files/etc/services', + incl => '/etc/services', + lens => 'Services.lns', + changes => [ + 'set service-name[. = "Doom"]/protocol "tcp"' + ] +} +MANIFEST + on hosts, "fgrep 'Doom 666/tcp' /etc/services" + end + + it 'removes the services entry' do + on(hosts, puppet_apply('--verbose'), stdin: < '/files/etc/services', + incl => '/etc/services', + lens => 'Services.lns', + changes => [ + 'rm service-name[. = "Doom"]' + ] +} +MANIFEST + on hosts, "fgrep 'Doom 666/tcp' /etc/services", acceptable_exit_codes: [1] + end + end + end +end -- cgit v1.2.3