When Facter returns operatingsystem as "oel" or "ovs", the
operatingsystemrelease fact does not catch these properly, causing an
error.

Specs added to catch failure and case statement updated to catch "oel"
and "ovs" as well as "OEL" and "OVS"

Signed-off-by: Rein Henrichs <[email protected]>
---
 lib/facter/operatingsystemrelease.rb |    4 +-
 spec/unit/operatingsystemrelease.rb  |   39 ++++++++++++++++++++++++++++++++++
 2 files changed, 41 insertions(+), 2 deletions(-)
 create mode 100644 spec/unit/operatingsystemrelease.rb

diff --git a/lib/facter/operatingsystemrelease.rb 
b/lib/facter/operatingsystemrelease.rb
index 30f2989..280208b 100644
--- a/lib/facter/operatingsystemrelease.rb
+++ b/lib/facter/operatingsystemrelease.rb
@@ -8,9 +8,9 @@ Facter.add(:operatingsystemrelease) do
             releasefile = "/etc/fedora-release"
         when "MeeGo"
             releasefile = "/etc/meego-release"
-        when "OEL"
+        when "OEL", "oel"
             releasefile = "/etc/enterprise-release"
-        when "OVS"
+        when "OVS", "ovs"
             releasefile = "/etc/ovs-release"
         end
         File::open(releasefile, "r") do |f|
diff --git a/spec/unit/operatingsystemrelease.rb 
b/spec/unit/operatingsystemrelease.rb
new file mode 100644
index 0000000..31d4ae8
--- /dev/null
+++ b/spec/unit/operatingsystemrelease.rb
@@ -0,0 +1,39 @@
+#!/usr/bin/env ruby
+
+require File.dirname(__FILE__) + '/../spec_helper'
+
+require 'facter'
+
+describe "Operating System Release fact" do
+
+    before do
+        Facter.clear
+    end
+
+    after do
+        Facter.clear
+    end
+
+    test_cases = {
+        "CentOS" => "/etc/redhat-release",
+        "RedHat" => "/etc/redhat-release",
+        "Fedora" => "/etc/fedora-release",
+        "MeeGo"  => "/etc/meego-release",
+        "OEL"    => "/etc/enterprise-release",
+        "oel"    => "/etc/enterprise-release",
+        "OVS"    => "/etc/ovs-release",
+        "ovs"    => "/etc/ovs-release"
+    }
+
+    test_cases.each do |system, file|
+        context "with operatingsystem reported as #{system.inspect}" do
+            it "should read the #{file.inspect} file" do
+                Facter.fact(:operatingsystem).stubs(:value).returns(system)
+
+                File.expects(:open).with(file, "r").at_least(1)
+
+                Facter.fact(:operatingsystemrelease).value
+            end
+        end
+    end
+end
-- 
1.7.0.4

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en.

Reply via email to