fizzgig 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/CHANGELOG.md +11 -0
- data/LICENSE +21 -0
- data/README.asciidoc +151 -0
- data/TODO.org +14 -3
- data/fizzgig.gemspec +1 -1
- data/lib/fizzgig.rb +2 -2
- data/lib/fizzgig/matchers.rb +27 -13
- data/spec/fizzgig_spec.rb +85 -82
- data/spec/modules/facts/manifests/class_test.pp +3 -0
- data/spec/modules/params_test/manifests/init.pp +8 -0
- metadata +7 -4
- data/spec/modules/facts/manifests/template_test.pp +0 -5
data/.gitignore
CHANGED
data/CHANGELOG.md
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
Copyright (c) 2013 Philip Potter
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a
|
4
|
+
copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be included
|
12
|
+
in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
15
|
+
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
17
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
18
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
19
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
20
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
21
|
+
|
data/README.asciidoc
ADDED
@@ -0,0 +1,151 @@
|
|
1
|
+
Fizzgig
|
2
|
+
-------
|
3
|
+
|
4
|
+
Fizzgig is a library to help write fast unit tests.
|
5
|
+
|
6
|
+
[source,ruby]
|
7
|
+
-------------------------------------------
|
8
|
+
describe 'ganglia::cronjob' do
|
9
|
+
include Fizzgig::CatalogMatchers
|
10
|
+
|
11
|
+
it 'should create ganglia script and cron job' do
|
12
|
+
catalog = Fizzgig.instantiate <<END
|
13
|
+
ganglia::cronjob {'tiger':
|
14
|
+
content => 'tiger content',
|
15
|
+
}
|
16
|
+
END
|
17
|
+
catalog.should contain_file('/etc/ganglia/scripts/tiger')
|
18
|
+
.with_content('tiger content')
|
19
|
+
.with_mode('0755')
|
20
|
+
|
21
|
+
catalog.should contain_cron('ganglia-tiger')
|
22
|
+
.with_command('/etc/ganglia/scripts/tiger')
|
23
|
+
.with_minute('*')
|
24
|
+
.with_user('root')
|
25
|
+
end
|
26
|
+
end
|
27
|
+
-------------------------------------------
|
28
|
+
|
29
|
+
Basic Functionality
|
30
|
+
~~~~~~~~~~~~~~~~~~~
|
31
|
+
|
32
|
+
Fizzgig is based around two functions: +instantiate+ and +include+,
|
33
|
+
which will instantiate a defined type and include a class
|
34
|
+
respectively:
|
35
|
+
|
36
|
+
[source,ruby]
|
37
|
+
catalog = Fizzgig.instantiate %q[ nginx::site {'foo.com': max_age => 300 } ]
|
38
|
+
|
39
|
+
[source,ruby]
|
40
|
+
catalog = Fizzgig.include 'nginx'
|
41
|
+
|
42
|
+
Each of these functions returns a Puppet::Resource::Catalog
|
43
|
+
object. You can use the matchers in Fizzgig::CatalogMatchers to make
|
44
|
+
assertions against the contents of this catalog:
|
45
|
+
|
46
|
+
[source,ruby]
|
47
|
+
catalog.should contain_file('/etc/nginx.conf').with_content(/ssl/)
|
48
|
+
|
49
|
+
Just like in rspec-puppet, you can assert the existence of defined
|
50
|
+
types within your own modules by replacing +::+ with +__+ in the name:
|
51
|
+
|
52
|
+
[source,ruby]
|
53
|
+
catalog.should contain_nginx__site('foo.com')
|
54
|
+
|
55
|
+
Stubbing facts
|
56
|
+
~~~~~~~~~~~~~~
|
57
|
+
|
58
|
+
Facts can be stubbed by passing a hash of fact values to instantiate
|
59
|
+
or include:
|
60
|
+
|
61
|
+
[source,ruby]
|
62
|
+
Fizzgig.include('nginx',:facts => {'lsbdistcodename' => 'precise'})
|
63
|
+
|
64
|
+
Stubbing functions
|
65
|
+
~~~~~~~~~~~~~~~~~~
|
66
|
+
|
67
|
+
Custom functions can also be stubbed. This is very handy for stubbing
|
68
|
+
out extdata or hieradata in tests:
|
69
|
+
|
70
|
+
[source,ruby]
|
71
|
+
-------------
|
72
|
+
Fizzgig.include('nginx',:stubs => {:extlookup => {'site_root' => 'www.foo.com'}})
|
73
|
+
.should contain_file('/etc/nginx/sites-enabled/www.foo.com')
|
74
|
+
-------------
|
75
|
+
|
76
|
+
Rationale
|
77
|
+
~~~~~~~~~
|
78
|
+
|
79
|
+
Fizzgig is designed to be fast, and to test individual units of code,
|
80
|
+
as good unit tests do. However, existing puppet testing libraries such
|
81
|
+
as https://github.com/rodjek/rspec-puppet[rspec-puppet] will compute a
|
82
|
+
complete catalog, expanding out all classes and defined types until it
|
83
|
+
reaches the individual base puppet types. This means that it can spend
|
84
|
+
time computing resources which are wholly unrelated to the test you're
|
85
|
+
writing.
|
86
|
+
|
87
|
+
Fizzgig, by contrast, treats defined types as black box abstractions:
|
88
|
+
it only adds the defined types you declare within the class or define
|
89
|
+
under test to the catalog. Types which are pulled in transitively by
|
90
|
+
other types will not be added to the catalog.
|
91
|
+
|
92
|
+
Defined types
|
93
|
+
~~~~~~~~~~~~~
|
94
|
+
|
95
|
+
To achieve its isolation, fizzgig does not transitively evaluate
|
96
|
+
defined types. Suppose I have these puppet defines:
|
97
|
+
|
98
|
+
[source,puppet]
|
99
|
+
---------------
|
100
|
+
define nginx::ssl_site () {
|
101
|
+
nginx::site {$title:
|
102
|
+
}
|
103
|
+
nginx::ssl_cert {$title:
|
104
|
+
}
|
105
|
+
}
|
106
|
+
|
107
|
+
define nginx::site () {
|
108
|
+
file {"/etc/nginx/sites-enabled/$title":
|
109
|
+
# ...
|
110
|
+
}
|
111
|
+
}
|
112
|
+
---------------
|
113
|
+
|
114
|
+
And I write this test:
|
115
|
+
|
116
|
+
[source,ruby]
|
117
|
+
-------------
|
118
|
+
catalog Fizzgig.instantiate %q[ nginx::ssl_site{'foo': } ]
|
119
|
+
catalog.should contain_nginx__site('foo') # ok, will pass
|
120
|
+
catalog.should contain_file('/etc/nginx/sites-enabled/foo') # ERROR, will fail
|
121
|
+
-------------
|
122
|
+
|
123
|
+
Because the file resource is not directly referenced by
|
124
|
+
+nginx::ssl_site+ but only transitively by +nginx::site+, Fizzgig will
|
125
|
+
not add it to the catalog. This means that Fizzgig will only test the
|
126
|
+
direct effects of the type under test, not of its collaborators.
|
127
|
+
|
128
|
+
|
129
|
+
WARNING: Fizzgig makes use of non-public methods in the puppet
|
130
|
+
codebase to enable it to perform this isolation. This means that even
|
131
|
+
a patch release of puppet may, in principle, cause fizzgig to
|
132
|
+
break. Fizzgig is not currently supported in any way by
|
133
|
+
puppetlabs. Use at your own risk.
|
134
|
+
|
135
|
+
Installation
|
136
|
+
~~~~~~~~~~~~
|
137
|
+
|
138
|
+
Add the following to your Gemfile:
|
139
|
+
|
140
|
+
[source,ruby]
|
141
|
+
gem "fizzgig"
|
142
|
+
|
143
|
+
Or just run:
|
144
|
+
|
145
|
+
[source]
|
146
|
+
gem install fizzgig
|
147
|
+
|
148
|
+
Licence
|
149
|
+
~~~~~~~
|
150
|
+
|
151
|
+
MIT. See LICENSE for details.
|
data/TODO.org
CHANGED
@@ -31,7 +31,19 @@ from rspec-puppet?
|
|
31
31
|
node_obj = Puppet::Node.new(nodename) # default to Puppet[:certname]?
|
32
32
|
node_obj.merge(facts_val) # but what is this?
|
33
33
|
|
34
|
-
**
|
34
|
+
** DONE Release it!
|
35
|
+
** DONE Fix bug where multiple with_foo() conditions would be overridden by the last
|
36
|
+
=should contain_file('foo').with_content(/bar/).with_content(/baz/)=
|
37
|
+
would not check =/bar/=, only =/baz/=, for example
|
38
|
+
** DONE Document it!
|
39
|
+
- [X] gem install or gemfile line
|
40
|
+
** DONE Issue with global Puppet settings config & running rspec-puppet simultaneously with puppet...
|
41
|
+
See the fizzgig branch of puppet for an example
|
42
|
+
|
43
|
+
Can we isolate the compiler from the settings?
|
44
|
+
|
45
|
+
Answer seems to be yes -- use puppetlabs_spec_helper or directly
|
46
|
+
Puppet::Test::TestHelper to tear down Puppet.settings after each test.
|
35
47
|
** TODO Ensure that modulepath can take multiple directories
|
36
48
|
- in govuk/puppet, we had trouble having multiple directories on
|
37
49
|
the module path, so we ended up doing this:
|
@@ -56,8 +68,7 @@ node_obj.merge(facts_val) # but what is this?
|
|
56
68
|
|
57
69
|
That's not so cool :(
|
58
70
|
|
59
|
-
**
|
60
|
-
** TODO Release it!
|
71
|
+
** DONE Rename
|
61
72
|
** TODO implementation-independent dependency assertions
|
62
73
|
** TODO Test standalone puppet modules
|
63
74
|
** TODO better test output for files with large content
|
data/fizzgig.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'fizzgig'
|
3
|
-
s.version = '0.1.
|
3
|
+
s.version = '0.1.1'
|
4
4
|
s.homepage = 'https://github.com/philandstuff/fizzgig'
|
5
5
|
s.summary = 'Tools for writing fast unit tests for Puppet'
|
6
6
|
s.description = 'Tools for writing fast unit tests for Puppet'
|
data/lib/fizzgig.rb
CHANGED
@@ -48,10 +48,10 @@ module Fizzgig
|
|
48
48
|
end
|
49
49
|
|
50
50
|
def self.setup_puppet
|
51
|
-
Puppet[:
|
51
|
+
Puppet[:code] = ' ' # hack to suppress puppet from looking at Puppet[:manifest]
|
52
52
|
Puppet[:modulepath] = RSpec.configuration.modulepath
|
53
53
|
# stop template() fn from complaining about missing vardir config
|
54
|
-
Puppet[:
|
54
|
+
Puppet[:vardir] ||= ""
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
data/lib/fizzgig/matchers.rb
CHANGED
@@ -15,11 +15,13 @@ module Fizzgig
|
|
15
15
|
@catalog = catalog
|
16
16
|
resource = catalog.resource(@referenced_type,@expected_title)
|
17
17
|
if resource then
|
18
|
-
(@expected_params || {}).all? do |name,
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
18
|
+
(@expected_params || {}).all? do |name,expected_vals|
|
19
|
+
expected_vals.all? do |expected_val|
|
20
|
+
if expected_val.kind_of?(Regexp)
|
21
|
+
resource[name] =~ expected_val
|
22
|
+
else
|
23
|
+
resource[name] == expected_val
|
24
|
+
end
|
23
25
|
end
|
24
26
|
end
|
25
27
|
else
|
@@ -28,20 +30,19 @@ module Fizzgig
|
|
28
30
|
end
|
29
31
|
|
30
32
|
def failure_message_for_should
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
actual = possible_resource ? possible_resource.inspect : "the catalog"
|
37
|
-
"expected #{actual} to contain #{@referenced_type}[#{@expected_title}]#{param_string}"
|
33
|
+
"expected #{actual_string} to contain #{expected_string}"
|
34
|
+
end
|
35
|
+
|
36
|
+
def failure_message_for_should_not
|
37
|
+
"expected #{actual_string} not to contain #{expected_string}"
|
38
38
|
end
|
39
39
|
|
40
40
|
def method_missing(method, *args, &block)
|
41
41
|
if method.to_s =~ /^with_/
|
42
42
|
param = method.to_s.gsub(/^with_/,'')
|
43
43
|
@expected_params ||= {}
|
44
|
-
@expected_params[param]
|
44
|
+
@expected_params[param] ||= []
|
45
|
+
@expected_params[param] << args[0]
|
45
46
|
self
|
46
47
|
else
|
47
48
|
super
|
@@ -50,6 +51,19 @@ module Fizzgig
|
|
50
51
|
|
51
52
|
private
|
52
53
|
|
54
|
+
def actual_string
|
55
|
+
possible_resource = @catalog.resource(@referenced_type,@expected_title)
|
56
|
+
possible_resource ? possible_resource.inspect : "the catalog"
|
57
|
+
end
|
58
|
+
|
59
|
+
def expected_string
|
60
|
+
param_string = ""
|
61
|
+
if @expected_params
|
62
|
+
param_string = " with parameters #{@expected_params.inspect}"
|
63
|
+
end
|
64
|
+
"#{@referenced_type}[#{@expected_title}]#{param_string}"
|
65
|
+
end
|
66
|
+
|
53
67
|
def referenced_type(type)
|
54
68
|
type.split('__').map { |r| r.capitalize }.join('::')
|
55
69
|
end
|
data/spec/fizzgig_spec.rb
CHANGED
@@ -2,110 +2,113 @@ require 'spec_helper'
|
|
2
2
|
require 'fizzgig'
|
3
3
|
|
4
4
|
describe Fizzgig do
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
instance.should contain_file('/etc/nginx/sites-enabled/foo').
|
10
|
-
with_ensure('present').
|
11
|
-
with_mode('0440')
|
12
|
-
end
|
5
|
+
describe '#include' do
|
6
|
+
subject { Fizzgig.include(classname, :stubs => stubs, :facts => facts) }
|
7
|
+
let(:stubs) { {} }
|
8
|
+
let(:facts) { {} }
|
13
9
|
|
14
|
-
|
15
|
-
|
16
|
-
instance = Fizzgig.instantiate(instance_code)
|
17
|
-
instance.should contain_user('www-data')
|
18
|
-
end
|
10
|
+
describe 'webapp' do
|
11
|
+
let(:classname) {'webapp'}
|
19
12
|
|
20
|
-
|
21
|
-
instance_code = %q[nginx::simple_server {'foo':}]
|
22
|
-
instance = Fizzgig.instantiate(instance_code)
|
23
|
-
instance.should contain_nginx__site('foo')
|
13
|
+
it { should contain_nginx__site('webapp') }
|
24
14
|
end
|
25
15
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
end
|
33
|
-
|
34
|
-
it 'should test classes' do
|
35
|
-
catalog = Fizzgig.include 'webapp'
|
36
|
-
catalog.should contain_nginx__site('webapp')
|
37
|
-
end
|
16
|
+
describe 'functions::class_test' do
|
17
|
+
let(:classname) {'functions::class_test'}
|
18
|
+
context 'with extlookup stubbed out' do
|
19
|
+
let(:stubs) { {:extlookup => {'ssh-key-barry' => 'the key of S'}} }
|
20
|
+
it { should contain_ssh_authorized_key('barry').with_key('the key of S') }
|
21
|
+
end
|
38
22
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
23
|
+
context 'with extlookup stubbed with wrong key' do
|
24
|
+
let(:stubs) { {:extlookup => {'bananas' => 'potassium'}} }
|
25
|
+
it 'should throw an exception' do
|
26
|
+
expect { subject }.to raise_error Puppet::Error
|
27
|
+
end
|
28
|
+
end
|
44
29
|
end
|
45
30
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
31
|
+
describe 'functions::recursive_extlookup_test' do
|
32
|
+
let(:classname) {'functions::recursive_extlookup_test'}
|
33
|
+
let(:stubs) {
|
34
|
+
{:extlookup =>
|
35
|
+
{ 'ssh-key-barry' => 'rsa-key-barry',
|
36
|
+
'rsa-key-barry' => 'the key of S'}}
|
37
|
+
}
|
38
|
+
it { should contain_ssh_authorized_key('barry').with_key('the key of S') }
|
50
39
|
end
|
51
40
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
41
|
+
describe 'facts::class_test' do
|
42
|
+
let(:classname) {'facts::class_test'}
|
43
|
+
let(:facts) {
|
44
|
+
{ 'unqualified_fact' => 'F',
|
45
|
+
'qualified_fact' => 'B+',
|
46
|
+
'template_visible_fact' => 'wibble' }}
|
47
|
+
it { should contain_notify('unqualified-fact-test').with_message('F') }
|
48
|
+
it { should contain_notify('qualified-fact-test').with_message('B+') }
|
49
|
+
it { should contain_file('template-test').with_content(/instance_fact:wibble/) }
|
50
|
+
it { should contain_file('template-test').with_content(/accessor_fact:wibble/) }
|
51
|
+
it { should contain_file('template-test').with_content(/scope_lookup_fact:wibble/) }
|
58
52
|
end
|
59
53
|
end
|
60
54
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
'rsa-key-barry' => 'the key of S'}}
|
66
|
-
Fizzgig.include('functions::recursive_extlookup_test', :stubs => stubs).
|
67
|
-
should contain_ssh_authorized_key('barry').with_key('the key of S')
|
68
|
-
end
|
69
|
-
end
|
55
|
+
describe '#instantiate' do
|
56
|
+
subject { Fizzgig.instantiate(code, :stubs => stubs, :facts => facts) }
|
57
|
+
let(:stubs) { {} }
|
58
|
+
let(:facts) { {} }
|
70
59
|
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
60
|
+
describe 'params' do
|
61
|
+
context 'when specifying one parameter' do
|
62
|
+
let(:code) { %q[params_test {'foo': param => 'bar'}] }
|
63
|
+
it { should contain_file('foo-param').with_source('bar') }
|
64
|
+
it { should contain_notify('foo-default').with_message('default_val') }
|
76
65
|
end
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
66
|
+
context 'when specifying both paramaters' do
|
67
|
+
let(:code) { %q[params_test {'foo': param => 'bar', param_with_default => 'baz'}] }
|
68
|
+
it { should contain_file('foo-param').with_source('bar') }
|
69
|
+
it { should contain_notify('foo-default').with_message('baz') }
|
81
70
|
end
|
82
71
|
end
|
83
72
|
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
73
|
+
describe 'nginx::site' do
|
74
|
+
context 'basic functionality' do
|
75
|
+
let(:code) { %q[nginx::site {'foo': content => 'dontcare'}] }
|
76
|
+
it { should contain_file('/etc/nginx/sites-enabled/foo').
|
77
|
+
with_ensure('present').
|
78
|
+
with_mode('0440')
|
79
|
+
}
|
80
|
+
it { should_not contain_file('/etc/nginx/sites-enabled/foo').
|
81
|
+
with_ensure(/text not present/). # test that this doesn't get ignored
|
82
|
+
with_ensure(/present/)
|
83
|
+
}
|
84
|
+
it { should contain_user('www-data') }
|
93
85
|
end
|
86
|
+
end
|
94
87
|
|
95
|
-
|
96
|
-
|
97
|
-
|
88
|
+
describe 'nginx::simple_server' do
|
89
|
+
context 'basic functionality' do
|
90
|
+
let(:code) { %q[nginx::simple_server {'foo':}] }
|
91
|
+
it { should contain_nginx__site('foo').
|
92
|
+
with_content(/server_name foo;/)
|
93
|
+
}
|
98
94
|
end
|
95
|
+
end
|
99
96
|
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
97
|
+
context 'functions::define_test with function stubs' do
|
98
|
+
let(:stubs) { {:extlookup => {'ssh-key-barry' => 'the key of S'}} }
|
99
|
+
let(:code) { %[functions::define_test{'foo': }] }
|
100
|
+
it { should contain_ssh_authorized_key('barry').with_key('the key of S') }
|
101
|
+
end
|
104
102
|
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
103
|
+
describe 'facts::define_test' do
|
104
|
+
let(:classname) {'facts::define_test'}
|
105
|
+
let(:code) {%q[facts::define_test{'test':}]}
|
106
|
+
let(:facts) {
|
107
|
+
{ 'unqualified_fact' => 'no qualifications',
|
108
|
+
'qualified_fact' => 'cse ungraded in metalwork'}
|
109
|
+
}
|
110
|
+
it { should contain_notify('unqualified-fact-test').with_message('no qualifications') }
|
111
|
+
it { should contain_notify('qualified-fact-test').with_message('cse ungraded in metalwork') }
|
109
112
|
end
|
110
113
|
end
|
111
114
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fizzgig
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-03-
|
12
|
+
date: 2013-03-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: puppet
|
@@ -66,7 +66,10 @@ extensions: []
|
|
66
66
|
extra_rdoc_files: []
|
67
67
|
files:
|
68
68
|
- .gitignore
|
69
|
+
- CHANGELOG.md
|
69
70
|
- Gemfile
|
71
|
+
- LICENSE
|
72
|
+
- README.asciidoc
|
70
73
|
- TODO.org
|
71
74
|
- fizzgig.gemspec
|
72
75
|
- lib/fizzgig.rb
|
@@ -75,7 +78,6 @@ files:
|
|
75
78
|
- spec/fizzgig_spec.rb
|
76
79
|
- spec/modules/facts/manifests/class_test.pp
|
77
80
|
- spec/modules/facts/manifests/define_test.pp
|
78
|
-
- spec/modules/facts/manifests/template_test.pp
|
79
81
|
- spec/modules/facts/templates/template-test.erb
|
80
82
|
- spec/modules/functions/manifests/class_test.pp
|
81
83
|
- spec/modules/functions/manifests/define_test.pp
|
@@ -83,6 +85,7 @@ files:
|
|
83
85
|
- spec/modules/nginx/manifests/simple_server.pp
|
84
86
|
- spec/modules/nginx/manifests/site.pp
|
85
87
|
- spec/modules/nginx/templates/vhost.erb
|
88
|
+
- spec/modules/params_test/manifests/init.pp
|
86
89
|
- spec/modules/webapp/manifests/init.pp
|
87
90
|
- spec/spec_helper.rb
|
88
91
|
homepage: https://github.com/philandstuff/fizzgig
|
@@ -113,7 +116,6 @@ test_files:
|
|
113
116
|
- spec/fizzgig_spec.rb
|
114
117
|
- spec/modules/facts/manifests/class_test.pp
|
115
118
|
- spec/modules/facts/manifests/define_test.pp
|
116
|
-
- spec/modules/facts/manifests/template_test.pp
|
117
119
|
- spec/modules/facts/templates/template-test.erb
|
118
120
|
- spec/modules/functions/manifests/class_test.pp
|
119
121
|
- spec/modules/functions/manifests/define_test.pp
|
@@ -121,5 +123,6 @@ test_files:
|
|
121
123
|
- spec/modules/nginx/manifests/simple_server.pp
|
122
124
|
- spec/modules/nginx/manifests/site.pp
|
123
125
|
- spec/modules/nginx/templates/vhost.erb
|
126
|
+
- spec/modules/params_test/manifests/init.pp
|
124
127
|
- spec/modules/webapp/manifests/init.pp
|
125
128
|
- spec/spec_helper.rb
|