beaker 5.6.0 → 5.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +14 -14
  3. data/.github/workflows/release.yml +2 -2
  4. data/.github/workflows/test.yml +4 -3
  5. data/.rubocop_todo.yml +58 -5
  6. data/CHANGELOG.md +22 -0
  7. data/acceptance/tests/base/dsl/helpers/host_helpers/on_test.rb +1 -1
  8. data/acceptance/tests/base/dsl/platform_tag_confiner_test.rb +2 -2
  9. data/beaker.gemspec +1 -1
  10. data/docs/concepts/argument_processing_and_precedence.md +1 -1
  11. data/lib/beaker/host/unix/file.rb +1 -1
  12. data/lib/beaker/host_prebuilt_steps.rb +4 -7
  13. data/lib/beaker/options/command_line_parser.rb +1 -1
  14. data/lib/beaker/platform.rb +2 -1
  15. data/lib/beaker/shared/host_manager.rb +4 -4
  16. data/lib/beaker/ssh_connection.rb +2 -2
  17. data/lib/beaker/version.rb +1 -1
  18. data/spec/beaker/cli_spec.rb +11 -11
  19. data/spec/beaker/command_spec.rb +10 -10
  20. data/spec/beaker/dsl/helpers/host_helpers_spec.rb +11 -11
  21. data/spec/beaker/dsl/roles_spec.rb +15 -15
  22. data/spec/beaker/dsl/structure_spec.rb +3 -3
  23. data/spec/beaker/host/pswindows/exec_spec.rb +3 -3
  24. data/spec/beaker/host/unix/exec_spec.rb +3 -3
  25. data/spec/beaker/host/unix/file_spec.rb +8 -0
  26. data/spec/beaker/host/unix/pkg_spec.rb +10 -10
  27. data/spec/beaker/host_spec.rb +6 -6
  28. data/spec/beaker/logger_spec.rb +7 -7
  29. data/spec/beaker/options/hosts_file_parser_spec.rb +1 -1
  30. data/spec/beaker/options/parser_spec.rb +40 -40
  31. data/spec/beaker/platform_spec.rb +5 -0
  32. data/spec/beaker/shared/host_manager_spec.rb +1 -1
  33. data/spec/beaker/shared/semvar_spec.rb +1 -1
  34. data/spec/beaker/subcommand/subcommand_util_spec.rb +5 -5
  35. data/spec/beaker/test_suite_spec.rb +12 -12
  36. metadata +5 -5
@@ -21,13 +21,13 @@ describe ClassMixedWithDSLRoles do
21
21
  it 'returns an array of hosts that are agents' do
22
22
  @hosts = [agent1, agent2, master]
23
23
  expect(subject).to receive(:hosts).and_return(hosts)
24
- expect(subject.agents).to be == [agent1, agent2, master]
24
+ expect(subject.agents).to eq [agent1, agent2, master]
25
25
  end
26
26
 
27
27
  it 'and an empty array when none match' do
28
28
  @hosts = [db, custom]
29
29
  expect(subject).to receive(:hosts).and_return(hosts)
30
- expect(subject.agents).to be == []
30
+ expect(subject.agents).to eq []
31
31
  end
32
32
  end
33
33
 
@@ -35,7 +35,7 @@ describe ClassMixedWithDSLRoles do
35
35
  it 'returns the master if there is one' do
36
36
  @hosts = [master, agent1]
37
37
  expect(subject).to receive(:hosts).and_return(hosts)
38
- expect(subject.master).to be == master
38
+ expect(subject.master).to eq master
39
39
  end
40
40
 
41
41
  it 'raises an error if there is more than one master' do
@@ -56,7 +56,7 @@ describe ClassMixedWithDSLRoles do
56
56
  it 'returns the dashboard if there is one' do
57
57
  @hosts = [a_and_dash, agent1]
58
58
  expect(subject).to receive(:hosts).and_return(hosts)
59
- expect(subject.dashboard).to be == a_and_dash
59
+ expect(subject.dashboard).to eq a_and_dash
60
60
  end
61
61
 
62
62
  it 'raises an error if there is more than one dashboard' do
@@ -83,7 +83,7 @@ describe ClassMixedWithDSLRoles do
83
83
  it 'returns the database if there is one' do
84
84
  @hosts = [db, agent1]
85
85
  expect(subject).to receive(:hosts).and_return(hosts)
86
- expect(subject.database).to be == db
86
+ expect(subject.database).to eq db
87
87
  end
88
88
 
89
89
  it 'raises an error if there is more than one database' do
@@ -108,25 +108,25 @@ describe ClassMixedWithDSLRoles do
108
108
 
109
109
  describe '#not_controller' do
110
110
  it 'returns true when a host does not have the roles master/database/dashboard' do
111
- expect(subject.not_controller(agent1)).to be == true
111
+ expect(subject.not_controller(agent1)).to eq true
112
112
  end
113
113
 
114
114
  it 'returns false when a host has one of the roles master/database/dashboard' do
115
- expect(subject.not_controller(a_and_dash)).to be == false
115
+ expect(subject.not_controller(a_and_dash)).to eq false
116
116
  end
117
117
  end
118
118
 
119
119
  describe '#agent_only' do
120
120
  it 'returns true when a host has the single role agent' do
121
- expect(subject.agent_only(agent1)).to be == true
121
+ expect(subject.agent_only(agent1)).to eq true
122
122
  end
123
123
 
124
124
  it 'returns false when a host has more than a single role' do
125
- expect(subject.agent_only(a_and_dash)).to be == false
125
+ expect(subject.agent_only(a_and_dash)).to eq false
126
126
  end
127
127
 
128
128
  it 'returns false when a host has the role master' do
129
- expect(subject.agent_only(master)).to be == false
129
+ expect(subject.agent_only(master)).to eq false
130
130
  end
131
131
  end
132
132
 
@@ -328,7 +328,7 @@ describe ClassMixedWithDSLRoles do
328
328
  it 'returns the default host when one is specified' do
329
329
  @hosts = [db, agent1, agent2, default, master]
330
330
  expect(subject).to receive(:hosts).once.and_return(hosts)
331
- expect(subject.default).to be == default
331
+ expect(subject.default).to eq default
332
332
  end
333
333
 
334
334
  it 'raises an error if there is more than one default' do
@@ -377,7 +377,7 @@ describe ClassMixedWithDSLRoles do
377
377
  test_role = "custom_role"
378
378
  subject.add_role_def(test_role)
379
379
  expect(subject).to respond_to test_role
380
- expect(subject.send(test_role)).to be == @hosts[2]
380
+ expect(subject.send(test_role)).to eq @hosts[2]
381
381
  subject.class.send(:undef_method, test_role)
382
382
  end
383
383
 
@@ -387,7 +387,7 @@ describe ClassMixedWithDSLRoles do
387
387
  test_role = "custom_role"
388
388
  subject.add_role_def(test_role)
389
389
  expect(subject).to respond_to test_role
390
- expect(subject.send(test_role)).to be == [@hosts[2], @hosts[3]]
390
+ expect(subject.send(test_role)).to eq [@hosts[2], @hosts[3]]
391
391
  subject.class.send(:undef_method, test_role)
392
392
  end
393
393
  end
@@ -397,8 +397,8 @@ describe ClassMixedWithDSLRoles do
397
397
  @hosts = [agent1, agent2]
398
398
  # expect( subject ).to receive( :hosts ).and_return( hosts )
399
399
  expect(subject).to receive(:hosts).twice.and_return(hosts)
400
- expect(subject.any_hosts_as?("agent")).to be == true
401
- expect(subject.any_hosts_as?("custom_role")).to be == false
400
+ expect(subject.any_hosts_as?("agent")).to eq true
401
+ expect(subject.any_hosts_as?("custom_role")).to eq false
402
402
  end
403
403
  end
404
404
  end
@@ -370,13 +370,13 @@ describe ClassMixedWithDSLStructure do
370
370
  it 'returns an empty array if there are no applicable hosts' do
371
371
  hosts = [{ 'thing' => 'foo' }, { 'thing' => 'bar' }]
372
372
 
373
- expect(subject.select_hosts({ 'thing' => 'nope' }, hosts)).to be == []
373
+ expect(subject.select_hosts({ 'thing' => 'nope' }, hosts)).to eq []
374
374
  end
375
375
 
376
376
  it 'selects hosts that match a list of criteria' do
377
377
  hosts = [{ 'thing' => 'foo' }, { 'thing' => 'bar' }, { 'thing' => 'baz' }]
378
378
 
379
- expect(subject.select_hosts({ :thing => %w[foo baz] }, hosts)).to be == [{ 'thing' => 'foo' }, { 'thing' => 'baz' }]
379
+ expect(subject.select_hosts({ :thing => %w[foo baz] }, hosts)).to eq [{ 'thing' => 'foo' }, { 'thing' => 'baz' }]
380
380
  end
381
381
 
382
382
  it 'selects hosts when a passed block returns true' do
@@ -396,7 +396,7 @@ describe ClassMixedWithDSLStructure do
396
396
  selected_hosts = subject.select_hosts 'platform' => 'solaris' do |host|
397
397
  subject.on(host, '/sbin/zonename').stdout.include?(':global')
398
398
  end
399
- expect(selected_hosts).to be == [host1]
399
+ expect(selected_hosts).to eq [host1]
400
400
  end
401
401
  end
402
402
  end
@@ -85,17 +85,17 @@ module Beaker
85
85
  let(:host) { { 'pathseparator' => ':' } }
86
86
 
87
87
  it 'returns a blank string if theres no env' do
88
- expect(instance.environment_string({})).to be == ''
88
+ expect(instance.environment_string({})).to eq ''
89
89
  end
90
90
 
91
91
  it 'takes an env hash with var_name/value pairs' do
92
92
  expect(instance.environment_string({ :HOME => '/', :http_proxy => 'http://foo' }))
93
- .to be == 'set "HOME=/" && set "http_proxy=http://foo" && set "HTTP_PROXY=http://foo" && '
93
+ .to eq 'set "HOME=/" && set "http_proxy=http://foo" && set "HTTP_PROXY=http://foo" && '
94
94
  end
95
95
 
96
96
  it 'takes an env hash with var_name/value[Array] pairs' do
97
97
  expect(instance.environment_string({ :LD_PATH => ['/', '/tmp'] }))
98
- .to be == "set \"LD_PATH=/:/tmp\" && "
98
+ .to eq "set \"LD_PATH=/:/tmp\" && "
99
99
  end
100
100
  end
101
101
 
@@ -62,17 +62,17 @@ module Beaker
62
62
 
63
63
  it 'returns a blank string if theres no env' do
64
64
  expect(instance).not_to receive(:is_powershell?)
65
- expect(instance.environment_string({})).to be == ''
65
+ expect(instance.environment_string({})).to eq ''
66
66
  end
67
67
 
68
68
  it 'takes an env hash with var_name/value pairs' do
69
69
  expect(instance.environment_string({ :HOME => '/', :http_proxy => 'http://foo' }))
70
- .to be == 'env HOME="/" http_proxy="http://foo" HTTP_PROXY="http://foo"'
70
+ .to eq 'env HOME="/" http_proxy="http://foo" HTTP_PROXY="http://foo"'
71
71
  end
72
72
 
73
73
  it 'takes an env hash with var_name/value[Array] pairs' do
74
74
  expect(instance.environment_string({ :LD_PATH => ['/', '/tmp'] }))
75
- .to be == "env LD_PATH=\"/:/tmp\""
75
+ .to eq "env LD_PATH=\"/:/tmp\""
76
76
  end
77
77
  end
78
78
 
@@ -133,6 +133,14 @@ module Beaker
133
133
  expect(filename).to be === correct
134
134
  end
135
135
 
136
+ it 'builds the filename correctly for amazon-based platforms' do
137
+ @platform = 'amazon-2023-x86_64'
138
+ allow(instance).to receive(:is_pe?).and_return(true)
139
+ filename = instance.repo_filename('pkg_name', 'pkg_version')
140
+ correct = 'pl-pkg_name-pkg_version-amazon-2023-x86_64.repo'
141
+ expect(filename).to be === correct
142
+ end
143
+
136
144
  it 'builds the filename correctly for debian-based platforms' do
137
145
  @platform = 'debian-8-x86_64'
138
146
  filename = instance.repo_filename('pkg_name', 'pkg_version10')
@@ -171,7 +171,7 @@ module Beaker
171
171
  pkg = 'pkg'
172
172
  expect(Beaker::Command).to receive(:new).with("apt-get install --force-yes -y #{pkg}", [], { :prepend_cmds => nil, :cmdexe => false }).and_return('')
173
173
  expect(instance).to receive(:exec).with('', {}).and_return(generate_result("hello", { :exit_code => 0 }))
174
- expect(instance.install_package(pkg)).to be == "hello"
174
+ expect(instance.install_package(pkg)).to eq "hello"
175
175
  end
176
176
  end
177
177
 
@@ -180,7 +180,7 @@ module Beaker
180
180
  pkg = 'fedora_package'
181
181
  expect(Beaker::Command).to receive(:new).with("dnf -y install #{pkg}", [], { :prepend_cmds => nil, :cmdexe => false }).and_return('')
182
182
  expect(instance).to receive(:exec).with('', {}).and_return(generate_result("hello", { :exit_code => 0 }))
183
- expect(instance.install_package(pkg)).to be == "hello"
183
+ expect(instance.install_package(pkg)).to eq "hello"
184
184
  end
185
185
 
186
186
  it "uses dnf on amazon-2023" do
@@ -188,7 +188,7 @@ module Beaker
188
188
  pkg = 'amazon_package'
189
189
  expect(Beaker::Command).to receive(:new).with("dnf -y install #{pkg}", [], { :prepend_cmds => nil, :cmdexe => false }).and_return('')
190
190
  expect(instance).to receive(:exec).with('', {}).and_return(generate_result("hello", { :exit_code => 0 }))
191
- expect(instance.install_package(pkg)).to be == "hello"
191
+ expect(instance.install_package(pkg)).to eq "hello"
192
192
  end
193
193
 
194
194
  it "uses pacman on archlinux" do
@@ -196,7 +196,7 @@ module Beaker
196
196
  pkg = 'archlinux_package'
197
197
  expect(Beaker::Command).to receive(:new).with("pacman -S --noconfirm #{pkg}", [], { :prepend_cmds => nil, :cmdexe => false }).and_return('')
198
198
  expect(instance).to receive(:exec).with('', {}).and_return(generate_result("hello", { :exit_code => 0 }))
199
- expect(instance.install_package(pkg)).to be == "hello"
199
+ expect(instance.install_package(pkg)).to eq "hello"
200
200
  end
201
201
  end
202
202
 
@@ -206,7 +206,7 @@ module Beaker
206
206
  @opts = { 'platform' => platform }
207
207
  expect(Beaker::Command).to receive(:new).with("apt-get purge -y pkg", [], { :prepend_cmds => nil, :cmdexe => false }).and_return('')
208
208
  expect(instance).to receive(:exec).with('', {}).and_return(generate_result("hello", { :exit_code => 0 }))
209
- expect(instance.uninstall_package('pkg')).to be == "hello"
209
+ expect(instance.uninstall_package('pkg')).to eq "hello"
210
210
  end
211
211
 
212
212
  it "uses dnf on fedora" do
@@ -214,7 +214,7 @@ module Beaker
214
214
  pkg = 'fedora_package'
215
215
  expect(Beaker::Command).to receive(:new).with("dnf -y remove #{pkg}", [], { :prepend_cmds => nil, :cmdexe => false }).and_return('')
216
216
  expect(instance).to receive(:exec).with('', {}).and_return(generate_result("hello", { :exit_code => 0 }))
217
- expect(instance.uninstall_package(pkg)).to be == "hello"
217
+ expect(instance.uninstall_package(pkg)).to eq "hello"
218
218
  end
219
219
  end
220
220
  end
@@ -225,7 +225,7 @@ module Beaker
225
225
  @opts = { 'platform' => platform }
226
226
  expect(Beaker::Command).to receive(:new).with("apt-get install -o Dpkg::Options::='--force-confold' -y --force-yes pkg", [], { :prepend_cmds => nil, :cmdexe => false }).and_return('')
227
227
  expect(instance).to receive(:exec).with('', {}).and_return(generate_result("hello", { :exit_code => 0 }))
228
- expect(instance.upgrade_package('pkg')).to be == "hello"
228
+ expect(instance.upgrade_package('pkg')).to eq "hello"
229
229
  end
230
230
  end
231
231
  end
@@ -236,7 +236,7 @@ module Beaker
236
236
  pkg = 'redhat_package'
237
237
  expect(Beaker::Command).to receive(:new).with("rpm -Uvh #{pkg} ", [], { :prepend_cmds => nil, :cmdexe => false }).and_return('')
238
238
  expect(instance).to receive(:exec).with('', {}).and_return(generate_result("hello", { :exit_code => 0 }))
239
- expect(instance.install_package_with_rpm(pkg)).to be == "hello"
239
+ expect(instance.install_package_with_rpm(pkg)).to eq "hello"
240
240
  end
241
241
 
242
242
  it "accepts a package and additional options" do
@@ -245,7 +245,7 @@ module Beaker
245
245
  cmdline_args = '--foo'
246
246
  expect(Beaker::Command).to receive(:new).with("rpm #{cmdline_args} -Uvh #{pkg} ", [], { :prepend_cmds => nil, :cmdexe => false }).and_return('')
247
247
  expect(instance).to receive(:exec).with('', {}).and_return(generate_result("hello", { :exit_code => 0 }))
248
- expect(instance.install_package_with_rpm(pkg, cmdline_args)).to be == "hello"
248
+ expect(instance.install_package_with_rpm(pkg, cmdline_args)).to eq "hello"
249
249
  end
250
250
  end
251
251
 
@@ -255,7 +255,7 @@ module Beaker
255
255
  'https://myproxy.com:3128',
256
256
  'http://myproxy.com:3128',].each do |url|
257
257
  it "correctly extracts rpm proxy options for #{url}" do
258
- expect(instance.extract_rpm_proxy_options(url)).to be == '--httpproxy myproxy.com --httpport 3128'
258
+ expect(instance.extract_rpm_proxy_options(url)).to eq '--httpproxy myproxy.com --httpport 3128'
259
259
  end
260
260
  end
261
261
 
@@ -256,7 +256,7 @@ module Beaker
256
256
  allow(host).to receive(:exec).and_return(result)
257
257
 
258
258
  expect(Beaker::Command).to receive(:new).with("mkdir -p \"test/test/test\"")
259
- expect(host.mkdir_p('test/test/test')).to be == true
259
+ expect(host.mkdir_p('test/test/test')).to eq true
260
260
  end
261
261
 
262
262
  it "does the right thing on a bash host, identified as is_cygwin=nil" do
@@ -267,7 +267,7 @@ module Beaker
267
267
  allow(host).to receive(:exec).and_return(result)
268
268
 
269
269
  expect(Beaker::Command).to receive(:new).with("mkdir -p \"test/test/test\"")
270
- expect(host.mkdir_p('test/test/test')).to be == true
270
+ expect(host.mkdir_p('test/test/test')).to eq true
271
271
  end
272
272
 
273
273
  it "does the right thing on a non-bash host, identified as is_cygwin=false (powershell)" do
@@ -284,26 +284,26 @@ module Beaker
284
284
  "-NoProfile",
285
285
  "-NonInteractive",
286
286
  "-Command New-Item -Path 'test\\test\\test' -ItemType 'directory'",])
287
- expect(host.mkdir_p('test/test/test')).to be == true
287
+ expect(host.mkdir_p('test/test/test')).to eq true
288
288
  end
289
289
  end
290
290
 
291
291
  describe "#touch" do
292
292
  it "generates the right absolute command for a windows host" do
293
293
  @platform = 'windows'
294
- expect(host.touch('touched_file')).to be == "c:\\\\windows\\\\system32\\\\cmd.exe /c echo. 2> touched_file"
294
+ expect(host.touch('touched_file')).to eq "c:\\\\windows\\\\system32\\\\cmd.exe /c echo. 2> touched_file"
295
295
  end
296
296
 
297
297
  %w[centos redhat].each do |platform|
298
298
  it "generates the right absolute command for a #{platform} host" do
299
299
  @platform = platform
300
- expect(host.touch('touched_file')).to be == "/bin/touch touched_file"
300
+ expect(host.touch('touched_file')).to eq "/bin/touch touched_file"
301
301
  end
302
302
  end
303
303
 
304
304
  it "generates the right absolute command for an osx host" do
305
305
  @platform = 'osx'
306
- expect(host.touch('touched_file')).to be == "/usr/bin/touch touched_file"
306
+ expect(host.touch('touched_file')).to eq "/usr/bin/touch touched_file"
307
307
  end
308
308
  end
309
309
 
@@ -205,11 +205,11 @@ module Beaker
205
205
  let(:logger) { described_class.new(my_io, :quiet => true, :log_colors => log_colors) }
206
206
 
207
207
  it 'overrides the specified log colors' do
208
- expect(logger.log_colors[:error]).to be == Beaker::Logger::BLACK
208
+ expect(logger.log_colors[:error]).to eq Beaker::Logger::BLACK
209
209
  end
210
210
 
211
211
  it 'leaves other colors as the default' do
212
- expect(logger.log_colors[:warn]).to be == Beaker::Logger::BRIGHT_RED
212
+ expect(logger.log_colors[:warn]).to eq Beaker::Logger::BRIGHT_RED
213
213
  end
214
214
  end
215
215
 
@@ -220,11 +220,11 @@ module Beaker
220
220
 
221
221
  context 'when using the default log colors' do
222
222
  it 'overrides notify with NORMAL' do
223
- expect(logger.log_colors[:notify]).to be == Beaker::Logger::NORMAL
223
+ expect(logger.log_colors[:notify]).to eq Beaker::Logger::NORMAL
224
224
  end
225
225
 
226
226
  it 'overrides info with NORMAL' do
227
- expect(logger.log_colors[:info]).to be == Beaker::Logger::NORMAL
227
+ expect(logger.log_colors[:info]).to eq Beaker::Logger::NORMAL
228
228
  end
229
229
  end
230
230
 
@@ -238,15 +238,15 @@ module Beaker
238
238
  let(:logger) { described_class.new(my_io, :quiet => true, :log_colors => log_colors) }
239
239
 
240
240
  it 'overrides the specified log colors' do
241
- expect(logger.log_colors[:error]).to be == Beaker::Logger::BLACK
241
+ expect(logger.log_colors[:error]).to eq Beaker::Logger::BLACK
242
242
  end
243
243
 
244
244
  it 'does not override notify with NORMAL' do
245
- expect(logger.log_colors[:notify]).not_to be == Beaker::Logger::NORMAL
245
+ expect(logger.log_colors[:notify]).not_to eq Beaker::Logger::NORMAL
246
246
  end
247
247
 
248
248
  it 'does not override info with NORMAL' do
249
- expect(logger.log_colors[:notify]).not_to be == Beaker::Logger::NORMAL
249
+ expect(logger.log_colors[:notify]).not_to eq Beaker::Logger::NORMAL
250
250
  end
251
251
  end
252
252
  end
@@ -66,7 +66,7 @@ module Beaker
66
66
  end
67
67
 
68
68
  describe '#parse_hosts_string' do
69
- it 'will return a #new_host_options hash if given no arguments' do
69
+ it 'returns a #new_host_options hash if given no arguments' do
70
70
  host_options = parser.parse_hosts_string
71
71
  expect(host_options).to be === parser.new_host_options
72
72
  end
@@ -127,10 +127,10 @@ module Beaker
127
127
  my_args = ['--log-level', 'debug', '-h', hosts_path]
128
128
 
129
129
  expect(parser.parse_args(my_args)[:command_line]).to include(my_args.join(' '))
130
- expect(parser.attribution[:command_line]).to be == 'cmd'
131
- expect(parser.attribution[:hosts_file]).to be == 'cmd'
132
- expect(parser.attribution[:log_level]).to be == 'cmd'
133
- expect(parser.attribution[:pe_dir]).to be == 'preset'
130
+ expect(parser.attribution[:command_line]).to eq 'cmd'
131
+ expect(parser.attribution[:hosts_file]).to eq 'cmd'
132
+ expect(parser.attribution[:log_level]).to eq 'cmd'
133
+ expect(parser.attribution[:pe_dir]).to eq 'preset'
134
134
  end
135
135
 
136
136
  describe 'does prioritization correctly' do
@@ -205,8 +205,8 @@ module Beaker
205
205
 
206
206
  opts = parser.parse_args([])
207
207
  attribution = parser.attribution
208
- expect(opts[:level]).to be == 'lowest'
209
- expect(attribution[:level]).to be == 'preset'
208
+ expect(opts[:level]).to eq 'lowest'
209
+ expect(attribution[:level]).to eq 'preset'
210
210
  end
211
211
 
212
212
  it 'project options should have seventh priority' do
@@ -215,10 +215,10 @@ module Beaker
215
215
 
216
216
  opts = parser.parse_args([])
217
217
  attribution = parser.attribution
218
- expect(opts[:ssh][:auth_methods]).to be == 'auth_project_123'
219
- expect(attribution[:ssh][:auth_methods]).to be == 'project'
220
- expect(opts[:level]).to be == 'seventh'
221
- expect(attribution[:level]).to be == 'project'
218
+ expect(opts[:ssh][:auth_methods]).to eq 'auth_project_123'
219
+ expect(attribution[:ssh][:auth_methods]).to eq 'project'
220
+ expect(opts[:level]).to eq 'seventh'
221
+ expect(attribution[:level]).to eq 'project'
222
222
  end
223
223
 
224
224
  it 'home directory options should have sixth priority' do
@@ -227,10 +227,10 @@ module Beaker
227
227
 
228
228
  opts = parser.parse_args([])
229
229
  attribution = parser.attribution
230
- expect(opts[:ssh][:auth_methods]).to be == 'auth_home_123'
231
- expect(attribution[:ssh][:auth_methods]).to be == 'homedir'
232
- expect(opts[:level]).to be == 'sixth'
233
- expect(attribution[:level]).to be == 'homedir'
230
+ expect(opts[:ssh][:auth_methods]).to eq 'auth_home_123'
231
+ expect(attribution[:ssh][:auth_methods]).to eq 'homedir'
232
+ expect(opts[:level]).to eq 'sixth'
233
+ expect(attribution[:level]).to eq 'homedir'
234
234
  end
235
235
 
236
236
  it 'subcommand_options should have fifth priority' do
@@ -239,8 +239,8 @@ module Beaker
239
239
 
240
240
  opts = parser.parse_args([])
241
241
  attribution = parser.attribution
242
- expect(opts[:level]).to be == 'fifth'
243
- expect(attribution[:level]).to be == 'subcommand'
242
+ expect(opts[:level]).to eq 'fifth'
243
+ expect(attribution[:level]).to eq 'subcommand'
244
244
  end
245
245
 
246
246
  it 'options file has fourth priority' do
@@ -250,16 +250,16 @@ module Beaker
250
250
  opts = parser.parse_args([])
251
251
  attribution = parser.attribution
252
252
  expect(attribution[:ssh]).to be_a(Hash)
253
- expect(attribution[:ssh][:auth_methods]).to be == 'options_file'
254
- expect(attribution[:ssh][:user_known_hosts_file]).to be == 'options_file'
255
- expect(attribution[:ssh][:config]).to be == 'preset'
256
- expect(attribution[:ssh][:verify_host_key]).to be == 'preset'
257
- expect(attribution[:ssh][:port]).to be == 'preset'
258
- expect(attribution[:ssh][:forward_agent]).to be == 'preset'
259
- expect(attribution[:ssh][:keys]).to be == 'preset'
260
- expect(attribution[:ssh][:keepalive]).to be == 'preset'
261
- expect(opts[:level]).to be == 'fourth'
262
- expect(attribution[:level]).to be == 'options_file'
253
+ expect(attribution[:ssh][:auth_methods]).to eq 'options_file'
254
+ expect(attribution[:ssh][:user_known_hosts_file]).to eq 'options_file'
255
+ expect(attribution[:ssh][:config]).to eq 'preset'
256
+ expect(attribution[:ssh][:verify_host_key]).to eq 'preset'
257
+ expect(attribution[:ssh][:port]).to eq 'preset'
258
+ expect(attribution[:ssh][:forward_agent]).to eq 'preset'
259
+ expect(attribution[:ssh][:keys]).to eq 'preset'
260
+ expect(attribution[:ssh][:keepalive]).to eq 'preset'
261
+ expect(opts[:level]).to eq 'fourth'
262
+ expect(attribution[:level]).to eq 'options_file'
263
263
  end
264
264
 
265
265
  it 'host file CONFIG section has third priority' do
@@ -268,8 +268,8 @@ module Beaker
268
268
 
269
269
  opts = parser.parse_args([])
270
270
  attribution = parser.attribution
271
- expect(opts[:level]).to be == 'third'
272
- expect(attribution[:level]).to be == 'host_file'
271
+ expect(opts[:level]).to eq 'third'
272
+ expect(attribution[:level]).to eq 'host_file'
273
273
  end
274
274
 
275
275
  it 'command line arguments have second priority' do
@@ -278,8 +278,8 @@ module Beaker
278
278
 
279
279
  opts = parser.parse_args([])
280
280
  attribution = parser.attribution
281
- expect(opts[:level]).to be == 'second'
282
- expect(attribution[:level]).to be == 'cmd'
281
+ expect(opts[:level]).to eq 'second'
282
+ expect(attribution[:level]).to eq 'cmd'
283
283
  end
284
284
 
285
285
  it 'env vars have highest priority' do
@@ -287,8 +287,8 @@ module Beaker
287
287
 
288
288
  opts = parser.parse_args([])
289
289
  attribution = parser.attribution
290
- expect(opts[:level]).to be == 'highest'
291
- expect(attribution[:level]).to be == 'env'
290
+ expect(opts[:level]).to eq 'highest'
291
+ expect(attribution[:level]).to eq 'env'
292
292
  end
293
293
 
294
294
  it "loads the options file from a project file" do
@@ -325,12 +325,12 @@ module Beaker
325
325
  args = ["-h", hosts_path, "--log-level", log_level, "--type", type, "--install", "PUPPET/1.0,HIERA/hello"]
326
326
  output = parser.parse_args(args)
327
327
  attribution = parser.attribution
328
- expect(output[:hosts_file]).to be == hosts_path
329
- expect(attribution[:hosts_file]).to be == 'cmd'
330
- expect(output[:jenkins_build_url]).to be == build_url
331
- expect(attribution[:jenkins_build_url]).to be == 'env'
328
+ expect(output[:hosts_file]).to eq hosts_path
329
+ expect(attribution[:hosts_file]).to eq 'cmd'
330
+ expect(output[:jenkins_build_url]).to eq build_url
331
+ expect(attribution[:jenkins_build_url]).to eq 'env'
332
332
  expect(output[:install]).to include('git://github.com/puppetlabs/hiera.git#hello')
333
- expect(attribution[:install]).to be == 'runtime'
333
+ expect(attribution[:install]).to eq 'runtime'
334
334
 
335
335
  ENV["BUILD_URL"] = old_build_url
336
336
  end
@@ -567,20 +567,20 @@ module Beaker
567
567
  hosts['HOSTS'][:master][:ssh] = { :user => 'hello' }
568
568
  parser.instance_variable_set(:@options, hosts)
569
569
  parser.normalize_args
570
- expect(hosts['HOSTS'][:master][:user]).to be == 'hello'
570
+ expect(hosts['HOSTS'][:master][:user]).to eq 'hello'
571
571
  end
572
572
 
573
573
  it 'uses default user if there is an ssh hash, but no ssh[:user]' do
574
574
  hosts['HOSTS'][:master][:ssh] = { :hello => 'hello' }
575
575
  parser.instance_variable_set(:@options, hosts)
576
576
  parser.normalize_args
577
- expect(hosts['HOSTS'][:master][:user]).to be == 'root'
577
+ expect(hosts['HOSTS'][:master][:user]).to eq 'root'
578
578
  end
579
579
 
580
580
  it 'uses default user if no ssh hash' do
581
581
  parser.instance_variable_set(:@options, hosts)
582
582
  parser.normalize_args
583
- expect(hosts['HOSTS'][:master][:user]).to be == 'root'
583
+ expect(hosts['HOSTS'][:master][:user]).to eq 'root'
584
584
  end
585
585
  end
586
586
  end
@@ -88,6 +88,11 @@ module Beaker
88
88
  expect(platform.with_version_codename).to be === 'debian-squeeze-xxx'
89
89
  end
90
90
 
91
+ it "can convert ubuntu-2404-xxx to ubuntu-noble-xxx" do
92
+ @name = 'ubuntu-2404-xxx'
93
+ expect(platform.with_version_codename).to be === 'ubuntu-noble-xxx'
94
+ end
95
+
91
96
  it "can convert ubuntu-2204-xxx to ubuntu-jammy-xxx" do
92
97
  @name = 'ubuntu-2204-xxx'
93
98
  expect(platform.with_version_codename).to be === 'ubuntu-jammy-xxx'
@@ -140,7 +140,7 @@ module Beaker
140
140
  end
141
141
  end
142
142
 
143
- it "will ignore run_in_parallel global option" do
143
+ it "ignores run_in_parallel global option" do
144
144
  myhosts = host_handler.run_block_on(hosts, nil, { :run_in_parallel => [] }) do |host|
145
145
  host
146
146
  end
@@ -57,7 +57,7 @@ module Beaker
57
57
  end
58
58
 
59
59
  it 'reports that 2015.3.0 is not less than 2015.3.0' do
60
- expect(subject.version_is_less('2015.3.0', '2015.3.0')).to be == false
60
+ expect(subject.version_is_less('2015.3.0', '2015.3.0')).to eq false
61
61
  end
62
62
  end
63
63
 
@@ -57,23 +57,23 @@ module Beaker
57
57
 
58
58
  describe 'execute_subcommand' do
59
59
  it "determines if we should execute the init subcommand" do
60
- expect(subject.execute_subcommand?("init")).to be == true
60
+ expect(subject.execute_subcommand?("init")).to eq true
61
61
  end
62
62
 
63
63
  it "does not attempt to execute intialize as a subcommand" do
64
- expect(subject.execute_subcommand?("initialize")).to be == false
64
+ expect(subject.execute_subcommand?("initialize")).to eq false
65
65
  end
66
66
 
67
67
  it "determines if we should execute the help subcommand" do
68
- expect(subject.execute_subcommand?("help")).to be == true
68
+ expect(subject.execute_subcommand?("help")).to eq true
69
69
  end
70
70
 
71
71
  it "determines if we should execute the provision subcommand" do
72
- expect(subject.execute_subcommand?("provision")).to be == true
72
+ expect(subject.execute_subcommand?("provision")).to eq true
73
73
  end
74
74
 
75
75
  it "determines that a subcommand should not be executed" do
76
- expect(subject.execute_subcommand?("notasubcommand")).to be == false
76
+ expect(subject.execute_subcommand?("notasubcommand")).to eq false
77
77
  end
78
78
  end
79
79