cucumber-puppet 0.3.3 → 0.3.4

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.
@@ -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