puppet-retrospec 0.5.1 → 0.6.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/README.md +2 -2
- data/VERSION +1 -1
- data/bin/retrospec +2 -5
- data/lib/retrospec.rb +41 -45
- data/lib/retrospec/exceptions.rb +4 -0
- data/lib/retrospec/puppet_module.rb +163 -0
- data/lib/retrospec/resource.rb +2 -3
- data/lib/retrospec/spec_object.rb +37 -0
- data/lib/retrospec/templates/gemfile.erb +12 -10
- data/lib/retrospec/templates/nodesets/centos-66-x64.yml +11 -0
- data/lib/retrospec/templates/rakefile.erb +3 -0
- data/lib/retrospec/templates/resource_spec_file.erb +3 -3
- data/lib/retrospec/templates/spec_helper_file.erb +1 -0
- data/lib/retrospec/templates/travis.yml.erb +14 -0
- data/lib/retrospec/type_code.rb +14 -2
- data/lib/retrospec/variable_store.rb +70 -9
- data/lib/retrospec/version.rb +1 -1
- data/puppet-retrospec.gemspec +14 -7
- data/spec/fixtures/fixture_modules/one_resource_module/manifests/{another_resource_class.pp → another_resource.pp} +4 -3
- data/spec/fixtures/fixture_modules/one_resource_module/manifests/inherits_params.pp +8 -0
- data/spec/fixtures/fixture_modules/one_resource_module/manifests/params.pp +19 -0
- data/spec/integration/retrospec_spec.rb +36 -0
- data/spec/unit/conditional_spec.rb +41 -23
- data/spec/unit/module_spec.rb +55 -0
- data/spec/unit/puppet-retrospec_spec.rb +15 -22
- data/spec/unit/resource_spec.rb +46 -38
- data/spec/unit/type_code_spec.rb +37 -19
- data/spec/unit/variable_store_spec.rb +72 -16
- metadata +40 -33
- data/lib/retrospec/module_utilities.rb +0 -80
- data/lib/retrospec/templates/nodesets/centos-65-x64.yml +0 -10
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Utilities::Module' do
|
4
|
+
|
5
|
+
before :each do
|
6
|
+
clean_up_spec_dir(@path)
|
7
|
+
@opts = {:module_path => @path, :enable_beaker_tests => false,
|
8
|
+
:enable_user_templates => false, :template_dir => nil }
|
9
|
+
@module = Utilities::PuppetModule.instance
|
10
|
+
@module.module_path = @opts[:module_path]
|
11
|
+
|
12
|
+
end
|
13
|
+
|
14
|
+
before :all do
|
15
|
+
# enabling the removal of real modules slows down tests, but from time to time we may need to
|
16
|
+
FileUtils.rm_rf(fixture_modules_path) if ENV['RETROSPEC_CLEAN_UP_TEST_MODULES'] =~ /true/
|
17
|
+
install_module('puppetlabs-tomcat')
|
18
|
+
@path = File.join(fixture_modules_path, 'tomcat')
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should create an instance' do
|
22
|
+
expect(@module).to be_instance_of(Utilities::PuppetModule)
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'should create tmp module path' do
|
26
|
+
expect(File.exists?(@module.tmp_modules_dir)).to be true
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'should create a temp modules dir' do
|
30
|
+
tomcat_path = Utilities::PuppetModule.create_tmp_module_path
|
31
|
+
expect(tomcat_path).to match(/modules/)
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'should create a temp modules dir' do
|
35
|
+
tomcat_path = @module.create_tmp_module_path(@opts[:module_path])
|
36
|
+
expect(tomcat_path).to match(/modules/)
|
37
|
+
expect(File.exists?(tomcat_path)).to be true
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'should set the module path' do
|
41
|
+
expect(@module.module_path).to eq(@opts[:module_path])
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'should create a link in the temp modules directory' do
|
45
|
+
tmp_path = @module.create_tmp_module_path(@opts[:module_path])
|
46
|
+
expect(File.exists?(tmp_path)).to eq(true)
|
47
|
+
expect(tmp_path).to eq(File.join(@module.tmp_modules_dir, @module.module_name))
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'should find types' do
|
51
|
+
expect(@module.types).to be_instance_of(Array)
|
52
|
+
expect(@module.types.map {|t| t.name}.length).to eq(14)
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
@@ -10,7 +10,7 @@ describe "puppet-retrospec" do
|
|
10
10
|
end
|
11
11
|
|
12
12
|
before :all do
|
13
|
-
#
|
13
|
+
#enabling the removal of real modules slows down tests, but from time to time we may need to
|
14
14
|
FileUtils.rm_rf(fixture_modules_path) if ENV['RETROSPEC_CLEAN_UP_TEST_MODULES'] =~ /true/
|
15
15
|
install_module('puppetlabs-tomcat')
|
16
16
|
@path = File.join(fixture_modules_path, 'tomcat')
|
@@ -18,15 +18,22 @@ describe "puppet-retrospec" do
|
|
18
18
|
end
|
19
19
|
|
20
20
|
before :each do
|
21
|
-
|
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
|
25
25
|
|
26
26
|
it 'should run without errors using new' do
|
27
|
+
tomcat = Retrospec.new(@opts[:module_path], @opts)
|
28
|
+
expect(tomcat).to be_instance_of(Retrospec)
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'should create files without error' do
|
27
32
|
tomcat = Retrospec.new(@opts[:module_path], @opts)
|
28
33
|
expect(tomcat.create_files).to eq(true)
|
29
34
|
expect(File.exists?(File.join(@path, 'Gemfile'))).to eq(true)
|
35
|
+
expect(File.exists?(File.join(@path, 'Rakefile'))).to eq(true)
|
36
|
+
expect(File.exists?(File.join(@path, 'spec', 'shared_contexts.rb'))).to eq(true)
|
30
37
|
expect(File.exists?(File.join(@path, '.fixtures.yml'))).to eq(true)
|
31
38
|
expect(File.exists?(File.join(@path, 'spec','classes','tomcat_spec.rb'))).to eq(true)
|
32
39
|
end
|
@@ -116,7 +123,7 @@ describe "puppet-retrospec" do
|
|
116
123
|
it 'should create proper spec helper file' do
|
117
124
|
tomcat = Retrospec.new(@opts[:module_path], @opts)
|
118
125
|
filepath = File.expand_path(File.join(@path, 'spec', 'spec_helper.rb'))
|
119
|
-
path = tomcat.
|
126
|
+
path = tomcat.module_path
|
120
127
|
tomcat.safe_create_spec_helper
|
121
128
|
expect(File.exists?(filepath)).to eq(true)
|
122
129
|
end
|
@@ -124,7 +131,7 @@ describe "puppet-retrospec" do
|
|
124
131
|
it 'should create proper shared context file' do
|
125
132
|
tomcat = Retrospec.new(@opts[:module_path], @opts)
|
126
133
|
filepath = File.expand_path(File.join(@path, 'spec', 'shared_contexts.rb'))
|
127
|
-
path = tomcat.
|
134
|
+
path = tomcat.module_path
|
128
135
|
tomcat.safe_make_shared_context
|
129
136
|
expect(File.exists?(filepath)).to eq(true)
|
130
137
|
end
|
@@ -172,20 +179,6 @@ describe "puppet-retrospec" do
|
|
172
179
|
Helpers.should_not_receive(:safe_create_file).with(anything,'resource_spec_file.erb')
|
173
180
|
end
|
174
181
|
|
175
|
-
it 'should create a temp modules dir' do
|
176
|
-
tomcat = Retrospec.new(@opts[:module_path], @opts)
|
177
|
-
path = tomcat.tmp_modules_dir
|
178
|
-
path.should =~ /modules/
|
179
|
-
end
|
180
|
-
|
181
|
-
it 'should create a link in the temp modules directory' do
|
182
|
-
tomcat = Retrospec.new(@opts[:module_path], @opts)
|
183
|
-
path = tomcat.tmp_modules_dir
|
184
|
-
tmp_path = tomcat.create_tmp_module_path(@opts[:module_path])
|
185
|
-
expect(File.exists?(tmp_path)).to eq(true)
|
186
|
-
expect(tmp_path).to eq(File.join(path, tomcat.module_name))
|
187
|
-
end
|
188
|
-
|
189
182
|
it 'should create a file from a template' do
|
190
183
|
tomcat = Retrospec.new(@opts[:module_path], @opts)
|
191
184
|
tomcat.safe_create_template_file('.fixtures.yml', 'fixtures_file.erb')
|
@@ -201,14 +194,14 @@ describe "puppet-retrospec" do
|
|
201
194
|
allow(type).to receive(:type).and_return(:hostclass)
|
202
195
|
allow(type).to receive(:name).and_return('tomcat::config::server::connector')
|
203
196
|
tomcat = Retrospec.new(@opts[:module_path], @opts)
|
204
|
-
expect(tomcat.generate_file_path(type, true)).to eq("spec/acceptance/classes/config/server/
|
197
|
+
expect(tomcat.generate_file_path(type, true)).to eq("spec/acceptance/classes/config/server/connector_spec.rb")
|
205
198
|
end
|
206
199
|
it 'should generate a normal test path correctly' do
|
207
200
|
type = double("type")
|
208
201
|
allow(type).to receive(:type).and_return(:hostclass)
|
209
202
|
allow(type).to receive(:name).and_return('tomcat::config::server::connector')
|
210
203
|
tomcat = Retrospec.new(@opts[:module_path], @opts)
|
211
|
-
expect(tomcat.generate_file_path(type, false)).to eq("spec/classes/config/server/
|
204
|
+
expect(tomcat.generate_file_path(type, false)).to eq("spec/classes/config/server/connector_spec.rb")
|
212
205
|
end
|
213
206
|
end
|
214
207
|
|
@@ -218,7 +211,7 @@ describe "puppet-retrospec" do
|
|
218
211
|
allow(type).to receive(:type).and_return(:definition)
|
219
212
|
allow(type).to receive(:name).and_return('tomcat::config::server::connector')
|
220
213
|
tomcat = Retrospec.new(@opts[:module_path], @opts)
|
221
|
-
expect(tomcat.generate_file_path(type, true)).to eq("spec/acceptance/defines/config/server/
|
214
|
+
expect(tomcat.generate_file_path(type, true)).to eq("spec/acceptance/defines/config/server/connector_spec.rb")
|
222
215
|
end
|
223
216
|
|
224
217
|
it 'should generate a normal test path correctly' do
|
@@ -226,7 +219,7 @@ describe "puppet-retrospec" do
|
|
226
219
|
allow(type).to receive(:type).and_return(:definition)
|
227
220
|
allow(type).to receive(:name).and_return('tomcat::config::server::connector')
|
228
221
|
tomcat = Retrospec.new(@opts[:module_path], @opts)
|
229
|
-
expect(tomcat.generate_file_path(type, false)).to eq("spec/defines/config/server/
|
222
|
+
expect(tomcat.generate_file_path(type, false)).to eq("spec/defines/config/server/connector_spec.rb")
|
230
223
|
end
|
231
224
|
end
|
232
225
|
end
|
data/spec/unit/resource_spec.rb
CHANGED
@@ -11,52 +11,60 @@ describe "resource" do
|
|
11
11
|
# enabling the removal of real modules slows down tests, but from time to time we may need to
|
12
12
|
FileUtils.rm_rf(fixture_modules_path) if ENV['RETROSPEC_CLEAN_UP_TEST_MODULES'] =~ /true/
|
13
13
|
@path = File.join(fixture_modules_path, 'tomcat')
|
14
|
-
|
15
|
-
|
16
14
|
end
|
17
15
|
|
18
16
|
before :each do
|
19
17
|
clean_up_spec_dir(@path)
|
20
|
-
@opts = {:module_path => @path, :enable_beaker_tests => false,
|
21
|
-
:enable_user_templates => false, :template_dir => nil }
|
22
|
-
|
23
18
|
end
|
24
19
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
20
|
+
describe 'one resource module' do
|
21
|
+
let(:instance) {Utilities::PuppetModule.send :new}
|
22
|
+
before :each do
|
23
|
+
my_path = File.expand_path(File.join('spec', 'fixtures', 'fixture_modules', 'one_resource_module'))
|
24
|
+
@m = instance
|
25
|
+
@m.module_path = my_path
|
26
|
+
@m.create_tmp_module_path(my_path)
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'should initialize with one resource' do
|
30
|
+
r = Resource.all(@m.types.find {|x| x.name == 'one_resource'})
|
31
|
+
expect(r.length).to eq(1)
|
32
|
+
expect(r[0].parameters).to eq({"ensure"=>"present"})
|
33
|
+
expect(r[0].title).to eq("/tmp/test")
|
34
|
+
expect(r[0].type).to eq("file")
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'should initialize with two resources' do
|
38
|
+
test_type = @m.types.find {|x| x.name == 'one_resource::another_resource'}
|
39
|
+
VariableStore.populate(test_type)
|
40
|
+
r = Resource.all(test_type)
|
41
|
+
expect(r.length).to eq(2)
|
42
|
+
expect(r[0].parameters).to eq({"ensure"=>"present"})
|
43
|
+
expect(r[0].title).to eq("/tmp/test2")
|
44
|
+
expect(r[0].type).to eq("file")
|
45
|
+
expect(r[1].parameters).to eq({"ensure"=>"present","content" => "/tmp/test3/test3183/oohhhh"})
|
46
|
+
expect(r[1].title).to eq("/tmp/test3")
|
47
|
+
expect(r[1].type).to eq("file")
|
48
|
+
end
|
34
49
|
|
35
|
-
it 'should initialize with two resources' do
|
36
|
-
my_path = File.expand_path(File.join('spec', 'fixtures', 'fixture_modules', 'one_resource_module'))
|
37
|
-
my_retro = Retrospec.new(my_path)
|
38
|
-
test_type = my_retro.types.find {|x| x.name == 'one_resource::another_resource'}
|
39
|
-
VariableStore.populate(test_type)
|
40
|
-
r = Resource.all(test_type)
|
41
|
-
expect(r.length).to eq(2)
|
42
|
-
expect(r[0].parameters).to eq({"ensure"=>"present"})
|
43
|
-
expect(r[0].title).to eq("/tmp/test2")
|
44
|
-
expect(r[0].type).to eq("file")
|
45
|
-
expect(r[1].parameters).to eq({"ensure"=>"present","content" => "/tmp/test3/test3183/oohhhh"})
|
46
|
-
expect(r[1].title).to eq("/tmp/test3")
|
47
|
-
expect(r[1].type).to eq("file")
|
48
|
-
end
|
49
50
|
|
50
|
-
it 'should return resources' do
|
51
|
-
test_module = Retrospec.new(@opts[:module_path], @opts)
|
52
|
-
test_type = test_module.types[0]
|
53
|
-
expect(Resource.all(test_type.code)).to eq([])
|
54
|
-
end
|
55
51
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
52
|
+
it 'should return resources' do
|
53
|
+
test_type = @m.types.find {|x| x.name == 'one_resource::another_resource'}
|
54
|
+
expect(Resource.all(test_type.code).length).to eq(2)
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
describe 'zero module' do
|
59
|
+
let(:instance) {Utilities::PuppetModule.send :new}
|
60
|
+
it 'can process an empty class' do
|
61
|
+
my_path = File.expand_path(File.join('spec', 'fixtures', 'fixture_modules', 'zero_resource_module'))
|
62
|
+
m = instance
|
63
|
+
m.module_path = my_path
|
64
|
+
m.create_tmp_module_path(my_path)
|
65
|
+
test_type = m.types.find {|x| x.name == 'empty_class'}
|
66
|
+
r = Resource.all(test_type)
|
67
|
+
expect(r.size).to eq(0)
|
68
|
+
end
|
61
69
|
end
|
62
70
|
end
|
data/spec/unit/type_code_spec.rb
CHANGED
@@ -10,30 +10,48 @@ describe "type_code" do
|
|
10
10
|
before :all do
|
11
11
|
# enabling the removal of real modules slows down tests, but from time to time we may need to
|
12
12
|
FileUtils.rm_rf(fixture_modules_path) if ENV['RETROSPEC_CLEAN_UP_TEST_MODULES'] =~ /true/
|
13
|
-
@path = File.join(fixture_modules_path, 'tomcat')
|
14
|
-
|
15
|
-
|
16
13
|
end
|
17
14
|
|
18
|
-
before :each do
|
19
|
-
my_path = File.expand_path(File.join('spec', 'fixtures', 'fixture_modules', 'one_resource_module'))
|
20
|
-
@my_retro = Retrospec.new(my_path)
|
21
|
-
@test_type = @my_retro.types.find {|x| x.name == 'one_resource::another_resource'}
|
22
15
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
16
|
+
describe 'one resource module' do
|
17
|
+
before :all do
|
18
|
+
@path = File.expand_path(File.join('spec', 'fixtures', 'fixture_modules', 'one_resource_module'))
|
19
|
+
end
|
20
|
+
|
21
|
+
before :each do
|
22
|
+
@opts = {:module_path => @path, :enable_beaker_tests => false,
|
23
|
+
:enable_user_templates => false, :template_dir => nil }
|
24
|
+
end
|
25
|
+
let(:instance) {Utilities::PuppetModule.send :new}
|
26
|
+
|
27
|
+
it 'should initialize correctly scope name' do
|
28
|
+
m = instance
|
29
|
+
m.module_path = @opts[:module_path]
|
30
|
+
m.create_tmp_module_path(@opts[:module_path])
|
31
|
+
test_type = m.types.find {|x| x.name == 'one_resource::another_resource'}
|
32
|
+
expect(TypeCode.new(test_type).scope_name).to eq('one_resource::another_resource')
|
33
|
+
expect(TypeCode.new(test_type).type).to eq(test_type)
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'should find all the variables' do
|
37
|
+
m = instance
|
38
|
+
m.module_path = @opts[:module_path]
|
39
|
+
m.create_tmp_module_path(@opts[:module_path])
|
40
|
+
test_type = m.types.find {|x| x.name == 'one_resource::another_resource'}
|
41
|
+
expect(TypeCode.new(test_type).variables.size).to eq(4)
|
42
|
+
end
|
27
43
|
end
|
28
44
|
|
29
|
-
|
30
|
-
|
45
|
+
describe 'zero module' do
|
46
|
+
let(:instance) {Utilities::PuppetModule.send :new}
|
47
|
+
it 'should respond correctly when class is empty' do
|
48
|
+
my_path = File.expand_path(File.join('spec', 'fixtures', 'fixture_modules', 'zero_resource_module'))
|
49
|
+
m = instance
|
50
|
+
m.module_path = my_path
|
51
|
+
m.create_tmp_module_path(my_path)
|
52
|
+
test_type = m.types.find {|x| x.name == 'empty_class'}
|
53
|
+
expect{TypeCode.new(test_type).variables}.to_not raise_error
|
54
|
+
end
|
31
55
|
end
|
32
56
|
|
33
|
-
it 'should respond correctly when class is empty' do
|
34
|
-
my_path = File.expand_path(File.join('spec', 'fixtures', 'fixture_modules', 'zero_resource_module'))
|
35
|
-
my_retro = Retrospec.new(my_path)
|
36
|
-
test_type = my_retro.types.find {|x| x.name == 'empty_class'}
|
37
|
-
expect{TypeCode.new(test_type).variables}.to_not raise_error
|
38
|
-
end
|
39
57
|
end
|
@@ -1,18 +1,25 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe "variable_store" do
|
4
|
+
let(:instance) {Utilities::PuppetModule.send :new}
|
5
|
+
|
4
6
|
after :all do
|
5
7
|
# enabling the removal slows down tests, but from time to time we may need to
|
6
8
|
FileUtils.rm_rf(fixture_modules_path) if ENV['RETROSPEC_CLEAN_UP_TEST_MODULES'] =~ /true/
|
7
9
|
end
|
8
10
|
|
9
11
|
before :all do
|
12
|
+
@path = File.expand_path(File.join('spec', 'fixtures', 'fixture_modules', 'one_resource_module'))
|
10
13
|
# enabling the removal of real modules slows down tests, but from time to time we may need to
|
11
14
|
FileUtils.rm_rf(fixture_modules_path) if ENV['RETROSPEC_CLEAN_UP_TEST_MODULES'] =~ /true/
|
12
15
|
end
|
13
16
|
|
14
17
|
before :each do
|
15
|
-
@
|
18
|
+
@opts = {:module_path => @path, :enable_beaker_tests => false,
|
19
|
+
:enable_user_templates => false, :template_dir => nil }
|
20
|
+
@module = instance
|
21
|
+
@module.module_path = @opts[:module_path]
|
22
|
+
@module.create_tmp_module_path(@opts[:module_path])
|
16
23
|
end
|
17
24
|
|
18
25
|
it 'should initialize' do
|
@@ -20,40 +27,36 @@ describe "variable_store" do
|
|
20
27
|
end
|
21
28
|
|
22
29
|
it 'should resolve a string' do
|
23
|
-
|
24
|
-
test_type = my_retro.types.find {|x| x.name == 'one_resource::another_resource'}
|
30
|
+
test_type = @module.types.find {|x| x.name == 'one_resource::another_resource'}
|
25
31
|
r = Resource.all(test_type).first
|
26
32
|
string1 = ObjectSpace.each_object(Puppet::Parser::AST::String).find {|x| x.to_s == "\"value1\"" }
|
27
33
|
expect(VariableStore.resolve(string1)).to eq("\"value1\"")
|
28
34
|
end
|
29
35
|
|
30
36
|
it 'should resolve a variable' do
|
31
|
-
|
32
|
-
test_type = my_retro.types.find {|x| x.name == 'one_resource::another_resource'}
|
37
|
+
test_type = @module.types.find {|x| x.name == 'one_resource::another_resource'}
|
33
38
|
r = Resource.all(test_type).first
|
34
39
|
var1 = ObjectSpace.each_object(Puppet::Parser::AST::Variable).find {|x| x.to_s == '$file_name' }
|
40
|
+
VariableStore.add(var1,'/tmp/test3')
|
35
41
|
expect(VariableStore.resolve(var1)).to eq("/tmp/test3")
|
36
42
|
end
|
37
43
|
|
38
44
|
it 'should resolve a basic vardef type' do
|
39
|
-
|
40
|
-
test_type = my_retro.types.find {|x| x.name == 'one_resource::another_resource'}
|
45
|
+
test_type = @module.types.find {|x| x.name == 'one_resource::another_resource'}
|
41
46
|
VariableStore.populate(test_type)
|
42
|
-
vardef1 =
|
47
|
+
vardef1 = ObjectSpace.each_object(Puppet::Parser::AST::VarDef).find {|x| x.name.value == 'some_var'}
|
43
48
|
expect(VariableStore.resolve(vardef1)).to eq("oohhhh")
|
44
49
|
end
|
45
50
|
|
46
51
|
it 'should resolve a concat vardef type' do
|
47
|
-
|
48
|
-
test_type = my_retro.types.find {|x| x.name == 'one_resource::another_resource'}
|
52
|
+
test_type = @module.types.find {|x| x.name == 'one_resource::another_resource'}
|
49
53
|
VariableStore.populate(test_type)
|
50
54
|
vardef2 = ObjectSpace.each_object(Puppet::Parser::AST::VarDef).find {|x| x.name.value == 'concat_var'}
|
51
55
|
expect(VariableStore.resolve(vardef2)).to eq("/tmp/test3/test3183/oohhhh")
|
52
56
|
end
|
53
57
|
|
54
58
|
it 'should resolve vardef/concat with parameter value' do
|
55
|
-
|
56
|
-
test_type = my_retro.types.find {|x| x.name == 'one_resource::another_resource'}
|
59
|
+
test_type = @module.types.find {|x| x.name == 'one_resource::another_resource'}
|
57
60
|
VariableStore.populate(test_type)
|
58
61
|
vardef3 = ObjectSpace.each_object(Puppet::Parser::AST::VarDef).find {|x| x.name.value == 'cli_modules'}
|
59
62
|
expect(VariableStore.resolve(vardef3)).to eq("/etc/hammer/cli.modules.d")
|
@@ -61,8 +64,7 @@ describe "variable_store" do
|
|
61
64
|
|
62
65
|
describe '#add' do
|
63
66
|
it 'should store the value correctly' do
|
64
|
-
|
65
|
-
test_type = my_retro.types.find {|x| x.name == 'one_resource::another_resource'}
|
67
|
+
test_type = @module.types.find {|x| x.name == 'one_resource::another_resource'}
|
66
68
|
string1 = ObjectSpace.each_object(Puppet::Parser::AST::String).find {|x| x.to_s == "\"value1\"" }
|
67
69
|
expect(VariableStore.add(string1, 'blah')).to eq("blah")
|
68
70
|
expect(VariableStore.lookup(string1)).to eq('blah')
|
@@ -74,9 +76,63 @@ describe "variable_store" do
|
|
74
76
|
end
|
75
77
|
|
76
78
|
it 'should store vardef as is' do
|
77
|
-
|
78
|
-
test_type
|
79
|
+
test_type = @module.types.find {|x| x.name == 'one_resource::another_resource'}
|
80
|
+
VariableStore.populate(test_type)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
describe 'populate' do
|
85
|
+
let(:instance) {Utilities::PuppetModule.send :new}
|
86
|
+
|
87
|
+
before :each do
|
88
|
+
|
89
|
+
end
|
90
|
+
it 'should load an resolve vars from the parent type' do
|
91
|
+
m = instance
|
92
|
+
m.module_path = @opts[:module_path]
|
93
|
+
m.create_tmp_module_path(@opts[:module_path])
|
94
|
+
test_type = m.types.find {|x| x.name == 'one_resource::another_resource'}
|
95
|
+
VariableStore.populate(test_type)
|
96
|
+
vars = {"$var1"=>"value1",
|
97
|
+
"$var2"=>"value2",
|
98
|
+
"$file_name"=>"/tmp/test3",
|
99
|
+
"$config_base_path"=>"/etc/hammer",
|
100
|
+
"$config_set"=>"param1_value",
|
101
|
+
"$concat_var"=>"/tmp/test3/test3183/oohhhh",
|
102
|
+
"$one_resource::params::param1_var1"=>"param1_value",
|
103
|
+
"$one_resource::params::var1"=>"params_class_value1",
|
104
|
+
"$one_resource::params::var2"=>"value2",
|
105
|
+
"$some_var"=>"oohhhh",
|
106
|
+
"$cli_modules"=>"/etc/hammer/cli.modules.d",
|
107
|
+
"$inherited_variable"=>"params_class_value1",
|
108
|
+
}
|
109
|
+
vars.each do |k,v|
|
110
|
+
expect(VariableStore.instance.store.keys.include?(k)).to be true
|
111
|
+
expect(VariableStore.instance.store[k]).to eq(v)
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
xit 'should resolve a fact' do
|
116
|
+
#test_type = @module.types.find {|x| x.name == 'one_resource::inherits_params'}
|
117
|
+
end
|
118
|
+
|
119
|
+
it 'should resolve a parent parameter' do
|
120
|
+
m = instance
|
121
|
+
m.module_path = @opts[:module_path]
|
122
|
+
m.create_tmp_module_path(@opts[:module_path])
|
123
|
+
test_type = m.types.find {|x| x.name == 'one_resource::another_resource'}
|
124
|
+
VariableStore.populate(test_type)
|
125
|
+
expect(VariableStore.instance.store['$config_set']).to eq('param1_value')
|
126
|
+
|
127
|
+
end
|
128
|
+
|
129
|
+
it 'should resolve a parent variable' do
|
130
|
+
m = instance
|
131
|
+
m.module_path = @opts[:module_path]
|
132
|
+
m.create_tmp_module_path(@opts[:module_path])
|
133
|
+
test_type = m.types.find {|x| x.name == 'one_resource::another_resource'}
|
79
134
|
VariableStore.populate(test_type)
|
135
|
+
expect(VariableStore.instance.store['$inherited_variable']).to eq('params_class_value1')
|
80
136
|
end
|
81
137
|
end
|
82
138
|
end
|