cucumber-puppet 0.3.3 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,5 @@
1
1
  ---
2
2
  :build:
3
- :patch: 3
3
+ :patch: 4
4
4
  :minor: 3
5
5
  :major: 0
@@ -65,6 +65,19 @@ module CucumberPuppetGenerators
65
65
  file('site.pp', 'site.pp', "#{destdir}/site.pp")
66
66
  end
67
67
 
68
+ class TestsuiteGenerator < Templater::Generator
69
+ def self.source_root
70
+ File.join(File.dirname(__FILE__), '..', 'lib', 'generators', 'testsuite')
71
+ end
72
+
73
+ desc <<-DESC
74
+ Generate a test suite for puppet features
75
+ cucumber-puppet-gen testsuite
76
+ DESC
77
+
78
+ glob!
79
+ end
80
+
68
81
  class WorldGenerator < Templater::Generator
69
82
  def source_root
70
83
  File.join(File.dirname(__FILE__), '..', 'lib', 'generators', 'world')
@@ -91,6 +104,7 @@ module CucumberPuppetGenerators
91
104
  add :feature, FeatureGenerator
92
105
  add :policy, PolicyGenerator
93
106
  add :testcase, TestcaseGenerator
107
+ add :testsuite, TestsuiteGenerator
94
108
  add :world, WorldGenerator
95
109
 
96
110
  end
@@ -61,25 +61,11 @@ class CucumberPuppet
61
61
  node.merge(@facts)
62
62
  end
63
63
 
64
+ # Compile our catalog
64
65
  begin
65
- # Compile our catalog
66
- begin
67
- @catalog = Puppet::Resource::Catalog.indirection.find(node.name, :use_node => node)
68
- rescue NameError
69
- @catalog = Puppet::Node::Catalog.find(node.name, :use_node => node)
70
- end
71
- rescue => detail
72
- if Puppet[:trace]
73
- puts detail.backtrace
74
- end
75
- if detail.is_a?(XMLRPC::FaultException)
76
- $stderr.puts detail.message
77
- elsif detail.is_a?(Puppet::Error)
78
- raise Puppet::Error, detail.message
79
- else
80
- $stderr.puts detail
81
- end
82
- exit 1
66
+ @catalog = Puppet::Resource::Catalog.indirection.find(node.name, :use_node => node)
67
+ rescue NameError
68
+ @catalog = Puppet::Node::Catalog.find(node.name, :use_node => node)
83
69
  end
84
70
 
85
71
  # XXX could not find this in puppet
@@ -12,10 +12,15 @@ Given /^I use storeconfigs$/ do
12
12
  end
13
13
 
14
14
  When /^I compile its catalog$/ do
15
+ compile_catalog(@node)
16
+ end
17
+
18
+ When /^I try to compile its catalog$/ do
15
19
  @compile_error = false
16
20
  begin
17
21
  compile_catalog(@node)
18
- rescue
22
+ rescue => e
23
+ @compile_error_msg = e
19
24
  @compile_error = true
20
25
  end
21
26
  end
@@ -41,6 +46,6 @@ Then /^all "(before|notify|require|subscribe)" should resolve$/ do |parameter|
41
46
  end
42
47
 
43
48
  Then /^compilation should succeed$/ do
44
- fail("Catalog compilation failed.") unless
49
+ fail("Catalog compilation failed: #{@compile_error_msg}") unless
45
50
  @catalog.is_a?(Puppet::Resource::Catalog)
46
51
  end
@@ -60,12 +60,11 @@ Given /^it is a virtual node$/ do
60
60
  end
61
61
 
62
62
  When /^I compile the catalog$/ do
63
- @compile_error = false
64
- begin
65
- compile_catalog
66
- rescue
67
- @compile_error = true
68
- end
63
+ steps %Q{ When I compile its catalog }
64
+ end
65
+
66
+ When /^I try to compile the catalog$/ do
67
+ steps %Q{ When I try to compile its catalog }
69
68
  end
70
69
 
71
70
  Then /^compilation should fail$/ do
@@ -93,15 +92,17 @@ Then /^the [a-z]* should have an? "([^\"]*)" of "([^\"]*)"$/ do |property, value
93
92
  value = value.split
94
93
  end
95
94
 
96
- prop = @resource[property]
95
+ prop = []
96
+ @resource[property].each do |p|
97
+ prop << p.to_s
98
+ end
97
99
  elsif @resource[property].is_a?(String)
98
100
  prop = @resource[property]
99
101
  else
100
102
  fail "Class #{@resource[property].class} not supported. Please modify steps to accomodate."
101
103
  end
102
104
 
103
- fail "Resource #{@resource} had #{property}='#{@resource[property] ? @resource[property] : "<empty>"}', not '#{value}'" \
104
- unless prop == value
105
+ fail "Resource #{@resource} had #{property}='#{prop ? prop.to_s : "<empty>"}', not '#{value}'" unless prop == value
105
106
  end
106
107
 
107
108
  Then /^the [a-z]* should notify "([^\"]*)"$/ do |res|
@@ -121,9 +122,9 @@ Then /^the [a-z]* should require "([^\"]*)"$/ do |res|
121
122
  break
122
123
  end
123
124
  end
124
- fail unless found
125
+ fail("#{@resource} should require #{res}") unless found
125
126
  else
126
- fail unless req.to_s == res
127
+ fail("#{@resource} should require #{res}") unless req.to_s == res
127
128
  end
128
129
  steps %Q{
129
130
  Then the catalog should contain "#{res}"
@@ -131,7 +132,7 @@ Then /^the [a-z]* should require "([^\"]*)"$/ do |res|
131
132
  end
132
133
 
133
134
  Then /^the catalog should contain "([^\"]*)"$/ do |res|
134
- fail unless resource(res)
135
+ fail("#{res} not in catalog") unless resource(res)
135
136
  end
136
137
 
137
138
  Then /^the state should be "([^\"]*)"$/ do |state|
@@ -140,5 +141,10 @@ end
140
141
 
141
142
  Then /^there should be a resource "([^\"]*)"$/ do |res|
142
143
  @resource = resource(res)
143
- fail unless @resource
144
+ fail("#{res} not in catalog") unless @resource
145
+ end
146
+
147
+ Then /^there should be no resource "([^\"]*)"$/ do |res|
148
+ @resource = resource(res)
149
+ fail("#{@resource} in catalog although it shouldn't be") if @resource
144
150
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cucumber-puppet
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 3
10
- version: 0.3.3
9
+ - 4
10
+ version: 0.3.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Nikolay Sturm
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-08-22 00:00:00 Z
18
+ date: 2011-09-04 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: cucumber
@@ -25,12 +25,10 @@ dependencies:
25
25
  requirements:
26
26
  - - ">="
27
27
  - !ruby/object:Gem::Version
28
- hash: 15
28
+ hash: 3
29
29
  segments:
30
30
  - 0
31
- - 6
32
- - 4
33
- version: 0.6.4
31
+ version: "0"
34
32
  type: :runtime
35
33
  version_requirements: *id001
36
34
  - !ruby/object:Gem::Dependency
@@ -41,29 +39,84 @@ dependencies:
41
39
  requirements:
42
40
  - - ">="
43
41
  - !ruby/object:Gem::Version
44
- hash: 23
42
+ hash: 3
45
43
  segments:
46
44
  - 0
47
- - 2
48
- - 0
49
- version: 0.2.0
45
+ version: "0"
50
46
  type: :runtime
51
47
  version_requirements: *id002
52
48
  - !ruby/object:Gem::Dependency
53
- name: templater
49
+ name: puppet
54
50
  prerelease: false
55
51
  requirement: &id003 !ruby/object:Gem::Requirement
56
52
  none: false
57
53
  requirements:
58
54
  - - ">="
59
55
  - !ruby/object:Gem::Version
60
- hash: 15
56
+ hash: 3
61
57
  segments:
62
- - 1
63
58
  - 0
64
- version: "1.0"
59
+ version: "0"
65
60
  type: :runtime
66
61
  version_requirements: *id003
62
+ - !ruby/object:Gem::Dependency
63
+ name: templater
64
+ prerelease: false
65
+ requirement: &id004 !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ hash: 3
71
+ segments:
72
+ - 0
73
+ version: "0"
74
+ type: :runtime
75
+ version_requirements: *id004
76
+ - !ruby/object:Gem::Dependency
77
+ name: facter
78
+ prerelease: false
79
+ requirement: &id005 !ruby/object:Gem::Requirement
80
+ none: false
81
+ requirements:
82
+ - - "="
83
+ - !ruby/object:Gem::Version
84
+ hash: 17
85
+ segments:
86
+ - 1
87
+ - 5
88
+ - 9
89
+ version: 1.5.9
90
+ type: :development
91
+ version_requirements: *id005
92
+ - !ruby/object:Gem::Dependency
93
+ name: ronn
94
+ prerelease: false
95
+ requirement: &id006 !ruby/object:Gem::Requirement
96
+ none: false
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ hash: 3
101
+ segments:
102
+ - 0
103
+ version: "0"
104
+ type: :development
105
+ version_requirements: *id006
106
+ - !ruby/object:Gem::Dependency
107
+ name: rspec
108
+ prerelease: false
109
+ requirement: &id007 !ruby/object:Gem::Requirement
110
+ none: false
111
+ requirements:
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ hash: 3
115
+ segments:
116
+ - 0
117
+ version: "0"
118
+ type: :development
119
+ version_requirements: *id007
67
120
  description: cucumber-puppet is a tool for behavioral testing of Puppet catalogs
68
121
  email: cucumber-puppet@erisiandiscord.de
69
122
  executables:
@@ -86,15 +139,15 @@ files:
86
139
  - man/cucumber-puppet.1
87
140
  - man/cucumber-puppet-gen.1
88
141
  - VERSION.yml
89
- - lib/generators/world/steps/package.rb
90
- - lib/generators/world/steps/exec.rb
142
+ - lib/generators/world/support/world.rb
143
+ - lib/generators/world/support/hooks.rb
91
144
  - lib/generators/world/steps/user.rb
92
- - lib/generators/world/steps/file.rb
93
- - lib/generators/world/steps/cron.rb
94
145
  - lib/generators/world/steps/puppet.rb
146
+ - lib/generators/world/steps/cron.rb
95
147
  - lib/generators/world/steps/service.rb
96
- - lib/generators/world/support/hooks.rb
97
- - lib/generators/world/support/world.rb
148
+ - lib/generators/world/steps/package.rb
149
+ - lib/generators/world/steps/exec.rb
150
+ - lib/generators/world/steps/file.rb
98
151
  homepage: http://projects.puppetlabs.com/projects/cucumber-puppet
99
152
  licenses: []
100
153