Add rspec-puppet-facts to the spec_helper

This change adds the rspec-puppet-facts gem to the spec helper so that
we can centralize the management of the base operating systems that we
support. rspec-puppet-facts allows us to simplify our unit tests and
provides a more complete list of Operating Systems and their associated
facts for the unit tests.  With this change we can now loop over and
test CentOS, Debian, Fedora, RedHat, and Ubuntu by simply providing a
list of supported os to rspec-puppet-facts.

Additionally this change includes a central object for managing our
supported os list for rspec-puppet-facts and providing our default facts
like os_service_default. This central object should replace the usage of
@default_facts within the unit tests for each module.

Change-Id: I7eb1f4fdb413fa25a2560f65d17419efacf5c836
This commit is contained in:
Alex Schultz 2016-01-06 21:28:41 -07:00
parent 9823bd1d51
commit 32afcf4af8
3 changed files with 52 additions and 1 deletions

View File

@ -3,6 +3,7 @@ source ENV['GEM_SOURCE'] || "https://rubygems.org"
group :development, :test do
gem 'puppetlabs_spec_helper', :require => 'false'
gem 'rspec-puppet', '~> 2.2.0', :require => 'false'
gem 'rspec-puppet-facts', :require => 'false'
gem 'metadata-json-lint', :require => 'false'
gem 'puppet-lint-param-docs', :require => 'false'
gem 'puppet-lint-absolute_classname-check', :require => 'false'

44
spec/defaults.rb Normal file
View File

@ -0,0 +1,44 @@
# This file contains a module to return a default set of facts and supported
# operating systems for the tests in this module.
module OSDefaults
def self.get_facts(extra_facts={})
{ :os_service_default => '<SERVICE DEFAULT>' }.merge(extra_facts)
end
def self.get_supported_os
[
{
"operatingsystem" => "CentOS",
"operatingsystemrelease" => [
"7.0"
]
},
{
"operatingsystem" => "RedHat",
"operatingsystemrelease" => [
"7.0"
]
},
{
"operatingsystem" => "Fedora",
"operatingsystemrelease" => [
"21",
"22"
]
},
{
"operatingsystem" => "Ubuntu",
"operatingsystemrelease" => [
"14.04"
]
},
{
"operatingsystem" => "Debian",
"operatingsystemrelease" => [
"7",
"8"
]
}
]
end
end

View File

@ -2,11 +2,17 @@ require 'puppetlabs_spec_helper/module_spec_helper'
require 'shared_examples'
require 'webmock/rspec'
require 'rspec-puppet-facts'
include RspecPuppetFacts
require 'defaults.rb'
RSpec.configure do |c|
c.alias_it_should_behave_like_to :it_configures, 'configures'
c.alias_it_should_behave_like_to :it_raises, 'raises'
# TODO(aschultz): remove this after all tests converted to use OSDefaults
# instead of referencing @default_facts
c.before :each do
@default_facts = { :os_service_default => '<SERVICE DEFAULT>' }
@default_facts = OSDefaults.get_facts
end
end