puppet-retrospec 0.4.0 → 0.5.0
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 +4 -4
- data/Gemfile +5 -6
- data/LICENSE +661 -20
- data/README.md +93 -45
- data/VERSION +1 -1
- data/bin/retrospec +6 -2
- data/lib/{puppet-retrospec.rb → retrospec.rb} +13 -50
- data/lib/retrospec/conditional.rb +53 -0
- data/lib/{helpers.rb → retrospec/helpers.rb} +4 -0
- data/lib/retrospec/resource.rb +37 -0
- data/lib/{templates → retrospec/templates}/acceptance_spec_test.erb +0 -0
- data/lib/{templates → retrospec/templates}/fixtures_file.erb +1 -1
- data/lib/{templates → retrospec/templates}/gemfile.erb +1 -1
- data/lib/{templates → retrospec/templates}/nodesets/centos-59-x64.yml +0 -0
- data/lib/{templates → retrospec/templates}/nodesets/centos-64-x64-pe.yml +0 -0
- data/lib/{templates → retrospec/templates}/nodesets/centos-64-x64.yml +0 -0
- data/lib/{templates → retrospec/templates}/nodesets/centos-65-x64.yml +0 -0
- data/lib/{templates → retrospec/templates}/nodesets/debian-607-x64.yml +0 -0
- data/lib/{templates → retrospec/templates}/nodesets/debian-70rc1-x64.yml +0 -0
- data/lib/{templates → retrospec/templates}/nodesets/debian-73-i386.yml +0 -0
- data/lib/{templates → retrospec/templates}/nodesets/debian-73-x64.yml +0 -0
- data/lib/{templates → retrospec/templates}/nodesets/default.yml +0 -0
- data/lib/{templates → retrospec/templates}/nodesets/fedora-18-x64.yml +0 -0
- data/lib/{templates → retrospec/templates}/nodesets/sles-11sp1-x64.yml +0 -0
- data/lib/{templates → retrospec/templates}/nodesets/ubuntu-server-10044-x64.yml +0 -0
- data/lib/{templates → retrospec/templates}/nodesets/ubuntu-server-12042-x64.yml +0 -0
- data/lib/{templates → retrospec/templates}/nodesets/ubuntu-server-1310-x64.yml +0 -0
- data/lib/{templates → retrospec/templates}/nodesets/ubuntu-server-1404-x64.yml +0 -0
- data/lib/{templates → retrospec/templates}/rakefile.erb +0 -0
- data/lib/retrospec/templates/resource_spec_file.erb +45 -0
- data/lib/{templates → retrospec/templates}/shared_context.erb +3 -1
- data/lib/{templates → retrospec/templates}/spec_helper_acceptance.rb.erb +0 -0
- data/lib/{templates → retrospec/templates}/spec_helper_file.erb +0 -0
- data/lib/retrospec/type_code.rb +18 -0
- data/lib/retrospec/variable_store.rb +82 -0
- data/lib/retrospec/version.rb +3 -0
- data/puppet-retrospec.gemspec +54 -33
- data/spec/fixtures/fixture_modules/one_resource_module/manifests/another_resource_class.pp +28 -0
- data/spec/fixtures/fixture_modules/one_resource_module/manifests/one_resource_class.pp +6 -0
- data/spec/fixtures/fixture_modules/zero_resource_module/manifests/empty_class.pp +3 -0
- data/spec/spec_helper.rb +2 -1
- data/spec/unit/conditional_spec.rb +43 -0
- data/spec/unit/puppet-retrospec_spec.rb +4 -41
- data/spec/unit/resource_spec.rb +62 -0
- data/spec/unit/type_code_spec.rb +39 -0
- data/spec/unit/variable_store_spec.rb +82 -0
- metadata +107 -53
- data/lib/templates/resource_spec_file.erb +0 -40
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'shared_contexts'
|
3
|
+
|
4
|
+
describe '<%= @type.name -%>' do
|
5
|
+
# by default the hiera integration uses hirea data from the shared_contexts.rb file
|
6
|
+
# but basically to mock hiera you first need to add a key/value pair
|
7
|
+
# to the specific context in the spec/shared_contexts.rb file
|
8
|
+
# Note: you can only use a single hiera context per describe/context block
|
9
|
+
# rspec-puppet does not allow you to swap out hiera data on a per test block
|
10
|
+
#include_context :hiera
|
11
|
+
|
12
|
+
<%- if @type.type == :definition -%>
|
13
|
+
let(:title) { 'example_name' }
|
14
|
+
<%- end -%>
|
15
|
+
|
16
|
+
# below is the facts hash that gives you the ability to mock
|
17
|
+
# facts on a per describe/context block. If you use a fact in your
|
18
|
+
# manifest you should mock the facts below.
|
19
|
+
let(:facts) do
|
20
|
+
{}
|
21
|
+
end
|
22
|
+
# below is a list of the resource parameters that you can override.
|
23
|
+
# By default all non-required parameters are commented out,
|
24
|
+
# while all required parameters will require you to add a value
|
25
|
+
let(:params) do
|
26
|
+
{
|
27
|
+
<%- @parameters.each do |k,v| -%>
|
28
|
+
<%- if v.nil? -%>
|
29
|
+
<%= ":#{k} => 'place_value_here'," %>
|
30
|
+
<%- else -%>
|
31
|
+
<%= "#:#{k} => #{v}," %>
|
32
|
+
<%- end -%>
|
33
|
+
<%- end -%>
|
34
|
+
}
|
35
|
+
end
|
36
|
+
# add these two lines in a single test block to enable puppet and hiera debug mode
|
37
|
+
# Puppet::Util::Log.level = :debug
|
38
|
+
# Puppet::Util::Log.newdestination(:console)
|
39
|
+
<%- @resources.each do |res| -%>
|
40
|
+
it do
|
41
|
+
should contain_<%= res.type.gsub('::', '__')%>('<%= res.title %>').
|
42
|
+
with(<%= res.parameters.to_s.gsub(/\",/, "\",\n ") %>)
|
43
|
+
end
|
44
|
+
<%- end -%>
|
45
|
+
end
|
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'hiera-puppet-helper'
|
2
2
|
|
3
|
-
# optional, this should be the path to where the
|
3
|
+
# optional, this should be the path to where the hiera data config file is in this repo
|
4
|
+
# You must update this if your actual hiera data lives inside your module.
|
5
|
+
# I only assume its data, but it could be anything
|
4
6
|
hiera_config_file = File.expand_path(File.join(File.dirname(__FILE__), '..','data', 'hiera.yaml'))
|
5
7
|
|
6
8
|
# hiera_file and hiera_data are mutally exclusive contexts.
|
File without changes
|
File without changes
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class TypeCode
|
2
|
+
attr_reader :type, :variables, :scope_name
|
3
|
+
|
4
|
+
#TODO figure out how to store vardef statements that are contained inside conditional blocks
|
5
|
+
def initialize(type)
|
6
|
+
@scope_name = type.name
|
7
|
+
@type = type
|
8
|
+
end
|
9
|
+
|
10
|
+
def variables
|
11
|
+
if @type.code.respond_to?(:find_all)
|
12
|
+
@variables ||= @type.code.find_all {|i| i.instance_of?(Puppet::Parser::AST::VarDef) }
|
13
|
+
else
|
14
|
+
@variables = []
|
15
|
+
end
|
16
|
+
@variables
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
require 'singleton'
|
2
|
+
require 'retrospec/type_code'
|
3
|
+
|
4
|
+
class VariableStore
|
5
|
+
attr_reader :store
|
6
|
+
|
7
|
+
include Singleton
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
@store = {}
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.instance
|
14
|
+
@@instance ||= new
|
15
|
+
end
|
16
|
+
|
17
|
+
# key should be a variable starting with $
|
18
|
+
# enable_value_conversion converts the value to a string
|
19
|
+
def self.add(key, value, enable_value_conversion=true)
|
20
|
+
key = "$#{key.to_s}" unless key.to_s.start_with?('$')
|
21
|
+
if value.instance_of?(String) or value.instance_of?(Puppet::Parser::AST::String)
|
22
|
+
value = value.to_s.gsub("\"",'')
|
23
|
+
end
|
24
|
+
if enable_value_conversion
|
25
|
+
instance.store[key.to_s] = value.to_s
|
26
|
+
else
|
27
|
+
instance.store[key.to_s] = value
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
# lookup the key in the hash, if we dont' find it lets just return the string representation
|
32
|
+
def self.lookup(key)
|
33
|
+
key = "$#{key.to_s}" unless key.to_s.start_with?('$')
|
34
|
+
begin
|
35
|
+
value = VariableStore.instance.store.fetch(key.to_s)
|
36
|
+
# try and resolve if necessary
|
37
|
+
if [Puppet::Parser::AST::Variable,Puppet::Parser::AST::VarDef].include?(value.class)
|
38
|
+
value = resolve(value)
|
39
|
+
end
|
40
|
+
rescue
|
41
|
+
return key
|
42
|
+
end
|
43
|
+
value
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.variable_resolution(variable)
|
47
|
+
res = nil
|
48
|
+
if variable.instance_of? Puppet::Parser::AST::VarDef
|
49
|
+
res = lookup(variable.name.value)
|
50
|
+
add(variable.name, variable.value,false) unless res.nil?
|
51
|
+
elsif variable.instance_of?(Puppet::Parser::AST::Variable)
|
52
|
+
res = lookup(variable.value)
|
53
|
+
elsif variable.instance_of?(Puppet::Parser::AST::Concat)
|
54
|
+
begin
|
55
|
+
res = variable.value.map { |i| variable_resolution(i)}.join.gsub("\"",'')
|
56
|
+
rescue
|
57
|
+
res = variable.value
|
58
|
+
end
|
59
|
+
else
|
60
|
+
# I give up, I can't find the variable value so will just assign the variable name
|
61
|
+
res = variable.to_s
|
62
|
+
end
|
63
|
+
if not res.nil?
|
64
|
+
if variable.instance_of?(Puppet::Parser::AST::Variable)
|
65
|
+
if not VariableStore.instance.store.keys.include?(variable.to_s)
|
66
|
+
add(variable, res)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
res
|
71
|
+
end
|
72
|
+
|
73
|
+
# will try and resolve the variable to a value by consulting the variables hash
|
74
|
+
def self.resolve(variable)
|
75
|
+
res = variable_resolution(variable)
|
76
|
+
end
|
77
|
+
|
78
|
+
# gets all the variables and passes them through the resolve function to populate the variable store
|
79
|
+
def self.populate(type)
|
80
|
+
TypeCode.new(type).variables.each {|v| add(v.name, resolve(v.value))}
|
81
|
+
end
|
82
|
+
end
|
data/puppet-retrospec.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: puppet-retrospec 0.
|
5
|
+
# stub: puppet-retrospec 0.5.0 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "puppet-retrospec"
|
9
|
-
s.version = "0.
|
9
|
+
s.version = "0.5.0"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["Corey Osman"]
|
14
|
-
s.date = "
|
14
|
+
s.date = "2015-02-09"
|
15
15
|
s.description = "Retrofits and generates valid puppet rspec test code to existing modules"
|
16
16
|
s.email = "corey@logicminds.biz"
|
17
17
|
s.executables = ["retrospec"]
|
@@ -29,48 +29,60 @@ Gem::Specification.new do |s|
|
|
29
29
|
"Rakefile",
|
30
30
|
"VERSION",
|
31
31
|
"bin/retrospec",
|
32
|
-
"lib/
|
33
|
-
"lib/
|
34
|
-
"lib/
|
35
|
-
"lib/
|
36
|
-
"lib/templates/
|
37
|
-
"lib/templates/
|
38
|
-
"lib/templates/
|
39
|
-
"lib/templates/nodesets/centos-
|
40
|
-
"lib/templates/nodesets/centos-
|
41
|
-
"lib/templates/nodesets/
|
42
|
-
"lib/templates/nodesets/
|
43
|
-
"lib/templates/nodesets/debian-
|
44
|
-
"lib/templates/nodesets/debian-
|
45
|
-
"lib/templates/nodesets/
|
46
|
-
"lib/templates/nodesets/
|
47
|
-
"lib/templates/nodesets/
|
48
|
-
"lib/templates/nodesets/
|
49
|
-
"lib/templates/nodesets/
|
50
|
-
"lib/templates/nodesets/ubuntu-server-
|
51
|
-
"lib/templates/nodesets/ubuntu-server-
|
52
|
-
"lib/templates/
|
53
|
-
"lib/templates/
|
54
|
-
"lib/templates/
|
55
|
-
"lib/templates/
|
56
|
-
"lib/templates/
|
32
|
+
"lib/retrospec.rb",
|
33
|
+
"lib/retrospec/conditional.rb",
|
34
|
+
"lib/retrospec/helpers.rb",
|
35
|
+
"lib/retrospec/resource.rb",
|
36
|
+
"lib/retrospec/templates/acceptance_spec_test.erb",
|
37
|
+
"lib/retrospec/templates/fixtures_file.erb",
|
38
|
+
"lib/retrospec/templates/gemfile.erb",
|
39
|
+
"lib/retrospec/templates/nodesets/centos-59-x64.yml",
|
40
|
+
"lib/retrospec/templates/nodesets/centos-64-x64-pe.yml",
|
41
|
+
"lib/retrospec/templates/nodesets/centos-64-x64.yml",
|
42
|
+
"lib/retrospec/templates/nodesets/centos-65-x64.yml",
|
43
|
+
"lib/retrospec/templates/nodesets/debian-607-x64.yml",
|
44
|
+
"lib/retrospec/templates/nodesets/debian-70rc1-x64.yml",
|
45
|
+
"lib/retrospec/templates/nodesets/debian-73-i386.yml",
|
46
|
+
"lib/retrospec/templates/nodesets/debian-73-x64.yml",
|
47
|
+
"lib/retrospec/templates/nodesets/default.yml",
|
48
|
+
"lib/retrospec/templates/nodesets/fedora-18-x64.yml",
|
49
|
+
"lib/retrospec/templates/nodesets/sles-11sp1-x64.yml",
|
50
|
+
"lib/retrospec/templates/nodesets/ubuntu-server-10044-x64.yml",
|
51
|
+
"lib/retrospec/templates/nodesets/ubuntu-server-12042-x64.yml",
|
52
|
+
"lib/retrospec/templates/nodesets/ubuntu-server-1310-x64.yml",
|
53
|
+
"lib/retrospec/templates/nodesets/ubuntu-server-1404-x64.yml",
|
54
|
+
"lib/retrospec/templates/rakefile.erb",
|
55
|
+
"lib/retrospec/templates/resource_spec_file.erb",
|
56
|
+
"lib/retrospec/templates/shared_context.erb",
|
57
|
+
"lib/retrospec/templates/spec_helper_acceptance.rb.erb",
|
58
|
+
"lib/retrospec/templates/spec_helper_file.erb",
|
59
|
+
"lib/retrospec/type_code.rb",
|
60
|
+
"lib/retrospec/variable_store.rb",
|
61
|
+
"lib/retrospec/version.rb",
|
57
62
|
"puppet-retrospec.gemspec",
|
63
|
+
"spec/fixtures/fixture_modules/one_resource_module/manifests/another_resource_class.pp",
|
64
|
+
"spec/fixtures/fixture_modules/one_resource_module/manifests/one_resource_class.pp",
|
65
|
+
"spec/fixtures/fixture_modules/zero_resource_module/manifests/empty_class.pp",
|
58
66
|
"spec/fixtures/fixture_modules/zero_resource_module/manifests/not_a_resource_defination.pp",
|
59
67
|
"spec/fixtures/manifests/includes-class.pp",
|
60
68
|
"spec/fixtures/manifests/includes-defines.pp",
|
61
69
|
"spec/spec_helper.rb",
|
62
|
-
"spec/unit/
|
70
|
+
"spec/unit/conditional_spec.rb",
|
71
|
+
"spec/unit/puppet-retrospec_spec.rb",
|
72
|
+
"spec/unit/resource_spec.rb",
|
73
|
+
"spec/unit/type_code_spec.rb",
|
74
|
+
"spec/unit/variable_store_spec.rb"
|
63
75
|
]
|
64
76
|
s.homepage = "http://github.com/logicminds/puppet-retrospec"
|
65
77
|
s.licenses = ["MIT"]
|
66
|
-
s.rubygems_version = "2.4.
|
78
|
+
s.rubygems_version = "2.4.5"
|
67
79
|
s.summary = "Generates puppet rspec test code based on the classes and defines inside the manifests directory. Aims to reduce some of the boilerplate coding with default test patterns."
|
68
80
|
|
69
81
|
if s.respond_to? :specification_version then
|
70
82
|
s.specification_version = 4
|
71
83
|
|
72
84
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
73
|
-
s.add_runtime_dependency(%q<puppet>, ["
|
85
|
+
s.add_runtime_dependency(%q<puppet>, ["= 3.7.3"])
|
74
86
|
s.add_runtime_dependency(%q<trollop>, [">= 0"])
|
75
87
|
s.add_development_dependency(%q<rspec>, ["~> 2.14"])
|
76
88
|
s.add_development_dependency(%q<yard>, ["~> 0.7"])
|
@@ -79,8 +91,11 @@ Gem::Specification.new do |s|
|
|
79
91
|
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
80
92
|
s.add_development_dependency(%q<pry>, [">= 0"])
|
81
93
|
s.add_development_dependency(%q<fakefs>, [">= 0"])
|
94
|
+
s.add_development_dependency(%q<pry-rescue>, [">= 0"])
|
95
|
+
s.add_development_dependency(%q<pry-stack_explorer>, [">= 0"])
|
96
|
+
s.add_development_dependency(%q<pry-coolline>, [">= 0"])
|
82
97
|
else
|
83
|
-
s.add_dependency(%q<puppet>, ["
|
98
|
+
s.add_dependency(%q<puppet>, ["= 3.7.3"])
|
84
99
|
s.add_dependency(%q<trollop>, [">= 0"])
|
85
100
|
s.add_dependency(%q<rspec>, ["~> 2.14"])
|
86
101
|
s.add_dependency(%q<yard>, ["~> 0.7"])
|
@@ -89,9 +104,12 @@ Gem::Specification.new do |s|
|
|
89
104
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
90
105
|
s.add_dependency(%q<pry>, [">= 0"])
|
91
106
|
s.add_dependency(%q<fakefs>, [">= 0"])
|
107
|
+
s.add_dependency(%q<pry-rescue>, [">= 0"])
|
108
|
+
s.add_dependency(%q<pry-stack_explorer>, [">= 0"])
|
109
|
+
s.add_dependency(%q<pry-coolline>, [">= 0"])
|
92
110
|
end
|
93
111
|
else
|
94
|
-
s.add_dependency(%q<puppet>, ["
|
112
|
+
s.add_dependency(%q<puppet>, ["= 3.7.3"])
|
95
113
|
s.add_dependency(%q<trollop>, [">= 0"])
|
96
114
|
s.add_dependency(%q<rspec>, ["~> 2.14"])
|
97
115
|
s.add_dependency(%q<yard>, ["~> 0.7"])
|
@@ -100,6 +118,9 @@ Gem::Specification.new do |s|
|
|
100
118
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
101
119
|
s.add_dependency(%q<pry>, [">= 0"])
|
102
120
|
s.add_dependency(%q<fakefs>, [">= 0"])
|
121
|
+
s.add_dependency(%q<pry-rescue>, [">= 0"])
|
122
|
+
s.add_dependency(%q<pry-stack_explorer>, [">= 0"])
|
123
|
+
s.add_dependency(%q<pry-coolline>, [">= 0"])
|
103
124
|
end
|
104
125
|
end
|
105
126
|
|
@@ -0,0 +1,28 @@
|
|
1
|
+
class one_resource::another_resource(
|
2
|
+
$var1 = 'value1',
|
3
|
+
$var2 = 'value2',
|
4
|
+
$file_name = '/tmp/test3',
|
5
|
+
$config_base_path = '/etc/hammer'
|
6
|
+
|
7
|
+
){
|
8
|
+
$some_var = "oohhhh"
|
9
|
+
$concat_var = "${file_name}/test3183/${some_var}"
|
10
|
+
$cli_modules = "${config_base_path}/cli.modules.d"
|
11
|
+
|
12
|
+
file{'/tmp/test2':
|
13
|
+
ensure => present,
|
14
|
+
}
|
15
|
+
file{$file_name:
|
16
|
+
ensure => present,
|
17
|
+
content => $concat_var
|
18
|
+
}
|
19
|
+
if $file_name {
|
20
|
+
$if_var1 = 'if_var1_value1'
|
21
|
+
file{"$file_name/3":
|
22
|
+
ensure => present,
|
23
|
+
}
|
24
|
+
}
|
25
|
+
else {
|
26
|
+
$if_var1 = 'if_var1_value2'
|
27
|
+
}
|
28
|
+
}
|
data/spec/spec_helper.rb
CHANGED
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "conditional" do
|
4
|
+
after :all do
|
5
|
+
# enabling the removal slows down tests, but from time to time we may need to
|
6
|
+
FileUtils.rm_rf(fixture_modules_path) if ENV['RETROSPEC_CLEAN_UP_TEST_MODULES'] =~ /true/
|
7
|
+
end
|
8
|
+
|
9
|
+
before :all do
|
10
|
+
# enabling the removal of real modules slows down tests, but from time to time we may need to
|
11
|
+
FileUtils.rm_rf(fixture_modules_path) if ENV['RETROSPEC_CLEAN_UP_TEST_MODULES'] =~ /true/
|
12
|
+
end
|
13
|
+
|
14
|
+
before :each do
|
15
|
+
my_path = File.expand_path(File.join('spec', 'fixtures', 'fixture_modules', 'one_resource_module'))
|
16
|
+
my_retro = Retrospec.new(my_path)
|
17
|
+
@test_type = my_retro.types.find {|x| x.name == 'one_resource::another_resource'}
|
18
|
+
Resource.all(@test_type)
|
19
|
+
conds = Conditional.find_conditionals(@test_type)
|
20
|
+
@con = Conditional.new(conds.first, @test_type.arguments)
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should initialize ' do
|
24
|
+
expect(@con.class).to eq(Conditional)
|
25
|
+
end
|
26
|
+
|
27
|
+
|
28
|
+
it 'should generate conditional resources' do
|
29
|
+
r = Conditional.all(@test_type)
|
30
|
+
VariableStore.populate(@test_type)
|
31
|
+
expect(r.length).to eq(1)
|
32
|
+
expect(r[0].parameters).to eq({"ensure"=>"present"})
|
33
|
+
expect(r[0].title).to eq("/tmp/test3/3")
|
34
|
+
expect(r[0].type).to eq("file")
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'should respond correctly to empty class' do
|
38
|
+
my_path = File.expand_path(File.join('spec', 'fixtures', 'fixture_modules', 'zero_resource_module'))
|
39
|
+
my_retro = Retrospec.new(my_path)
|
40
|
+
test_type = my_retro.types.find {|x| x.name == 'empty_class'}
|
41
|
+
expect{Conditional.all(test_type)}.to_not raise_error
|
42
|
+
end
|
43
|
+
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
require '
|
3
|
-
require 'helpers'
|
2
|
+
require 'retrospec'
|
4
3
|
require 'fakefs/safe'
|
4
|
+
require 'retrospec/helpers'
|
5
5
|
|
6
6
|
describe "puppet-retrospec" do
|
7
7
|
after :all do
|
@@ -18,7 +18,7 @@ describe "puppet-retrospec" do
|
|
18
18
|
end
|
19
19
|
|
20
20
|
before :each do
|
21
|
-
clean_up_spec_dir(@path)
|
21
|
+
#clean_up_spec_dir(@path)
|
22
22
|
@opts = {:module_path => @path, :enable_beaker_tests => false,
|
23
23
|
:enable_user_templates => false, :template_dir => nil }
|
24
24
|
end
|
@@ -45,6 +45,7 @@ describe "puppet-retrospec" do
|
|
45
45
|
end
|
46
46
|
|
47
47
|
it 'should not create acceptance test files' do
|
48
|
+
clean_up_spec_dir(@path)
|
48
49
|
@opts[:enable_beaker_tests] = false
|
49
50
|
tomcat = Retrospec.new(@opts[:module_path], @opts)
|
50
51
|
spec_path = File.expand_path(File.join(@path, 'spec'))
|
@@ -237,42 +238,4 @@ describe "puppet-retrospec" do
|
|
237
238
|
expect(tomcat.generate_file_name('tomcat::config')).to eq('config_spec.rb')
|
238
239
|
end
|
239
240
|
|
240
|
-
# it 'should contain a list of parameters in the test' do
|
241
|
-
# tomcat = Retrospec.new(@opts[:module_path], @opts)
|
242
|
-
# tomcat.create_files
|
243
|
-
#
|
244
|
-
# end
|
245
|
-
#
|
246
|
-
# it 'should retrieve a list of includes' do
|
247
|
-
# # ie. {"includes-class"=>["class1", "class2", "class3", "class6"]}
|
248
|
-
# includes = @retro.included_declarations('spec/fixtures/manifests/includes-class.pp')
|
249
|
-
# includes['includes-class'].should eq(["class1", "class2", "class3", "class6"])
|
250
|
-
# end
|
251
|
-
#
|
252
|
-
# it 'should not include the require statements' do
|
253
|
-
# # ie. {"includes-class"=>["class1", "class2", "class3", "class6"]}
|
254
|
-
# includes = @retro.included_declarations('spec/fixtures/manifests/includes-class.pp')
|
255
|
-
# includes['includes-class'].should_not eq(["class1", "class2", "class3", "class4", "class5", "class6"])
|
256
|
-
# end
|
257
|
-
#
|
258
|
-
#
|
259
|
-
# it 'should retrieve a list of define names' do
|
260
|
-
# # ie. [{:filename=>"includes-class", :types=>[{:type_name=>"class", :name=>"includes-class"}]}]
|
261
|
-
# my_retro = Retrospec.new('spec/fixtures/manifests/includes-defines.pp')
|
262
|
-
# classes = my_retro.classes_and_defines('spec/fixtures/manifests/includes-defines.pp')
|
263
|
-
# types = classes.first[:types]
|
264
|
-
# types.first[:type_name].should eq('define')
|
265
|
-
# types.first[:name].should eq("webinstance")
|
266
|
-
# end
|
267
|
-
#
|
268
|
-
#
|
269
|
-
# it 'included_declarations should not be nil' do
|
270
|
-
# @retro.included_declarations(@retro.manifest_files.first).length.should >= 1
|
271
|
-
# end
|
272
|
-
#
|
273
|
-
#
|
274
|
-
# it 'modules_included should not be nil' do
|
275
|
-
# @retro.modules_included.length.should eq(1)
|
276
|
-
# end
|
277
|
-
|
278
241
|
end
|