beaker-puppet 1.29.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +9 -0
  3. data/.github/workflows/release.yml +2 -2
  4. data/.github/workflows/test.yml +28 -7
  5. data/.rubocop.yml +5 -0
  6. data/.rubocop_todo.yml +842 -0
  7. data/CHANGELOG.md +31 -0
  8. data/Gemfile +5 -20
  9. data/Rakefile +64 -169
  10. data/acceptance/config/acceptance-options.rb +3 -3
  11. data/acceptance/config/gem/acceptance-options.rb +8 -8
  12. data/acceptance/config/git/acceptance-options.rb +8 -8
  13. data/acceptance/config/pkg/acceptance-options.rb +7 -7
  14. data/acceptance/pre_suite/gem/install.rb +6 -6
  15. data/acceptance/pre_suite/git/install.rb +22 -22
  16. data/acceptance/pre_suite/pkg/install.rb +3 -3
  17. data/acceptance/tests/backwards_compatible.rb +6 -7
  18. data/acceptance/tests/clone_git_repo_on_test.rb +12 -13
  19. data/acceptance/tests/create_tmpdir_on_test.rb +13 -9
  20. data/acceptance/tests/install_smoke_test.rb +5 -4
  21. data/acceptance/tests/stub_host.rb +11 -10
  22. data/acceptance/tests/web_helpers_test.rb +11 -10
  23. data/beaker-puppet.gemspec +16 -23
  24. data/bin/beaker-puppet +2 -4
  25. data/lib/beaker-puppet/helpers/facter_helpers.rb +9 -7
  26. data/lib/beaker-puppet/helpers/host_helpers.rb +10 -7
  27. data/lib/beaker-puppet/helpers/puppet_helpers.rb +151 -160
  28. data/lib/beaker-puppet/helpers/rake_helpers.rb +1 -1
  29. data/lib/beaker-puppet/helpers/tk_helpers.rb +22 -28
  30. data/lib/beaker-puppet/install_utils/aio_defaults.rb +39 -43
  31. data/lib/beaker-puppet/install_utils/ezbake_utils.rb +34 -42
  32. data/lib/beaker-puppet/install_utils/foss_defaults.rb +134 -138
  33. data/lib/beaker-puppet/install_utils/foss_utils.rb +293 -320
  34. data/lib/beaker-puppet/install_utils/module_utils.rb +58 -70
  35. data/lib/beaker-puppet/install_utils/puppet5.rb +30 -35
  36. data/lib/beaker-puppet/install_utils/puppet_utils.rb +58 -68
  37. data/lib/beaker-puppet/install_utils/windows_utils.rb +34 -36
  38. data/lib/beaker-puppet/version.rb +1 -1
  39. data/lib/beaker-puppet/wrappers.rb +13 -14
  40. data/lib/beaker-puppet.rb +4 -5
  41. data/setup/aio/010_Install_Puppet_Agent.rb +5 -6
  42. data/setup/common/000-delete-puppet-when-none.rb +2 -4
  43. data/setup/common/003_solaris_cert_fix.rb +74 -70
  44. data/setup/common/005_redhat_subscription_fix.rb +3 -2
  45. data/setup/common/011_Install_Puppet_Server.rb +7 -9
  46. data/setup/common/012_Finalize_Installs.rb +5 -5
  47. data/setup/common/025_StopFirewall.rb +1 -1
  48. data/setup/common/030_StopSssd.rb +2 -2
  49. data/setup/common/040_ValidateSignCert.rb +10 -12
  50. data/setup/common/045_EnsureMasterStarted.rb +2 -2
  51. data/setup/gem/010_GemInstall.rb +5 -4
  52. data/setup/git/000_EnvSetup.rb +48 -48
  53. data/setup/git/010_TestSetup.rb +13 -12
  54. data/setup/git/020_PuppetUserAndGroup.rb +3 -2
  55. data/setup/git/060_InstallModules.rb +14 -14
  56. data/setup/git/070_InstallCACerts.rb +82 -82
  57. data/spec/beaker-puppet/helpers/facter_helpers_spec.rb +22 -24
  58. data/spec/beaker-puppet/helpers/host_helpers_spec.rb +10 -6
  59. data/spec/beaker-puppet/helpers/puppet_helpers_spec.rb +506 -517
  60. data/spec/beaker-puppet/helpers/tk_helpers_spec.rb +20 -24
  61. data/spec/beaker-puppet/install_utils/ezbake_utils_spec.rb +86 -90
  62. data/spec/beaker-puppet/install_utils/foss_utils_spec.rb +636 -599
  63. data/spec/beaker-puppet/install_utils/module_utils_spec.rb +125 -116
  64. data/spec/beaker-puppet/install_utils/puppet5_spec.rb +159 -165
  65. data/spec/beaker-puppet/install_utils/puppet_utils_spec.rb +92 -77
  66. data/spec/beaker-puppet/install_utils/windows_utils_spec.rb +101 -89
  67. data/spec/beaker-puppet/wrappers_spec.rb +10 -10
  68. data/spec/helpers.rb +85 -91
  69. data/tasks/ci.rake +171 -179
  70. metadata +33 -62
  71. data/setup/common/020_InstallCumulusModules.rb +0 -13
  72. data/setup/common/021_InstallAristaModuleMasters.rb +0 -12
  73. data/setup/common/022_InstallAristaModuleAgents.rb +0 -13
@@ -18,211 +18,218 @@ end
18
18
  describe ClassMixedWithDSLInstallUtils do
19
19
  let(:presets) { Beaker::Options::Presets.new }
20
20
  let(:opts) { presets.presets.merge(presets.env_vars) }
21
- let(:basic_hosts) { make_hosts( { :pe_ver => '3.0',
22
- :platform => 'linux',
23
- :roles => [ 'agent' ] }, 4 ) }
24
- let(:hosts) { basic_hosts[0][:roles] = ['master', 'database', 'dashboard']
25
- basic_hosts[1][:platform] = 'windows'
26
- basic_hosts[2][:platform] = 'osx-10.9-x86_64'
27
- basic_hosts[3][:platform] = 'eos'
28
- basic_hosts }
29
- let(:hosts_sorted) { [ hosts[1], hosts[0], hosts[2], hosts[3] ] }
30
-
31
-
21
+ let(:basic_hosts) do
22
+ make_hosts({ pe_ver: '3.0',
23
+ platform: 'linux',
24
+ roles: ['agent'], }, 4)
25
+ end
26
+ let(:hosts) do
27
+ basic_hosts[0][:roles] = %w[master database dashboard]
28
+ basic_hosts[1][:platform] = 'windows'
29
+ basic_hosts[2][:platform] = 'osx-10.9-x86_64'
30
+ basic_hosts[3][:platform] = 'eos'
31
+ basic_hosts
32
+ end
33
+ let(:hosts_sorted) { [hosts[1], hosts[0], hosts[2], hosts[3]] }
32
34
 
33
35
  describe '#install_dev_puppet_module_on' do
34
36
  context 'having set allow( a ).to receive forge' do
35
37
  it 'stubs the forge on the host' do
36
38
  master = hosts.first
37
- allow( subject ).to receive( :options ).and_return( {:forge_host => 'ahost.com'} )
39
+ allow(subject).to receive(:options).and_return({ forge_host: 'ahost.com' })
38
40
 
39
- subject.install_dev_puppet_module_on( master, {:source => '/module', :module_name => 'test'} )
41
+ subject.install_dev_puppet_module_on(master, { source: '/module', module_name: 'test' })
40
42
  end
41
43
 
42
44
  it 'installs via #install_puppet_module_via_pmt' do
43
45
  master = hosts.first
44
- allow( subject ).to receive( :options ).and_return( {:forge_host => 'ahost.com'} )
46
+ allow(subject).to receive(:options).and_return({ forge_host: 'ahost.com' })
45
47
 
46
- expect( subject ).to receive( :install_puppet_module_via_pmt_on )
48
+ expect(subject).to receive(:install_puppet_module_via_pmt_on)
47
49
 
48
- subject.install_dev_puppet_module_on( master, {:source => '/module', :module_name => 'test'} )
50
+ subject.install_dev_puppet_module_on(master, { source: '/module', module_name: 'test' })
49
51
  end
50
52
  end
51
53
  context 'without allow( a ).to receive forge (default)' do
52
54
  it 'calls copy_module_to to get the module on the SUT' do
53
55
  master = hosts.first
54
- allow( subject ).to receive( :options ).and_return( {} )
56
+ allow(subject).to receive(:options).and_return({})
55
57
 
56
- expect( subject ).to receive( :copy_module_to )
58
+ expect(subject).to receive(:copy_module_to)
57
59
 
58
- subject.install_dev_puppet_module_on( master, {:source => '/module', :module_name => 'test'} )
60
+ subject.install_dev_puppet_module_on(master, { source: '/module', module_name: 'test' })
59
61
  end
60
62
  end
61
63
  end
62
64
 
63
65
  describe '#install_dev_puppet_module' do
64
66
  it 'delegates to #install_dev_puppet_module_on with the hosts list' do
65
- allow( subject ).to receive( :hosts ).and_return( hosts )
66
- allow( subject ).to receive( :options ).and_return( {} )
67
+ allow(subject).to receive(:hosts).and_return(hosts)
68
+ allow(subject).to receive(:options).and_return({})
67
69
 
68
70
  hosts.each do |host|
69
- expect( subject ).to receive( :install_dev_puppet_module_on ).
70
- with( host, {:source => '/module', :module_name => 'test'})
71
+ expect(subject).to receive(:install_dev_puppet_module_on)
72
+ .with(host, { source: '/module', module_name: 'test' })
71
73
  end
72
74
 
73
- subject.install_dev_puppet_module( {:source => '/module', :module_name => 'test'} )
75
+ subject.install_dev_puppet_module({ source: '/module', module_name: 'test' })
74
76
  end
75
77
  end
76
78
 
77
79
  describe '#install_puppet_module_via_pmt_on' do
78
80
  it 'installs module via puppet module tool' do
79
- allow( subject ).to receive( :hosts ).and_return( hosts )
80
- allow( subject ).to receive( :options ).and_return( {} )
81
+ allow(subject).to receive(:hosts).and_return(hosts)
82
+ allow(subject).to receive(:options).and_return({})
81
83
  master = hosts.first
82
84
 
83
- allow( subject ).to receive( :on ).once
84
- expect( subject ).to receive( :puppet ).with('module install test ', {}).once
85
+ allow(subject).to receive(:on).once
86
+ expect(subject).to receive(:puppet).with('module install test ', {}).once
85
87
 
86
- subject.install_puppet_module_via_pmt_on( master, {:module_name => 'test'} )
88
+ subject.install_puppet_module_via_pmt_on(master, { module_name: 'test' })
87
89
  end
88
90
 
89
91
  it 'takes the trace option and passes it down correctly' do
90
- allow( subject ).to receive( :hosts ).and_return( hosts )
91
- allow( subject ).to receive( :options ).and_return( {} )
92
+ allow(subject).to receive(:hosts).and_return(hosts)
93
+ allow(subject).to receive(:options).and_return({})
92
94
  master = hosts.first
93
- trace_opts = { :trace => nil }
95
+ trace_opts = { trace: nil }
94
96
  master['default_module_install_opts'] = trace_opts
95
97
 
96
- allow( subject ).to receive( :on ).once
97
- expect( subject ).to receive( :puppet ).with('module install test ', trace_opts).once
98
+ allow(subject).to receive(:on).once
99
+ expect(subject).to receive(:puppet).with('module install test ', trace_opts).once
98
100
 
99
- subject.install_puppet_module_via_pmt_on( master, {:module_name => 'test'} )
101
+ subject.install_puppet_module_via_pmt_on(master, { module_name: 'test' })
100
102
  end
101
103
 
102
104
  it 'takes the forge_host option as a hostname and passes it down correctly' do
103
- allow( subject ).to receive( :hosts ).and_return( hosts )
104
- allow( subject ).to receive( :options ).and_return( {:forge_host => 'forge.example.com'} )
105
+ allow(subject).to receive(:hosts).and_return(hosts)
106
+ allow(subject).to receive(:options).and_return({ forge_host: 'forge.example.com' })
105
107
  master = hosts.first
106
- forge_opts = { :module_repository => 'https://forge.example.com' }
108
+ forge_opts = { module_repository: 'https://forge.example.com' }
107
109
 
108
- allow( subject ).to receive( :on ).once
109
- expect( subject ).to receive( :puppet ).with('module install test ', forge_opts).once
110
+ allow(subject).to receive(:on).once
111
+ expect(subject).to receive(:puppet).with('module install test ', forge_opts).once
110
112
 
111
- subject.install_puppet_module_via_pmt_on( master, {:module_name => 'test'} )
113
+ subject.install_puppet_module_via_pmt_on(master, { module_name: 'test' })
112
114
  end
113
115
 
114
116
  it 'takes the forge_host option as a url and passes it down correctly' do
115
- allow( subject ).to receive( :hosts ).and_return( hosts )
116
- allow( subject ).to receive( :options ).and_return( {:forge_host => 'http://forge.example.com'} )
117
+ allow(subject).to receive(:hosts).and_return(hosts)
118
+ allow(subject).to receive(:options).and_return({ forge_host: 'http://forge.example.com' })
117
119
  master = hosts.first
118
- forge_opts = { :module_repository => 'http://forge.example.com' }
120
+ forge_opts = { module_repository: 'http://forge.example.com' }
119
121
 
120
- allow( subject ).to receive( :on ).once
121
- expect( subject ).to receive( :puppet ).with('module install test ', forge_opts).once
122
+ allow(subject).to receive(:on).once
123
+ expect(subject).to receive(:puppet).with('module install test ', forge_opts).once
122
124
 
123
- subject.install_puppet_module_via_pmt_on( master, {:module_name => 'test'} )
125
+ subject.install_puppet_module_via_pmt_on(master, { module_name: 'test' })
124
126
  end
125
127
  end
126
128
 
127
129
  describe '#install_puppet_module_via_pmt' do
128
130
  it 'delegates to #install_puppet_module_via_pmt with the hosts list' do
129
- allow( subject ).to receive( :hosts ).and_return( hosts )
131
+ allow(subject).to receive(:hosts).and_return(hosts)
130
132
 
131
- expect( subject ).to receive( :install_puppet_module_via_pmt_on ).with( hosts, {:source => '/module', :module_name => 'test'}).once
133
+ expect(subject).to receive(:install_puppet_module_via_pmt_on).with(hosts,
134
+ { source: '/module',
135
+ module_name: 'test', }).once
132
136
 
133
- subject.install_puppet_module_via_pmt( {:source => '/module', :module_name => 'test'} )
137
+ subject.install_puppet_module_via_pmt({ source: '/module', module_name: 'test' })
134
138
  end
135
139
  end
136
140
 
137
141
  describe 'copy_module_to' do
138
142
  let(:ignore_list) { Beaker::DSL::InstallUtils::ModuleUtils::PUPPET_MODULE_INSTALL_IGNORE }
139
- let(:source){ File.expand_path('./')}
140
- let(:target){'/etc/puppetlabs/puppet/modules/testmodule'}
141
- let(:module_parse_name){'testmodule'}
142
-
143
- shared_examples 'copy_module_to' do |opts|
144
- it{
145
- host = double("host")
146
- allow( host ).to receive(:[]).with('distmoduledir').and_return('/etc/puppetlabs/puppet/modules')
147
- allow( host ).to receive(:is_powershell?).and_return(false)
143
+ let(:source) { File.expand_path('./') }
144
+ let(:target) { '/etc/puppetlabs/puppet/modules/testmodule' }
145
+ let(:module_parse_name) { 'testmodule' }
146
+
147
+ shared_examples 'copy_module_to' do |opts|
148
+ it {
149
+ host = double('host')
150
+ allow(host).to receive(:[]).with('distmoduledir').and_return('/etc/puppetlabs/puppet/modules')
151
+ allow(host).to receive(:is_powershell?).and_return(false)
148
152
  result = double
149
153
  stdout = target.split('/')[0..-2].join('/') + "\n"
150
- allow( result ).to receive(:stdout).and_return( stdout )
151
- expect( subject ).to receive(:on).with(host, "echo #{File.dirname(target)}" ).and_return(result )
152
- allow( Dir ).to receive(:getpwd).and_return(source)
154
+ allow(result).to receive(:stdout).and_return(stdout)
155
+ expect(subject).to receive(:on).with(host, "echo #{File.dirname(target)}").and_return(result)
156
+ allow(Dir).to receive(:getpwd).and_return(source)
153
157
 
154
- allow( subject ).to receive(:parse_for_moduleroot).and_return(source)
158
+ allow(subject).to receive(:parse_for_moduleroot).and_return(source)
155
159
  if module_parse_name
156
- allow( subject ).to receive(:parse_for_modulename).with(any_args()).and_return(module_parse_name)
160
+ allow(subject).to receive(:parse_for_modulename).with(any_args).and_return(module_parse_name)
157
161
  else
158
- expect( subject).to_not receive(:parse_for_modulename)
162
+ expect(subject).to_not receive(:parse_for_modulename)
159
163
  end
160
164
 
161
- allow( File ).to receive(:exists?).with(any_args()).and_return(false)
162
- allow( File ).to receive(:directory?).with(any_args()).and_return(false)
165
+ allow(File).to receive(:exist?).with(any_args).and_return(false)
166
+ allow(File).to receive(:directory?).with(any_args).and_return(false)
163
167
 
164
- expect( subject ).to receive(:scp_to).with(host,source, File.dirname(target), {:ignore => ignore_list})
165
- expect( host ).to receive(:mv).with(File.join(File.dirname(target), File.basename(source)), target)
168
+ expect(subject).to receive(:scp_to).with(host, source, File.dirname(target), { ignore: ignore_list })
169
+ expect(host).to receive(:mv).with(File.join(File.dirname(target), File.basename(source)), target)
166
170
  if opts.nil?
167
171
  subject.copy_module_to(host)
168
172
  else
169
- subject.copy_module_to(host,opts)
173
+ subject.copy_module_to(host, opts)
170
174
  end
171
175
  }
172
176
  end
173
177
 
174
178
  describe 'should call scp with the correct info, with only providing host' do
175
- let(:target){'/etc/puppetlabs/puppet/modules/testmodule'}
179
+ let(:target) { '/etc/puppetlabs/puppet/modules/testmodule' }
176
180
 
177
- it_should_behave_like 'copy_module_to', :module_name => 'testmodule'
181
+ it_should_behave_like 'copy_module_to', module_name: 'testmodule'
178
182
  end
179
183
 
180
184
  describe 'should call scp with the correct info, when specifying the modulename' do
181
- let(:target){'/etc/puppetlabs/puppet/modules/bogusmodule'}
182
- let(:module_parse_name){false}
183
- it_should_behave_like 'copy_module_to', {:module_name =>'bogusmodule'}
185
+ let(:target) { '/etc/puppetlabs/puppet/modules/bogusmodule' }
186
+ let(:module_parse_name) { false }
187
+ it_should_behave_like 'copy_module_to', { module_name: 'bogusmodule' }
184
188
  end
185
189
 
186
190
  describe 'should call scp with the correct info, when specifying the target to a different path' do
187
191
  target = '/opt/shared/puppet/modules'
188
- let(:target){"#{target}/testmodule"}
189
- it_should_behave_like 'copy_module_to', {:target_module_path => target, :module_name => 'testmodule'}
192
+ let(:target) { "#{target}/testmodule" }
193
+ it_should_behave_like 'copy_module_to', { target_module_path: target, module_name: 'testmodule' }
190
194
  end
191
195
 
192
196
  describe 'should accept multiple hosts when' do
193
197
  it 'used in a default manner' do
194
- allow( subject ).to receive( :build_ignore_list ).and_return( [] )
195
- allow( subject ).to receive( :parse_for_modulename ).and_return( [nil, 'modulename'] )
196
- allow( subject ).to receive( :on ).and_return( double.as_null_object )
198
+ allow(subject).to receive(:build_ignore_list).and_return([])
199
+ allow(subject).to receive(:parse_for_modulename).and_return([nil, 'modulename'])
200
+ allow(subject).to receive(:on).and_return(double.as_null_object)
197
201
 
198
- expect( subject ).to receive( :scp_to ).exactly(4).times
199
- subject.copy_module_to( hosts )
202
+ expect(subject).to receive(:scp_to).exactly(4).times
203
+ subject.copy_module_to(hosts)
200
204
  end
201
205
  end
202
206
 
203
207
  describe 'non-cygwin windows' do
204
208
  it 'should have different commands than cygwin' do
205
- host = double("host")
206
- allow( host ).to receive(:[]).with('platform').and_return('windows')
207
- allow( host ).to receive(:[]).with('distmoduledir').and_return('C:\\ProgramData\\PuppetLabs\\puppet\\etc\\modules')
208
- allow( host ).to receive(:is_powershell?).and_return(true)
209
+ host = double('host')
210
+ allow(host).to receive(:[]).with('platform').and_return('windows')
211
+ allow(host).to receive(:[]).with('distmoduledir').and_return('C:\\ProgramData\\PuppetLabs\\puppet\\etc\\modules')
212
+ allow(host).to receive(:is_powershell?).and_return(true)
209
213
 
210
214
  result = double
211
- allow( result ).to receive(:stdout).and_return( 'C:\\ProgramData\\PuppetLabs\\puppet\\etc\\modules' )
215
+ allow(result).to receive(:stdout).and_return('C:\\ProgramData\\PuppetLabs\\puppet\\etc\\modules')
212
216
 
213
- expect( subject ).to receive(:on).with(host, "echo C:\\ProgramData\\PuppetLabs\\puppet\\etc\\modules" ).and_return( result )
217
+ expect(subject).to receive(:on).with(host,
218
+ 'echo C:\\ProgramData\\PuppetLabs\\puppet\\etc\\modules').and_return(result)
214
219
 
215
- expect( subject ).to receive(:scp_to).with(host, "/opt/testmodule2", "C:\\ProgramData\\PuppetLabs\\puppet\\etc\\modules", {:ignore => ignore_list})
216
- expect( host ).to receive(:mv).with('C:\\ProgramData\\PuppetLabs\\puppet\\etc\\modules\\testmodule2', 'C:\\ProgramData\\PuppetLabs\\puppet\\etc\\modules\\testmodule')
220
+ expect(subject).to receive(:scp_to).with(host, '/opt/testmodule2',
221
+ 'C:\\ProgramData\\PuppetLabs\\puppet\\etc\\modules', { ignore: ignore_list })
222
+ expect(host).to receive(:mv).with('C:\\ProgramData\\PuppetLabs\\puppet\\etc\\modules\\testmodule2',
223
+ 'C:\\ProgramData\\PuppetLabs\\puppet\\etc\\modules\\testmodule')
217
224
 
218
- subject.copy_module_to(host, {:module_name => 'testmodule', :source => '/opt/testmodule2'})
225
+ subject.copy_module_to(host, { module_name: 'testmodule', source: '/opt/testmodule2' })
219
226
  end
220
227
  end
221
228
  end
222
229
 
223
230
  describe 'split_author_modulename' do
224
231
  it 'should return a correct modulename' do
225
- result = subject.split_author_modulename('myname-test_43_module')
232
+ result = subject.split_author_modulename('myname-test_43_module')
226
233
  expect(result[:author]).to eq('myname')
227
234
  expect(result[:module]).to eq('test_43_module')
228
235
  end
@@ -230,7 +237,7 @@ describe ClassMixedWithDSLInstallUtils do
230
237
 
231
238
  describe 'get_module_name' do
232
239
  it 'should return an array of author and modulename' do
233
- expect(subject.get_module_name('myname-test_43_module')).to eq(['myname', 'test_43_module'])
240
+ expect(subject.get_module_name('myname-test_43_module')).to eq(%w[myname test_43_module])
234
241
  end
235
242
  it 'should return nil for invalid names' do
236
243
  expect(subject.get_module_name('myname-')).to eq(nil)
@@ -239,7 +246,7 @@ describe ClassMixedWithDSLInstallUtils do
239
246
 
240
247
  describe 'get_target_module_path' do
241
248
  let(:host) do
242
- host = make_host("echo '/explicit/modulepath'", {stdout: "/explicit/modulepath\n"})
249
+ host = make_host("echo '/explicit/modulepath'", { stdout: "/explicit/modulepath\n" })
243
250
  allow(host).to receive(:puppet).and_return(puppet)
244
251
  host
245
252
  end
@@ -258,7 +265,9 @@ describe ClassMixedWithDSLInstallUtils do
258
265
  end
259
266
 
260
267
  it 'should raise an error if no directory is found' do
261
- expect { subject.get_target_module_path(host) }.to raise_error(ArgumentError, 'Unable to find target module path to copy to')
268
+ expect do
269
+ subject.get_target_module_path(host)
270
+ end.to raise_error(ArgumentError, 'Unable to find target module path to copy to')
262
271
  expect(puppet).to have_received(:[]).with('basemodulepath')
263
272
  end
264
273
  end
@@ -295,19 +304,19 @@ describe ClassMixedWithDSLInstallUtils do
295
304
  describe 'parse_for_modulename' do
296
305
  directory = '/testfilepath/myname-testmodule'
297
306
  it 'should return name from metadata.json' do
298
- allow( File ).to receive(:exists?).with("#{directory}/metadata.json").and_return(true)
299
- allow( File ).to receive(:read).with("#{directory}/metadata.json").and_return(" {\"name\":\"myname-testmodule\"} ")
300
- expect( subject.logger ).to receive(:debug).with("Attempting to parse Modulename from metadata.json")
307
+ allow(File).to receive(:exist?).with("#{directory}/metadata.json").and_return(true)
308
+ allow(File).to receive(:read).with("#{directory}/metadata.json").and_return(' {"name":"myname-testmodule"} ')
309
+ expect(subject.logger).to receive(:debug).with('Attempting to parse Modulename from metadata.json')
301
310
  expect(subject.logger).to_not receive(:debug).with('Unable to determine name, returning null')
302
- expect(subject.parse_for_modulename(directory)).to eq(['myname', 'testmodule'])
311
+ expect(subject.parse_for_modulename(directory)).to eq(%w[myname testmodule])
303
312
  end
304
313
  it 'should return name from Modulefile' do
305
- allow( File ).to receive(:exists?).with("#{directory}/metadata.json").and_return(false)
306
- allow( File ).to receive(:exists?).with("#{directory}/Modulefile").and_return(true)
307
- allow( File ).to receive(:read).with("#{directory}/Modulefile").and_return("name 'myname-testmodule' \nauthor 'myname'")
308
- expect( subject.logger ).to receive(:debug).with("Attempting to parse Modulename from Modulefile")
309
- expect(subject.logger).to_not receive(:debug).with("Unable to determine name, returning null")
310
- expect(subject.parse_for_modulename(directory)).to eq(['myname', 'testmodule'])
314
+ allow(File).to receive(:exist?).with("#{directory}/metadata.json").and_return(false)
315
+ allow(File).to receive(:exist?).with("#{directory}/Modulefile").and_return(true)
316
+ allow(File).to receive(:read).with("#{directory}/Modulefile").and_return("name 'myname-testmodule' \nauthor 'myname'")
317
+ expect(subject.logger).to receive(:debug).with('Attempting to parse Modulename from Modulefile')
318
+ expect(subject.logger).to_not receive(:debug).with('Unable to determine name, returning null')
319
+ expect(subject.parse_for_modulename(directory)).to eq(%w[myname testmodule])
311
320
  end
312
321
  end
313
322
 
@@ -315,26 +324,26 @@ describe ClassMixedWithDSLInstallUtils do
315
324
  directory = '/testfilepath/myname-testmodule'
316
325
  describe 'stops searching when either' do
317
326
  it 'finds a Modulefile' do
318
- allow( File ).to receive(:exists?).and_return(false)
319
- allow( File ).to receive(:exists?).with("#{directory}/Modulefile").and_return(true)
327
+ allow(File).to receive(:exist?).and_return(false)
328
+ allow(File).to receive(:exist?).with("#{directory}/Modulefile").and_return(true)
320
329
 
321
- expect( subject.logger ).to_not receive(:debug).with("At root, can't parse for another directory")
322
- expect( subject.logger ).to receive(:debug).with("No Modulefile or metadata.json found at #{directory}/acceptance, moving up")
330
+ expect(subject.logger).to_not receive(:debug).with("At root, can't parse for another directory")
331
+ expect(subject.logger).to receive(:debug).with("No Modulefile or metadata.json found at #{directory}/acceptance, moving up")
323
332
  expect(subject.parse_for_moduleroot("#{directory}/acceptance")).to eq(directory)
324
333
  end
325
334
  it 'finds a metadata.json file' do
326
- allow( File ).to receive(:exists?).and_return(false)
327
- allow( File ).to receive(:exists?).with("#{directory}/metadata.json").and_return(true)
335
+ allow(File).to receive(:exist?).and_return(false)
336
+ allow(File).to receive(:exist?).with("#{directory}/metadata.json").and_return(true)
328
337
 
329
- expect( subject.logger ).to_not receive(:debug).with("At root, can't parse for another directory")
330
- expect( subject.logger ).to receive(:debug).with("No Modulefile or metadata.json found at #{directory}/acceptance, moving up")
338
+ expect(subject.logger).to_not receive(:debug).with("At root, can't parse for another directory")
339
+ expect(subject.logger).to receive(:debug).with("No Modulefile or metadata.json found at #{directory}/acceptance, moving up")
331
340
  expect(subject.parse_for_moduleroot("#{directory}/acceptance")).to eq(directory)
332
341
  end
333
342
  end
334
343
  it 'should recersively go up the directory to find the module files' do
335
- allow( File ).to receive(:exists?).and_return(false)
336
- expect( subject.logger ).to receive(:debug).with("No Modulefile or metadata.json found at #{directory}, moving up")
337
- expect( subject.logger ).to receive(:error).with("At root, can't parse for another directory")
344
+ allow(File).to receive(:exist?).and_return(false)
345
+ expect(subject.logger).to receive(:debug).with("No Modulefile or metadata.json found at #{directory}, moving up")
346
+ expect(subject.logger).to receive(:error).with("At root, can't parse for another directory")
338
347
  expect(subject.parse_for_moduleroot(directory)).to eq(nil)
339
348
  end
340
349
  end