aboutsummaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorFabien COMBERNOUS <fabien.combernous@adullact.org>2019-09-06 14:57:21 +0200
committerFabien COMBERNOUS <fabien.combernous@adullact.org>2019-09-09 17:21:35 +0200
commit2fc602af79b0b18fef1fab4a34134741ff35e10f (patch)
tree8cc5198a4e729299607e3a05533bf504054446e5 /spec
parent9977d646447822942d7a31b8bd95e290a6fb1c43 (diff)
downloadpuppet-ferm-2fc602af79b0b18fef1fab4a34134741ff35e10f.tar.gz
puppet-ferm-2fc602af79b0b18fef1fab4a34134741ff35e10f.tar.bz2
enable acceptance
Diffstat (limited to 'spec')
-rw-r--r--spec/acceptance/ferm_spec.rb60
-rw-r--r--spec/spec_helper_acceptance.rb22
2 files changed, 82 insertions, 0 deletions
diff --git a/spec/acceptance/ferm_spec.rb b/spec/acceptance/ferm_spec.rb
new file mode 100644
index 0000000..1b0f794
--- /dev/null
+++ b/spec/acceptance/ferm_spec.rb
@@ -0,0 +1,60 @@
+require 'spec_helper_acceptance'
+
+os_name = fact('os.name')
+os_release = fact('os.release.major')
+
+sut_os = "#{os_name}-#{os_release}"
+
+manage_initfile = case sut_os
+ when 'CentOS-6'
+ true
+ else
+ false
+ end
+
+describe 'ferm' do
+ context 'with basics settings' do
+ pp = %(
+ class { 'ferm':
+ manage_service => true,
+ manage_configfile => true,
+ manage_initfile => #{manage_initfile}, # CentOS-6 does not provide init script
+ forward_policy => 'DROP',
+ output_policy => 'DROP',
+ input_policy => 'DROP',
+ rules => {
+ 'allow acceptance_tests' => {
+ chain => 'INPUT',
+ policy => 'ACCEPT',
+ proto => tcp,
+ dport => 22,
+ },
+ },
+ ip_versions => ['ip'], #only ipv4 available with CI
+ }
+ )
+
+ it 'works with no error' do
+ apply_manifest(pp, catch_failures: true)
+ end
+ it 'works idempotently' do
+ apply_manifest(pp, catch_changes: true)
+ end
+
+ describe package('ferm') do
+ it { is_expected.to be_installed }
+ end
+
+ describe service('ferm') do
+ it { is_expected.to be_running }
+ end
+
+ describe command('iptables-save') do
+ its(:stdout) { is_expected.to match %r{.*filter.*:INPUT DROP.*:FORWARD DROP.*:OUTPUT DROP.*}m }
+ end
+
+ describe iptables do
+ it { is_expected.to have_rule('-A INPUT -p tcp -m comment --comment "allow acceptance_tests" -m tcp --dport 22 -j ACCEPT').with_table('filter').with_chain('INPUT') }
+ end
+ end
+end
diff --git a/spec/spec_helper_acceptance.rb b/spec/spec_helper_acceptance.rb
new file mode 100644
index 0000000..50dadbe
--- /dev/null
+++ b/spec/spec_helper_acceptance.rb
@@ -0,0 +1,22 @@
+require 'beaker-rspec'
+require 'beaker-puppet'
+require 'beaker/puppet_install_helper'
+require 'beaker/module_install_helper'
+
+run_puppet_install_helper unless ENV['BEAKER_provision'] == 'no'
+install_module
+install_module_dependencies
+
+RSpec.configure do |c|
+ # Configure all nodes in nodeset
+ c.before :suite do
+ # ferm is into epel with RedHat like OSes
+ install_module_from_forge('stahnma-epel', '>= 1.3.1 < 2.0.0') if fact('os.family') == 'RedHat'
+
+ pp = %(
+ include epel
+ )
+
+ apply_manifest(pp, catch_failures: true) if fact('os.family') == 'RedHat'
+ end
+end