Giuseppe Lavagetto has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/403188 )

Change subject: base: fix spec tests for puppet 4
......................................................................

base: fix spec tests for puppet 4

Change-Id: I70175736de9cbf44ddb44b5c373b7467e6626fd6
---
M modules/base/spec/classes/puppet_spec.rb
M modules/base/spec/defines/expose_puppet_certs_spec.rb
A modules/base/spec/fixtures/hiera.yaml
A modules/base/spec/fixtures/hieradata/common.yaml
A modules/base/spec/fixtures/hieradata/labs.yaml
A modules/base/spec/fixtures/hieradata/some_realm.yaml
M modules/base/spec/functions/pick_initscript_spec.rb
M modules/base/spec/spec_helper.rb
8 files changed, 49 insertions(+), 43 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/puppet 
refs/changes/88/403188/1

diff --git a/modules/base/spec/classes/puppet_spec.rb 
b/modules/base/spec/classes/puppet_spec.rb
index 0c66cb2..f737c93 100644
--- a/modules/base/spec/classes/puppet_spec.rb
+++ b/modules/base/spec/classes/puppet_spec.rb
@@ -1,49 +1,48 @@
 require 'spec_helper'
+test_on = {
+  supported_os: [
+    {
+      'operatingsystem'        => 'Debian',
+      'operatingsystemrelease' => ['8', '9'],
+    }
+  ]
+}
 
 describe 'base::puppet' do
-    let(:pre_condition) {
-        '''
-        class passwords::puppet::database {}
-        '''
-    }
-    before(:each) do
-        Puppet::Parser::Functions.newfunction(:os_version, :type => :rvalue) 
do |_args|
-            TRUE
-        end
-    end
-    it { should compile }
+  let(:pre_condition) {
+    ['class passwords::puppet::database {}']
+  }
+  on_supported_os(test_on).each do |os, facts|
+    context "On #{os}" do
+      let(:facts) { facts}
+      it { should compile }
 
-    context 'when auto_puppetmaster_switching is enabled' do
-        before(:each) {
-            Puppet::Parser::Functions.newfunction(:hiera, :type => :rvalue) do 
|args|
-                case args[0]
-                when 'auto_puppetmaster_switching'
-                    return TRUE
-                else
-                    return args[1]
-                end
-            end
-        }
+      context 'when auto_puppetmaster_switching is enabled' do
+
         context 'on labs' do
-            let(:facts) { { :realm => 'labs' } }
-            it { should compile }
-            context 'on a standalone puppetmaster' do
-                let(:pre_condition) {
-                    super().concat('''
-                        class role::puppetmaster::standalone {}
-                        include role::puppetmaster::standalone
-                        ''')
-                }
-                it 'should fail' do
-                    should compile.and_raise_error(/should only be applied on 
puppet clients/)
-                end
+          let(:node_params) { { :realm => 'labs' } }
+          it { should compile }
+          context 'on a standalone puppetmaster' do
+            let(:pre_condition) {
+              super().concat(
+                [
+                  'class role::puppetmaster::standalone {}',
+                  'require role::puppetmaster::standalone'
+                ]
+              )
+            }
+            it 'should fail' do
+              should compile.and_raise_error(/should only be applied on puppet 
clients/)
             end
+          end
         end
         context 'on other realms' do
-            let(:facts) { { :realm => 'some realm' } }
-            it 'auto_puppetmaster_switching must not be enableable' do
-                should compile.and_raise_error(/auto_puppetmaster_switching 
should never.*/)
-            end
+          let(:node_params) {{:realm => 'some_realm'}}
+          it 'auto_puppetmaster_switching must not be enableable' do
+            should compile.and_raise_error(/auto_puppetmaster_switching should 
never.*/)
+          end
         end
+      end
     end
+  end
 end
diff --git a/modules/base/spec/defines/expose_puppet_certs_spec.rb 
b/modules/base/spec/defines/expose_puppet_certs_spec.rb
index 0d12490..bab24f9 100644
--- a/modules/base/spec/defines/expose_puppet_certs_spec.rb
+++ b/modules/base/spec/defines/expose_puppet_certs_spec.rb
@@ -37,7 +37,7 @@
   describe 'all files are removed when ensure => absent' do
     let(:params) { { :ensure => 'absent' } }
 
-    it { should contain_file('/my/ssl/dir/ssl/').with({ 'ensure' => 'absent' 
}) }
+    it { should contain_file('/my/ssl/dir/ssl').with({ 'ensure' => 'absent' }) 
}
     it { should contain_file('/my/ssl/dir/ssl/cert.pem').with({ 'ensure' => 
'absent' }) }
     it { should contain_file('/my/ssl/dir/ssl/server.key').with({ 'ensure' => 
'absent' }) }
   end
diff --git a/modules/base/spec/fixtures/hiera.yaml 
b/modules/base/spec/fixtures/hiera.yaml
new file mode 100644
index 0000000..6aac931
--- /dev/null
+++ b/modules/base/spec/fixtures/hiera.yaml
@@ -0,0 +1,6 @@
+:backends:
+  - yaml
+:yaml:
+  :datadir: 'spec/fixtures/hieradata'
+:hierarchy:
+  - "%{realm}"
diff --git a/modules/base/spec/fixtures/hieradata/common.yaml 
b/modules/base/spec/fixtures/hieradata/common.yaml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/modules/base/spec/fixtures/hieradata/common.yaml
diff --git a/modules/base/spec/fixtures/hieradata/labs.yaml 
b/modules/base/spec/fixtures/hieradata/labs.yaml
new file mode 100644
index 0000000..11cd7c2
--- /dev/null
+++ b/modules/base/spec/fixtures/hieradata/labs.yaml
@@ -0,0 +1 @@
+auto_puppetmaster_switching: true
diff --git a/modules/base/spec/fixtures/hieradata/some_realm.yaml 
b/modules/base/spec/fixtures/hieradata/some_realm.yaml
new file mode 100644
index 0000000..11cd7c2
--- /dev/null
+++ b/modules/base/spec/fixtures/hieradata/some_realm.yaml
@@ -0,0 +1 @@
+auto_puppetmaster_switching: true
diff --git a/modules/base/spec/functions/pick_initscript_spec.rb 
b/modules/base/spec/functions/pick_initscript_spec.rb
index cf56ea2..02644f6 100755
--- a/modules/base/spec/functions/pick_initscript_spec.rb
+++ b/modules/base/spec/functions/pick_initscript_spec.rb
@@ -2,10 +2,6 @@
 require 'spec_helper'
 
 describe 'pick_initscript' do
-  before :each do
-    @compiler = Puppet::Parser::Compiler.new(Puppet::Node.new("foo"))
-    @scope = Puppet::Parser::Scope.new(@compiler)
-  end
 
   it 'Returns false if no init script provided' do
     should run.with_params('apache2', 'systemd', false, false, false, false, 
true).and_return(false)
diff --git a/modules/base/spec/spec_helper.rb b/modules/base/spec/spec_helper.rb
index 4d0580f..213bafb 100644
--- a/modules/base/spec/spec_helper.rb
+++ b/modules/base/spec/spec_helper.rb
@@ -1,9 +1,12 @@
 require 'rspec-puppet'
+require 'rspec-puppet-facts'
 
+include RspecPuppetFacts
 fixture_path = File.expand_path(File.join(__FILE__, '..', 'fixtures'))
 
 RSpec.configure do |c|
   c.module_path = File.expand_path("../..", File.dirname(__FILE__))
   c.manifest_dir = File.join(fixture_path, 'manifests')
   c.template_dir = File.join(fixture_path, 'templates')
+  c.hiera_config = File.join(fixture_path, 'hiera.yaml')
 end

-- 
To view, visit https://gerrit.wikimedia.org/r/403188
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I70175736de9cbf44ddb44b5c373b7467e6626fd6
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Giuseppe Lavagetto <glavage...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to