Sha256: efa070fd7746a83881e3771c569ad5bcd4b3c37ff8db197fc6d42878de6f9d1d

Contents?: true

Size: 1.87 KB

Versions: 2

Compression:

Stored size: 1.87 KB

Contents

#!/usr/bin/env ruby

require File.expand_path(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",
        "Scientific"  => "/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",
        "OracleLinux" => "/etc/oracle-release",
    }

    test_cases.each do |system, file|
        describe "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

    it "for VMWareESX it should run the vmware -v command" do
        Facter.fact(:kernel).stubs(:value).returns("VMkernel")
        Facter.fact(:kernelrelease).stubs(:value).returns("4.1.0")
        Facter.fact(:operatingsystem).stubs(:value).returns("VMwareESX")

        Facter::Util::Resolution.stubs(:exec).with('vmware -v').returns('foo')

        Facter.fact(:operatingsystemrelease).value
    end

    it "for Alpine it should use the contents of /etc/alpine-release" do
        Facter.fact(:kernel).stubs(:value).returns("Linux")
        Facter.fact(:operatingsystem).stubs(:value).returns("Alpine")

        File.expects(:read).with("/etc/alpine-release").returns("foo")

        Facter.fact(:operatingsystemrelease).value.should == "foo"
    end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
facter-1.6.2 spec/unit/operatingsystemrelease_spec.rb
facter-1.6.1 spec/unit/operatingsystemrelease_spec.rb