diff options
-rw-r--r-- | lib/facter/package_provider.rb | 2 | ||||
-rwxr-xr-x | spec/acceptance/ensure_resource_spec.rb | 20 | ||||
-rw-r--r-- | spec/unit/facter/package_provider_spec.rb | 57 |
3 files changed, 47 insertions, 32 deletions
diff --git a/lib/facter/package_provider.rb b/lib/facter/package_provider.rb index 65a2da0..1a0bac9 100644 --- a/lib/facter/package_provider.rb +++ b/lib/facter/package_provider.rb @@ -12,7 +12,7 @@ require 'puppet/type/package' Facter.add(:package_provider) do setcode do - if Gem::Version.new(Facter.value(:puppetversion)) >= Gem::Version.new('3.6') + if Gem::Version.new(Facter.value(:puppetversion).split(' ')[0]) >= Gem::Version.new('3.6') Puppet::Type.type(:package).newpackage(:name => 'dummy', :allow_virtual => 'true')[:provider].to_s else Puppet::Type.type(:package).newpackage(:name => 'dummy')[:provider].to_s diff --git a/spec/acceptance/ensure_resource_spec.rb b/spec/acceptance/ensure_resource_spec.rb index fe619a9..93f25dd 100755 --- a/spec/acceptance/ensure_resource_spec.rb +++ b/spec/acceptance/ensure_resource_spec.rb @@ -1,18 +1,26 @@ #! /usr/bin/env ruby -S rspec require 'spec_helper_acceptance' -describe 'ensure_resource function', :unless => fact('osfamily') =~ /(windows|Suse)/i do +describe 'ensure_resource function' do describe 'success' do - it 'ensure_resource a package' do - apply_manifest('package { "rake": ensure => absent, provider => "gem", }') + it 'ensures a resource already declared' do + apply_manifest('') pp = <<-EOS - $a = "rake" - ensure_resource('package', $a, {'provider' => 'gem'}) + notify { "test": loglevel => 'err' } + ensure_resource('notify', 'test', { 'loglevel' => 'err' }) + EOS + + apply_manifest(pp, :expect_changes => true) + end + + it 'ensures a undeclared resource' do + apply_manifest('') + pp = <<-EOS + ensure_resource('notify', 'test', { 'loglevel' => 'err' }) EOS apply_manifest(pp, :expect_changes => true) end - it 'ensures a resource already declared' it 'takes defaults arguments' end describe 'failure' do diff --git a/spec/unit/facter/package_provider_spec.rb b/spec/unit/facter/package_provider_spec.rb index d1aee94..3954faf 100644 --- a/spec/unit/facter/package_provider_spec.rb +++ b/spec/unit/facter/package_provider_spec.rb @@ -7,31 +7,38 @@ describe 'package_provider', :type => :fact do before { Facter.clear } after { Facter.clear } - context "darwin" do - it "should return pkgdmg" do - provider = Puppet::Type.type(:package).provider(:pkgdmg) - Puppet::Type.type(:package).stubs(:defaultprovider).returns provider - - expect(Facter.fact(:package_provider).value).to eq('pkgdmg') - end - end - - context "centos 7" do - it "should return yum" do - provider = Puppet::Type.type(:package).provider(:yum) - Puppet::Type.type(:package).stubs(:defaultprovider).returns provider - - expect(Facter.fact(:package_provider).value).to eq('yum') + ['4.2.2', '3.7.1 (Puppet Enterprise 3.2.1)'].each do |puppetversion| + describe "on puppet ''#{puppetversion}''" do + before :each do + Facter.stubs(:value).returns puppetversion + end + + context "darwin" do + it "should return pkgdmg" do + provider = Puppet::Type.type(:package).provider(:pkgdmg) + Puppet::Type.type(:package).stubs(:defaultprovider).returns provider + + expect(Facter.fact(:package_provider).value).to eq('pkgdmg') + end + end + + context "centos 7" do + it "should return yum" do + provider = Puppet::Type.type(:package).provider(:yum) + Puppet::Type.type(:package).stubs(:defaultprovider).returns provider + + expect(Facter.fact(:package_provider).value).to eq('yum') + end + end + + context "ubuntu" do + it "should return apt" do + provider = Puppet::Type.type(:package).provider(:apt) + Puppet::Type.type(:package).stubs(:defaultprovider).returns provider + + expect(Facter.fact(:package_provider).value).to eq('apt') + end + end end end - - context "ubuntu" do - it "should return apt" do - provider = Puppet::Type.type(:package).provider(:apt) - Puppet::Type.type(:package).stubs(:defaultprovider).returns provider - - expect(Facter.fact(:package_provider).value).to eq('apt') - end - end - end |