aboutsummaryrefslogtreecommitdiff
path: root/spec/acceptance/tests
diff options
context:
space:
mode:
authorJosh Cooper <josh@puppet.com>2018-06-28 14:19:51 -0700
committerJosh Cooper <josh@puppet.com>2018-06-28 14:19:51 -0700
commit8f72965a90d8eb152e6770bcb0a012d75029a57f (patch)
tree15f3006fc5c29fd7790fd894eba363a2839c579b /spec/acceptance/tests
parent31d0eeeaec6e6745fc831ea2da53c9db83d72602 (diff)
downloadpuppet-augeas_core-8f72965a90d8eb152e6770bcb0a012d75029a57f.tar.gz
puppet-augeas_core-8f72965a90d8eb152e6770bcb0a012d75029a57f.tar.bz2
Convert beaker tests to rspec
Add default nodeset for ubuntu 16.04
Diffstat (limited to 'spec/acceptance/tests')
-rw-r--r--spec/acceptance/tests/hosts_spec.rb60
-rw-r--r--spec/acceptance/tests/puppet_spec.rb39
-rw-r--r--spec/acceptance/tests/services_spec.rb60
3 files changed, 159 insertions, 0 deletions
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: <<MANIFEST)
+augeas { 'add_hosts_entry':
+ context => '/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: <<MANIFEST)
+augeas { 'mod_hosts_entry':
+ context => '/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: <<MANIFEST)
+augeas { 'del_hosts_entry':
+ context => '/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 = <<CONF
+[main]
+CONF
+ on agent, "echo \"#{puppet_conf}\" >> #{agent.puppet['confdir']}/puppet.conf"
+ end
+
+ it 'modifies an existing puppet config' do
+ on(agent, puppet_apply('--verbose'), stdin: <<MANIFEST)
+augeas { 'puppet agent noop mode':
+ context => "/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: <<MANIFEST)
+augeas { 'add_services_entry':
+ context => '/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: <<MANIFEST)
+augeas { 'change_service_protocol':
+ context => '/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: <<MANIFEST)
+augeas { 'del_service_entry':
+ context => '/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