rspec-puppet-facts 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ebd9e64a0bba7f5e7381949dc436ef5ae4da1543
4
- data.tar.gz: 23c1a430c563890b36834ce7ab399fe8692082c8
3
+ metadata.gz: 854e99fe14fb999a75972ef8514595b06ff02ec6
4
+ data.tar.gz: 74aff87a118d7f8d93786acf2d6d26f2d5f8aefc
5
5
  SHA512:
6
- metadata.gz: 424b45f45292cf9a60f8e015814263e64ea71328c97f07b0696d1876d8fde4698e8df5d560000a268ca3a29fc8b2181433160dc7c603950aabb31646a2d30aaa
7
- data.tar.gz: c7d7b91798b60e2f6c5715b1ae7644513162561e77c172616b28d9a4bc1be42bcd73968f6b42a0628bdb04cba0f0208efd06c99b8f0190b3551e9601b6108115
6
+ metadata.gz: 9bee90cd268e6193725f2daa5158f8bcf724ccde3222eb581e6bbd7a409d022a157df3855b19789182f9ab767ad5ea6f995a8584aef6f53e922ca52690d8f3f8
7
+ data.tar.gz: dd59f80cae1f4c2bf41ed9eecf680657b6f117c630f665c22aca4d22b19498226a889dd0f0484d90583557d38ece37a01467b0dc343b0b8ba712a8f9805ffca3
data/.gitignore CHANGED
@@ -1,3 +1,5 @@
1
1
  *.gem
2
+ *.swp
2
3
  Gemfile.lock
3
4
  .vagrant/
5
+ .bundle/
data/.rspec ADDED
@@ -0,0 +1,4 @@
1
+ --format
2
+ d
3
+ --colour
4
+ --backtrace
@@ -0,0 +1,25 @@
1
+ ---
2
+ language: ruby
3
+ sudo: false
4
+ cache:
5
+ directories:
6
+ - vendor/bundle
7
+ bundler_args: --path vendor/bundle
8
+ script:
9
+ - bundle exec rake spec
10
+ rvm:
11
+ - 1.8.7
12
+ - 1.9.3
13
+ - 2.0.0
14
+ - 2.1.5
15
+ env:
16
+ - FACTER_GEM_VERSION="~> 1.6.0"
17
+ - FACTER_GEM_VERSION="~> 1.7.0"
18
+ - FACTER_GEM_VERSION="~> 2.0.0"
19
+ - FACTER_GEM_VERSION="~> 2.1.0"
20
+ - FACTER_GEM_VERSION="~> 2.2.0"
21
+ - FACTER_GEM_VERSION="~> 2.3.0"
22
+ matrix:
23
+ fast_finish: true
24
+ notifications:
25
+ email: false
@@ -1,3 +1,7 @@
1
+ ##2014-12-19 - Release 0.2.2
2
+ - Fix some bugs
3
+ - Add unit tests
4
+
1
5
  ##2014-12-19 - Release 0.2.1
2
6
  - Add facts for Debian 8
3
7
 
data/Gemfile CHANGED
@@ -1,7 +1,10 @@
1
1
  source ENV['GEM_SOURCE'] || "https://rubygems.org"
2
2
 
3
3
  group :development, :test do
4
- gem 'test-unit', :require => false
4
+ gem 'json', :require => false
5
+ gem 'mocha', :require => false
6
+ gem 'rake', :require => false
7
+ gem 'rspec', :require => false
5
8
  end
6
9
 
7
10
  if facterversion = ENV['FACTER_GEM_VERSION']
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  rspec-puppet-facts
2
2
  ==================
3
3
 
4
+ [![Build Status](https://travis-ci.org/mcanevet/rspec-puppet-facts.png?branch=master)](https://travis-ci.org/mcanevet/rspec-puppet-facts)
5
+
4
6
  Based on an original idea from [apenney](https://github.com/apenney/puppet_facts/).
5
7
 
6
8
  Simplify your unit tests by looping on every supported Operating System and populating facts.
@@ -81,7 +83,22 @@ describe 'myclass' do
81
83
 
82
84
  on_supported_os({
83
85
  :hardwaremodels => ['i386', 'x86_64'],
84
- :supported_os => ['debian-7', 'redhat-6']
86
+ :supported_os => [
87
+ {
88
+ "operatingsystem" => "Debian",
89
+ "operatingsystemrelease" => [
90
+ "6",
91
+ "7"
92
+ ]
93
+ },
94
+ {
95
+ "operatingsystem" => "RedHat",
96
+ "operatingsystemrelease" => [
97
+ "5",
98
+ "6"
99
+ ]
100
+ }
101
+ ],
85
102
  }).each do |os, facts|
86
103
  context "on #{os}" do
87
104
  let(:facts) do
@@ -156,8 +173,32 @@ matrix:
156
173
  ...
157
174
  ```
158
175
 
159
- Add new facts
160
- -------------
176
+ Operating Systems and facter versions supported
177
+ -----------------------------------------------
178
+
179
+ | 1.6 | 1.7 | 2.0 | 2.1 | 2.2 | 2.3
180
+ -------------|-----|-----|-----|-----|-----|-----
181
+ CentOS 5 | Y | Y | Y | Y | Y | Y
182
+ CentOS 6 | Y | Y | Y | Y | Y | Y
183
+ CentOS 7 | Y | Y | Y | Y | Y | Y
184
+ Debian 6 | Y | Y | Y | Y | Y | Y
185
+ Debian 7 | Y | Y | Y | Y | Y | Y
186
+ Debian 8 | N | N | Y | Y | Y | Y
187
+ Fedora 19 | Y | Y | Y | Y | Y | Y
188
+ Oracle 5 | Y | Y | Y | Y | Y | Y
189
+ Oracle 6 | Y | Y | Y | Y | Y | Y
190
+ Oracle 7 | Y | Y | Y | Y | Y | Y
191
+ RedHat 5 | Y | Y | Y | Y | Y | Y
192
+ RedHat 6 | Y | Y | Y | Y | Y | Y
193
+ RedHat 7 | Y | Y | Y | Y | Y | Y
194
+ Scientific 5 | Y | Y | Y | Y | Y | Y
195
+ Scientific 6 | Y | Y | Y | Y | Y | Y
196
+ Scientific 7 | Y | Y | Y | Y | Y | Y
197
+ Ubuntu 12.04 | Y | Y | Y | Y | Y | Y
198
+ Ubuntu 14.04 | Y | Y | Y | Y | Y | Y
199
+
200
+ Add new Operating System support
201
+ --------------------------------
161
202
 
162
203
  There is `Vagrantfile` to automagically populate `facts` directory by spawning a new VM and launches a provisioning scripts.
163
204
 
@@ -0,0 +1,5 @@
1
+ begin
2
+ require 'rspec/core/rake_task'
3
+ RSpec::Core::RakeTask.new(:spec)
4
+ rescue LoadError
5
+ end
@@ -3,12 +3,10 @@ require 'json'
3
3
 
4
4
  module RspecPuppetFacts
5
5
 
6
- def on_supported_os(
7
- opts = {
8
- :hardwaremodels => ['x86_64'],
9
- :supported_os => RspecPuppetFacts.meta_supported_os,
10
- }
11
- )
6
+ def on_supported_os( opts = {} )
7
+ opts[:hardwaremodels] ||= ['x86_64']
8
+ opts[:supported_os] ||= RspecPuppetFacts.meta_supported_os
9
+
12
10
  h = {}
13
11
 
14
12
  opts[:supported_os].map do |os_sup|
@@ -20,6 +18,9 @@ module RspecPuppetFacts
20
18
  # TODO: use SemVer here
21
19
  facter_minor_version = Facter.version[0..2]
22
20
  file = File.expand_path(File.join(File.dirname(__FILE__), "../facts/#{facter_minor_version}/#{os}.facts"))
21
+ if ! File.file?(file)
22
+ fail StandardError, "Can't find facts for '#{os}' for facter #{facter_minor_version}"
23
+ end
23
24
  File.read(file).each_line do |line|
24
25
  key, value = line.split(' => ')
25
26
  facts[key.to_sym] = value.chomp unless value.nil?
@@ -1,5 +1,5 @@
1
1
  module RspecPuppetFacts
2
2
  module Version
3
- STRING = '0.2.1'
3
+ STRING = '0.2.2'
4
4
  end
5
5
  end
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "mcanevet-mymodule",
3
+ "version": "1.0.0",
4
+ "author": "Mickaël Canévet",
5
+ "summary": "My puppet modules",
6
+ "license": "Apache-2.0",
7
+ "source": "https://github.com/mcanevet/puppet-mymodule",
8
+ "project_page": "https://github.com/mcanevet/puppet-mymodule",
9
+ "issues_url": "https://github.com/mcanevet/puppet-mymodule/issues",
10
+ "dependencies": [
11
+ ],
12
+ "requirements": [
13
+ ],
14
+ "operatingsystem_support": [
15
+ {
16
+ "operatingsystem": "Debian",
17
+ "operatingsystemrelease": [
18
+ "6",
19
+ "7"
20
+ ]
21
+ },
22
+ {
23
+ "operatingsystem": "RedHat",
24
+ "operatingsystemrelease": [
25
+ "5",
26
+ "6",
27
+ "7"
28
+ ]
29
+ }
30
+ ],
31
+ "puppet_version": [
32
+ "2.7",
33
+ "3.0",
34
+ "3.1",
35
+ "3.2",
36
+ "3.3",
37
+ "3.4",
38
+ "3.5",
39
+ "3.6",
40
+ "3.7"
41
+ ]
42
+ }
@@ -0,0 +1,100 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'RspecPuppetFacts' do
4
+
5
+ describe '#on_supported_os' do
6
+
7
+ context 'Without parameter' do
8
+ subject { on_supported_os() }
9
+
10
+ context 'Without metadata.json' do
11
+ it 'should fail' do
12
+ expect { subject }.to raise_error(StandardError)
13
+ end
14
+ end
15
+
16
+ context 'With a metadata.json' do
17
+ fixture = File.read('spec/fixtures/metadata.json')
18
+ File.stubs('file?')
19
+ File.stubs('read')
20
+ File.expects('file?').with('metadata.json').returns true
21
+ File.expects('read').with('metadata.json').returns fixture
22
+ it 'should return a hash' do
23
+ expect( on_supported_os().class ).to eq Hash
24
+ end
25
+ it 'should have 5 elements' do
26
+ expect(subject.size).to eq 5
27
+ end
28
+ it 'should return supported OS' do
29
+ expect(subject.keys.sort).to eq [
30
+ 'debian-6-x86_64',
31
+ 'debian-7-x86_64',
32
+ 'redhat-5-x86_64',
33
+ 'redhat-6-x86_64',
34
+ 'redhat-7-x86_64',
35
+ ]
36
+ end
37
+ end
38
+ end
39
+
40
+ context 'When specifying supported_os' do
41
+ subject {
42
+ on_supported_os(
43
+ {
44
+ :supported_os => [
45
+ {
46
+ "operatingsystem" => "Debian",
47
+ "operatingsystemrelease" => [
48
+ "6",
49
+ "7"
50
+ ]
51
+ },
52
+ {
53
+ "operatingsystem" => "RedHat",
54
+ "operatingsystemrelease" => [
55
+ "5",
56
+ "6"
57
+ ]
58
+ }
59
+ ]
60
+ }
61
+ )
62
+ }
63
+ it 'should return a hash' do
64
+ expect(subject.class).to eq Hash
65
+ end
66
+ it 'should have 4 elements' do
67
+ expect(subject.size).to eq 4
68
+ end
69
+ it 'should return supported OS' do
70
+ expect(subject.keys.sort).to eq [
71
+ 'debian-6-x86_64',
72
+ 'debian-7-x86_64',
73
+ 'redhat-5-x86_64',
74
+ 'redhat-6-x86_64',
75
+ ]
76
+ end
77
+ end
78
+
79
+ context 'When specifying wrong supported_os' do
80
+ subject {
81
+ on_supported_os(
82
+ {
83
+ :supported_os => [
84
+ {
85
+ "operatingsystem" => "Debian",
86
+ "operatingsystemrelease" => [
87
+ "4",
88
+ ],
89
+ },
90
+ ]
91
+ }
92
+ )
93
+ }
94
+
95
+ it 'should fail' do
96
+ expect { subject }.to raise_error(StandardError, /Can't find facts for 'debian-4-x86_64'/)
97
+ end
98
+ end
99
+ end
100
+ end
@@ -0,0 +1,8 @@
1
+ require 'rspec'
2
+ require 'mocha/api'
3
+ require 'rspec-puppet-facts'
4
+ include RspecPuppetFacts
5
+
6
+ RSpec.configure do |config|
7
+ config.mock_framework = :mocha
8
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-puppet-facts
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mickaël Canévet
@@ -18,9 +18,12 @@ extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
20
  - ".gitignore"
21
+ - ".rspec"
22
+ - ".travis.yml"
21
23
  - CHANGELOG.md
22
24
  - Gemfile
23
25
  - README.md
26
+ - Rakefile
24
27
  - Vagrantfile
25
28
  - facts/1.6/centos-5-i386.facts
26
29
  - facts/1.6/centos-5-x86_64.facts
@@ -238,6 +241,9 @@ files:
238
241
  - lib/rspec-puppet-facts.rb
239
242
  - lib/rspec-puppet-facts/version.rb
240
243
  - rspec-puppet-facts.gemspec
244
+ - spec/fixtures/metadata.json
245
+ - spec/rspec_puppet_facts_spec.rb
246
+ - spec/spec_helper.rb
241
247
  homepage: http://github.com/mcanevet/rspec-puppet-facts
242
248
  licenses:
243
249
  - Apache-2.0