summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/facter/package_provider.rb2
-rwxr-xr-xspec/acceptance/ensure_resource_spec.rb20
-rw-r--r--spec/unit/facter/package_provider_spec.rb57
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