fizzgig 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +9 -0
- data/TODO.org +3 -3
- data/fizzgig.gemspec +1 -1
- data/lib/fizzgig.rb +14 -3
- data/spec/fizzgig_spec.rb +7 -0
- data/spec/manifests/site.pp +6 -0
- data/spec/spec_helper.rb +1 -0
- metadata +3 -1
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
# 0.2.1
|
2
|
+
|
3
|
+
* Added support for evaluating nodes using Fizzgig.node(hostname)
|
4
|
+
|
5
|
+
# 0.2.0
|
6
|
+
|
7
|
+
* Changed function stubs to allow multi-arg functions. This broke
|
8
|
+
existing code, since single args need to be wrapped in an Array.
|
9
|
+
|
1
10
|
# 0.1.1
|
2
11
|
|
3
12
|
* fixed bug to allow multiple conditions on a matcher, eg:
|
data/TODO.org
CHANGED
@@ -70,6 +70,9 @@ That's not so cool :(
|
|
70
70
|
|
71
71
|
** DONE Rename
|
72
72
|
** DONE functions with multiple arguments
|
73
|
+
** DONE nodes
|
74
|
+
See govuk_nodes_spec_optional for examples of this.
|
75
|
+
the rspec-puppet equivalent is :type => :host
|
73
76
|
** TODO implementation-independent dependency assertions
|
74
77
|
** TODO Test standalone puppet modules
|
75
78
|
** TODO better test output for files with large content
|
@@ -82,6 +85,3 @@ maybe testing functions more generally?
|
|
82
85
|
helpful here
|
83
86
|
** TODO Parameterized classes
|
84
87
|
** TODO Preconditions (do I actually want this?)
|
85
|
-
** TODO nodes
|
86
|
-
See govuk_nodes_spec_optional for examples of this.
|
87
|
-
the rspec-puppet equivalent is :type => :host
|
data/fizzgig.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'fizzgig'
|
3
|
-
s.version = '0.2.
|
3
|
+
s.version = '0.2.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
@@ -23,8 +23,18 @@ module Fizzgig
|
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
|
-
def self.
|
27
|
-
|
26
|
+
def self.node(hostname,options = {})
|
27
|
+
LSpace.with(:function_stubs => options[:stubs]) do
|
28
|
+
setup_puppet
|
29
|
+
Puppet[:code] = '' # we want puppet to import the Puppet[:manifest] file
|
30
|
+
compiler = make_compiler(options[:facts], hostname)
|
31
|
+
compiler.send :evaluate_ast_node
|
32
|
+
compiler.catalog
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.make_compiler(facts,hostname='localhost')
|
37
|
+
node = Puppet::Node.new(hostname)
|
28
38
|
node.merge(facts) if facts
|
29
39
|
compiler = Puppet::Parser::Compiler.new(node)
|
30
40
|
compiler.send :set_node_parameters
|
@@ -50,6 +60,7 @@ module Fizzgig
|
|
50
60
|
def self.setup_puppet
|
51
61
|
Puppet[:code] = ' ' # hack to suppress puppet from looking at Puppet[:manifest]
|
52
62
|
Puppet[:modulepath] = RSpec.configuration.modulepath
|
63
|
+
Puppet[:manifestdir] = RSpec.configuration.manifestdir
|
53
64
|
# stop template() fn from complaining about missing vardir config
|
54
65
|
Puppet[:vardir] ||= ""
|
55
66
|
end
|
@@ -57,9 +68,9 @@ end
|
|
57
68
|
|
58
69
|
RSpec.configure do |c|
|
59
70
|
c.add_setting :modulepath, :default => '/etc/puppet/modules'
|
71
|
+
c.add_setting :manifestdir, :default => nil
|
60
72
|
|
61
73
|
# FIXME: decide if these are needed
|
62
|
-
#c.add_setting :manifestdir, :default => nil
|
63
74
|
#c.add_setting :manifest, :default => nil
|
64
75
|
#c.add_setting :template_dir, :default => nil
|
65
76
|
#c.add_setting :config, :default => nil
|
data/spec/fizzgig_spec.rb
CHANGED
@@ -112,4 +112,11 @@ describe Fizzgig do
|
|
112
112
|
it { should contain_notify('qualified-fact-test').with_message('cse ungraded in metalwork') }
|
113
113
|
end
|
114
114
|
end
|
115
|
+
|
116
|
+
describe '#node' do
|
117
|
+
subject { Fizzgig.node('foo.com') }
|
118
|
+
it {
|
119
|
+
# require 'pp'; pp subject
|
120
|
+
should contain_nginx__site('foo.com') }
|
121
|
+
end
|
115
122
|
end
|
data/spec/spec_helper.rb
CHANGED
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.2.
|
4
|
+
version: 0.2.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -79,6 +79,7 @@ files:
|
|
79
79
|
- spec/extra_modules/webapp/manifests/init.pp
|
80
80
|
- spec/fizzgig/function_stubs_spec.rb
|
81
81
|
- spec/fizzgig_spec.rb
|
82
|
+
- spec/manifests/site.pp
|
82
83
|
- spec/modules/facts/manifests/class_test.pp
|
83
84
|
- spec/modules/facts/manifests/define_test.pp
|
84
85
|
- spec/modules/facts/templates/template-test.erb
|
@@ -120,6 +121,7 @@ test_files:
|
|
120
121
|
- spec/extra_modules/webapp/manifests/init.pp
|
121
122
|
- spec/fizzgig/function_stubs_spec.rb
|
122
123
|
- spec/fizzgig_spec.rb
|
124
|
+
- spec/manifests/site.pp
|
123
125
|
- spec/modules/facts/manifests/class_test.pp
|
124
126
|
- spec/modules/facts/manifests/define_test.pp
|
125
127
|
- spec/modules/facts/templates/template-test.erb
|