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