beaker 5.5.0 → 5.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +14 -14
- data/.github/workflows/release.yml +1 -1
- data/.github/workflows/test.yml +2 -2
- data/.rubocop_todo.yml +51 -5
- data/CHANGELOG.md +17 -0
- data/acceptance/tests/base/dsl/helpers/host_helpers/on_test.rb +1 -1
- data/acceptance/tests/base/dsl/platform_tag_confiner_test.rb +2 -2
- data/beaker.gemspec +1 -1
- data/lib/beaker/cli.rb +3 -3
- data/lib/beaker/host/unix/pkg.rb +4 -4
- data/lib/beaker/host.rb +1 -5
- data/lib/beaker/options/hosts_file_parser.rb +1 -0
- data/lib/beaker/platform.rb +3 -4
- data/lib/beaker/shared/host_manager.rb +4 -4
- data/lib/beaker/ssh_connection.rb +2 -2
- data/lib/beaker/version.rb +1 -1
- data/spec/beaker/cli_spec.rb +11 -11
- data/spec/beaker/command_spec.rb +10 -10
- data/spec/beaker/dsl/helpers/host_helpers_spec.rb +11 -11
- data/spec/beaker/dsl/roles_spec.rb +15 -15
- data/spec/beaker/dsl/structure_spec.rb +3 -3
- data/spec/beaker/host/pswindows/exec_spec.rb +3 -3
- data/spec/beaker/host/unix/exec_spec.rb +3 -3
- data/spec/beaker/host/unix/pkg_spec.rb +20 -44
- data/spec/beaker/host_spec.rb +6 -6
- data/spec/beaker/logger_spec.rb +7 -7
- data/spec/beaker/options/hosts_file_parser_spec.rb +1 -1
- data/spec/beaker/options/parser_spec.rb +40 -40
- data/spec/beaker/platform_spec.rb +5 -0
- data/spec/beaker/shared/host_manager_spec.rb +1 -1
- data/spec/beaker/shared/semvar_spec.rb +1 -1
- data/spec/beaker/subcommand/subcommand_util_spec.rb +5 -5
- data/spec/beaker/test_suite_spec.rb +12 -12
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 59e94b473d8fa1a17f50b78a807e2b4d9f378cdab79241e982cfda9ee81225bf
|
4
|
+
data.tar.gz: e8954e2c42b3e31c396ef70c3d547c26bb8a48f87795f1d96d17406643f9e7d8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cfc90b119d87497b7a0469d36a24c49ce9b77813ccc41ff940326c0bfd07b7065fae98c028e424c0e660efe832ff3f79482a01857e6ab21965e6313c2a75404d
|
7
|
+
data.tar.gz: 888869c41f8a419e9226d81befa9a2059ccc943a024c758a24fe1d3220631043fa94b28c076fa7af3046468fc03fd2304aef0479a1059e5547f56c3ee5a0c71d
|
data/.github/dependabot.yml
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
version: 2
|
2
2
|
updates:
|
3
|
-
# raise PRs for gem updates
|
4
|
-
- package-ecosystem: bundler
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
3
|
+
# raise PRs for gem updates
|
4
|
+
- package-ecosystem: bundler
|
5
|
+
directory: "/"
|
6
|
+
schedule:
|
7
|
+
interval: daily
|
8
|
+
time: "13:00"
|
9
|
+
open-pull-requests-limit: 10
|
10
10
|
|
11
|
-
# Maintain dependencies for GitHub Actions
|
12
|
-
- package-ecosystem: github-actions
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
11
|
+
# Maintain dependencies for GitHub Actions
|
12
|
+
- package-ecosystem: github-actions
|
13
|
+
directory: "/"
|
14
|
+
schedule:
|
15
|
+
interval: daily
|
16
|
+
time: "13:00"
|
17
|
+
open-pull-requests-limit: 10
|
data/.github/workflows/test.yml
CHANGED
@@ -12,7 +12,7 @@ jobs:
|
|
12
12
|
BUNDLE_WITHOUT: release
|
13
13
|
runs-on: ubuntu-latest
|
14
14
|
steps:
|
15
|
-
- uses: actions/checkout@
|
15
|
+
- uses: actions/checkout@v4
|
16
16
|
- name: Install Ruby ${{ matrix.ruby }}
|
17
17
|
uses: ruby/setup-ruby@v1
|
18
18
|
with:
|
@@ -38,7 +38,7 @@ jobs:
|
|
38
38
|
BUNDLE_WITHOUT: release:rubocop
|
39
39
|
BEAKER_HYPERVISOR: docker
|
40
40
|
steps:
|
41
|
-
- uses: actions/checkout@
|
41
|
+
- uses: actions/checkout@v4
|
42
42
|
- name: Install Ruby ${{ matrix.ruby }}
|
43
43
|
uses: ruby/setup-ruby@v1
|
44
44
|
with:
|
data/.rubocop_todo.yml
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# This configuration was generated by
|
2
2
|
# `rubocop --auto-gen-config`
|
3
|
-
# on
|
3
|
+
# on 2024-01-08 14:04:43 UTC using RuboCop version 1.59.0.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
@@ -61,6 +61,7 @@ Lint/ShadowingOuterLocalVariable:
|
|
61
61
|
- 'lib/beaker/perf.rb'
|
62
62
|
|
63
63
|
# Offense count: 12
|
64
|
+
# This cop supports unsafe autocorrection (--autocorrect-all).
|
64
65
|
Lint/UselessAssignment:
|
65
66
|
Exclude:
|
66
67
|
- 'acceptance/tests/base/dsl/helpers/host_helpers/curl_with_retries_test.rb'
|
@@ -107,6 +108,7 @@ Naming/HeredocDelimiterNaming:
|
|
107
108
|
- 'spec/beaker/test_case_spec.rb'
|
108
109
|
|
109
110
|
# Offense count: 2
|
111
|
+
# This cop supports unsafe autocorrection (--autocorrect-all).
|
110
112
|
# Configuration parameters: EnforcedStyleForLeadingUnderscores.
|
111
113
|
# SupportedStylesForLeadingUnderscores: disallowed, required, optional
|
112
114
|
Naming/MemoizedInstanceVariableName:
|
@@ -128,14 +130,18 @@ RSpec/AnyInstance:
|
|
128
130
|
- 'spec/beaker/host/windows/file_spec.rb'
|
129
131
|
- 'spec/beaker/subcommand_spec.rb'
|
130
132
|
|
131
|
-
# Offense count:
|
133
|
+
# Offense count: 30
|
132
134
|
# This cop supports unsafe autocorrection (--autocorrect-all).
|
133
135
|
RSpec/BeEq:
|
134
136
|
Exclude:
|
135
137
|
- 'spec/beaker/cli_spec.rb'
|
138
|
+
- 'spec/beaker/dsl/roles_spec.rb'
|
136
139
|
- 'spec/beaker/host/pswindows/file_spec.rb'
|
137
140
|
- 'spec/beaker/host/windows/exec_spec.rb'
|
138
141
|
- 'spec/beaker/host_spec.rb'
|
142
|
+
- 'spec/beaker/shared/semvar_spec.rb'
|
143
|
+
- 'spec/beaker/subcommand/subcommand_util_spec.rb'
|
144
|
+
- 'spec/beaker/test_suite_spec.rb'
|
139
145
|
|
140
146
|
# Offense count: 121
|
141
147
|
# Configuration parameters: Prefixes, AllowedPatterns.
|
@@ -143,7 +149,13 @@ RSpec/BeEq:
|
|
143
149
|
RSpec/ContextWording:
|
144
150
|
Enabled: false
|
145
151
|
|
146
|
-
# Offense count:
|
152
|
+
# Offense count: 1
|
153
|
+
# This cop supports safe autocorrection (--autocorrect).
|
154
|
+
RSpec/Eq:
|
155
|
+
Exclude:
|
156
|
+
- 'spec/beaker/logger_spec.rb'
|
157
|
+
|
158
|
+
# Offense count: 241
|
147
159
|
# Configuration parameters: CountAsOne.
|
148
160
|
RSpec/ExampleLength:
|
149
161
|
Max: 44
|
@@ -201,7 +213,7 @@ RSpec/MultipleDescribes:
|
|
201
213
|
RSpec/MultipleMemoizedHelpers:
|
202
214
|
Max: 18
|
203
215
|
|
204
|
-
# Offense count:
|
216
|
+
# Offense count: 502
|
205
217
|
# Configuration parameters: EnforcedStyle, IgnoreSharedExamples.
|
206
218
|
# SupportedStyles: always, named_only
|
207
219
|
RSpec/NamedSubject:
|
@@ -218,6 +230,20 @@ RSpec/NoExpectationExample:
|
|
218
230
|
- 'spec/beaker/logger_spec.rb'
|
219
231
|
- 'spec/beaker/options/subcommand_options_parser_spec.rb'
|
220
232
|
|
233
|
+
# Offense count: 60
|
234
|
+
# This cop supports unsafe autocorrection (--autocorrect-all).
|
235
|
+
RSpec/ReceiveMessages:
|
236
|
+
Exclude:
|
237
|
+
- 'spec/beaker/cli_spec.rb'
|
238
|
+
- 'spec/beaker/command_spec.rb'
|
239
|
+
- 'spec/beaker/host_prebuilt_steps_spec.rb'
|
240
|
+
- 'spec/beaker/host_spec.rb'
|
241
|
+
- 'spec/beaker/options/parser_spec.rb'
|
242
|
+
- 'spec/beaker/shared/error_handler_spec.rb'
|
243
|
+
- 'spec/beaker/subcommand_spec.rb'
|
244
|
+
- 'spec/beaker/test_suite_spec.rb'
|
245
|
+
- 'spec/helpers.rb'
|
246
|
+
|
221
247
|
# Offense count: 7
|
222
248
|
RSpec/RepeatedDescription:
|
223
249
|
Exclude:
|
@@ -231,6 +257,26 @@ RSpec/RepeatedExample:
|
|
231
257
|
- 'spec/beaker/dsl/roles_spec.rb'
|
232
258
|
- 'spec/beaker/logger_spec.rb'
|
233
259
|
|
260
|
+
# Offense count: 13
|
261
|
+
# Configuration parameters: Include, CustomTransform, IgnoreMethods, IgnoreMetadata.
|
262
|
+
# Include: **/*_spec.rb
|
263
|
+
RSpec/SpecFilePathFormat:
|
264
|
+
Exclude:
|
265
|
+
- '**/spec/routing/**/*'
|
266
|
+
- 'spec/beaker/dsl/assertions_spec.rb'
|
267
|
+
- 'spec/beaker/dsl/helpers/host_helpers_spec.rb'
|
268
|
+
- 'spec/beaker/dsl/helpers/test_helpers_spec.rb'
|
269
|
+
- 'spec/beaker/dsl/helpers/web_helpers_spec.rb'
|
270
|
+
- 'spec/beaker/dsl/outcomes_spec.rb'
|
271
|
+
- 'spec/beaker/dsl/roles_spec.rb'
|
272
|
+
- 'spec/beaker/dsl/structure_spec.rb'
|
273
|
+
- 'spec/beaker/dsl/wrappers_spec.rb'
|
274
|
+
- 'spec/beaker/host/mac/group_spec.rb'
|
275
|
+
- 'spec/beaker/host/mac/user_spec.rb'
|
276
|
+
- 'spec/beaker/host/pswindows/user_spec.rb'
|
277
|
+
- 'spec/beaker/host/windows/user_spec.rb'
|
278
|
+
- 'spec/beaker/host_prebuilt_steps_spec.rb'
|
279
|
+
|
234
280
|
# Offense count: 178
|
235
281
|
RSpec/SubjectStub:
|
236
282
|
Exclude:
|
@@ -283,7 +329,7 @@ Security/Open:
|
|
283
329
|
Exclude:
|
284
330
|
- 'lib/beaker/dsl/helpers/web_helpers.rb'
|
285
331
|
|
286
|
-
# Offense count:
|
332
|
+
# Offense count: 106
|
287
333
|
# This cop supports safe autocorrection (--autocorrect).
|
288
334
|
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns.
|
289
335
|
# URISchemes: http, https
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,22 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [5.7.0](https://github.com/voxpupuli/beaker/tree/5.7.0) (2024-02-13)
|
4
|
+
|
5
|
+
**Implemented enhancements:**
|
6
|
+
|
7
|
+
- Add Ubuntu 24.04 noble codename [\#1847](https://github.com/voxpupuli/beaker/pull/1847) ([h0tw1r3](https://github.com/h0tw1r3))
|
8
|
+
|
9
|
+
## [5.6.0](https://github.com/voxpupuli/beaker/tree/5.6.0) (2023-11-23)
|
10
|
+
|
11
|
+
**Implemented enhancements:**
|
12
|
+
|
13
|
+
- Use DNF for Amazon Linux 2023 [\#1832](https://github.com/voxpupuli/beaker/pull/1832) ([mhashizume](https://github.com/mhashizume))
|
14
|
+
- Use DNF for Fedora, newer Enterprise Linux [\#1835](https://github.com/voxpupuli/beaker/pull/1835) ([mhashizume](https://github.com/mhashizume))
|
15
|
+
|
16
|
+
**Fixed bugs:**
|
17
|
+
|
18
|
+
- Permit PlatformTagContainer class for beaker hosts [\#1833](https://github.com/voxpupuli/beaker/pull/1833) ([tlehman](https://github.com/tlehman))
|
19
|
+
|
3
20
|
## [5.5.0](https://github.com/voxpupuli/beaker/tree/5.5.0) (2023-10-02)
|
4
21
|
|
5
22
|
[Full Changelog](https://github.com/voxpupuli/beaker/compare/5.4.0...5.5.0)
|
@@ -13,7 +13,7 @@ test_name "DSL::Structure::PlatformTagConfiner" do
|
|
13
13
|
end
|
14
14
|
|
15
15
|
step "#{pstc_method_name} can remove hosts from a test, or be skipped if empty" do
|
16
|
-
|
16
|
+
assert_operator hosts.length, :>, 0, "#{pstc_method_name} did not have enough hosts to test"
|
17
17
|
previous_hosts = hosts.dup
|
18
18
|
|
19
19
|
options[:platform_tag_confines] = [
|
@@ -35,7 +35,7 @@ test_name "DSL::Structure::PlatformTagConfiner" do
|
|
35
35
|
# is being raised confirms that a lower number of hosts are coming out of
|
36
36
|
# the confine (0) than came in (>0, according to our pre-condition assertion)
|
37
37
|
else
|
38
|
-
|
38
|
+
assert_operator hosts.length, :<, previous_hosts.length, "#{pstc_method_name} did not change hosts array"
|
39
39
|
end
|
40
40
|
|
41
41
|
# cleanup
|
data/beaker.gemspec
CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |s|
|
|
22
22
|
s.add_development_dependency 'fakefs', '~> 2.4'
|
23
23
|
s.add_development_dependency 'rake', '~> 13.0'
|
24
24
|
s.add_development_dependency 'rspec', '~> 3.0'
|
25
|
-
s.add_development_dependency 'voxpupuli-rubocop', '~>
|
25
|
+
s.add_development_dependency 'voxpupuli-rubocop', '~> 2.4.0'
|
26
26
|
|
27
27
|
# Run time dependencies
|
28
28
|
s.add_runtime_dependency 'minitar', '~> 0.6'
|
data/lib/beaker/cli.rb
CHANGED
@@ -106,7 +106,7 @@ module Beaker
|
|
106
106
|
end
|
107
107
|
|
108
108
|
# Setup perf monitoring if needed
|
109
|
-
@perf = Beaker::Perf.new(@hosts, @options) if /
|
109
|
+
@perf = Beaker::Perf.new(@hosts, @options) if /aggressive|normal/.match?(@options[:collect_perf_data].to_s)
|
110
110
|
|
111
111
|
# pre acceptance phase
|
112
112
|
run_suite(:pre_suite, :fast)
|
@@ -138,7 +138,7 @@ module Beaker
|
|
138
138
|
end
|
139
139
|
|
140
140
|
# cleanup on error
|
141
|
-
if /
|
141
|
+
if /never|onpass/.match?(@options[:preserve_hosts].to_s)
|
142
142
|
@logger.notify "Cleanup: cleaning up after failed run"
|
143
143
|
@network_manager.cleanup if @network_manager
|
144
144
|
else
|
@@ -159,7 +159,7 @@ module Beaker
|
|
159
159
|
end
|
160
160
|
|
161
161
|
# cleanup on success
|
162
|
-
if /
|
162
|
+
if /never|onfail/.match?(@options[:preserve_hosts].to_s)
|
163
163
|
@logger.notify "Cleanup: cleaning up after successful run"
|
164
164
|
@network_manager.cleanup if @network_manager
|
165
165
|
else
|
data/lib/beaker/host/unix/pkg.rb
CHANGED
@@ -87,10 +87,10 @@ module Unix::Pkg
|
|
87
87
|
execute("zypper --non-interactive --gpg-auto-import-keys in #{name}", opts)
|
88
88
|
when /el-4/
|
89
89
|
@logger.debug("Package installation not supported on rhel4")
|
90
|
-
when /amazon|
|
90
|
+
when /amazon-2023|el-(8|9|1[0-9])|fedora/
|
91
91
|
name = "#{name}-#{version}" if version
|
92
92
|
execute("dnf -y #{cmdline_args} install #{name}", opts)
|
93
|
-
when /cisco|
|
93
|
+
when /cisco|centos|redhat|eos|el-[1-7]-/
|
94
94
|
name = "#{name}-#{version}" if version
|
95
95
|
execute("yum -y #{cmdline_args} install #{name}", opts)
|
96
96
|
when /ubuntu|debian|cumulus|huaweios/
|
@@ -172,9 +172,9 @@ module Unix::Pkg
|
|
172
172
|
execute("zypper --non-interactive rm #{name}", opts)
|
173
173
|
when /el-4/
|
174
174
|
@logger.debug("Package uninstallation not supported on rhel4")
|
175
|
-
when /amazon|
|
175
|
+
when /amazon-2023|el-(8|9|1[0-9])|fedora/
|
176
176
|
execute("dnf -y #{cmdline_args} remove #{name}", opts)
|
177
|
-
when /cisco|
|
177
|
+
when /cisco|centos|redhat|eos|el-[1-7]-/
|
178
178
|
execute("yum -y #{cmdline_args} remove #{name}", opts)
|
179
179
|
when /ubuntu|debian|cumulus|huaweios/
|
180
180
|
execute("apt-get purge #{cmdline_args} -y #{name}", opts)
|
data/lib/beaker/host.rb
CHANGED
@@ -489,11 +489,7 @@ module Beaker
|
|
489
489
|
# We enable achieve mode and compression
|
490
490
|
rsync_args << "-az"
|
491
491
|
|
492
|
-
user =
|
493
|
-
"root"
|
494
|
-
else
|
495
|
-
self['user']
|
496
|
-
end
|
492
|
+
user = self['user'] || 'root'
|
497
493
|
hostname_with_user = "#{user}@#{reachable_name}"
|
498
494
|
|
499
495
|
Rsync.host = hostname_with_user
|
data/lib/beaker/platform.rb
CHANGED
@@ -17,7 +17,8 @@ module Beaker
|
|
17
17
|
"jessie" => "8",
|
18
18
|
"wheezy" => "7",
|
19
19
|
"squeeze" => "6", },
|
20
|
-
:ubuntu => { "
|
20
|
+
:ubuntu => { "noble" => "2404",
|
21
|
+
"jammy" => "2204",
|
21
22
|
"focal" => "2004",
|
22
23
|
"eoan" => "1910",
|
23
24
|
"disco" => "1904",
|
@@ -117,9 +118,7 @@ module Beaker
|
|
117
118
|
# @example Platform.new('debian-7-xxx').with_version_codename == 'debian-wheezy-xxx'
|
118
119
|
# @return [String] the platform string with the platform version represented as a codename
|
119
120
|
def with_version_codename
|
120
|
-
|
121
|
-
version_array = [@variant, @codename, @arch] if @codename
|
122
|
-
return version_array.join('-')
|
121
|
+
[@variant, @codename || @version, @arch].join('-')
|
123
122
|
end
|
124
123
|
|
125
124
|
# Returns the platform string with the platform version as a number. If no conversion is necessary
|
@@ -1,10 +1,10 @@
|
|
1
1
|
module Beaker
|
2
2
|
module Shared
|
3
3
|
# Methods for managing Hosts.
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
# - selecting hosts by role (Symbol or String)
|
5
|
+
# - selecting hosts by name (String)
|
6
|
+
# - adding additional method definitions for selecting by role
|
7
|
+
# - executing blocks of code against selected sets of hosts
|
8
8
|
module HostManager
|
9
9
|
# Find hosts from a given array of hosts that all have the desired role.
|
10
10
|
# @param [Array<Host>] hosts The hosts to examine
|
@@ -104,10 +104,10 @@ module Beaker
|
|
104
104
|
# Try each method in turn until we succeed
|
105
105
|
methods = @ssh_connection_preference.dup
|
106
106
|
while (not @ssh) && (not methods.empty?)
|
107
|
-
if instance_variable_get("@#{methods[0]}").nil?
|
107
|
+
if instance_variable_get(:"@#{methods[0]}").nil?
|
108
108
|
@logger.warn "Skipping #{methods[0]} method to ssh to host as its value is not set. Refer to https://github.com/puppetlabs/beaker/tree/master/docs/how_to/ssh_connection_preference.md to remove this warning"
|
109
109
|
elsif SUPPORTED_CONNECTION_METHODS.include?(methods[0])
|
110
|
-
@ssh = connect_block(instance_variable_get("@#{methods[0]}"), @user, @ssh_opts, options)
|
110
|
+
@ssh = connect_block(instance_variable_get(:"@#{methods[0]}"), @user, @ssh_opts, options)
|
111
111
|
else
|
112
112
|
@logger.warn "Beaker does not support #{methods[0]} to SSH to host, trying next available method."
|
113
113
|
@ssh_connection_preference.delete(methods[0])
|
data/lib/beaker/version.rb
CHANGED
data/spec/beaker/cli_spec.rb
CHANGED
@@ -160,9 +160,9 @@ module Beaker
|
|
160
160
|
|
161
161
|
expect(cli).to receive(:run_suite).twice
|
162
162
|
expect { cli.execute! }.to raise_error
|
163
|
-
expect(cli.instance_variable_get(:@attribution)[:logger]).to
|
164
|
-
expect(cli.instance_variable_get(:@attribution)[:timestamp]).to
|
165
|
-
expect(cli.instance_variable_get(:@attribution)[:beaker_version]).to
|
163
|
+
expect(cli.instance_variable_get(:@attribution)[:logger]).to eq 'runtime'
|
164
|
+
expect(cli.instance_variable_get(:@attribution)[:timestamp]).to eq 'runtime'
|
165
|
+
expect(cli.instance_variable_get(:@attribution)[:beaker_version]).to eq 'runtime'
|
166
166
|
end
|
167
167
|
|
168
168
|
it 'continues testing after failed test if using slow fail_mode' do
|
@@ -362,10 +362,10 @@ module Beaker
|
|
362
362
|
|
363
363
|
preserved_file = cli.preserve_hosts_file
|
364
364
|
hosts_yaml = load_yaml_file(preserved_file)
|
365
|
-
expect(hosts_yaml['CONFIG'][:tests]).to
|
366
|
-
expect(hosts_yaml['CONFIG'][:pre_suite]).to
|
367
|
-
expect(hosts_yaml['CONFIG'][:post_suite]).to
|
368
|
-
expect(hosts_yaml['CONFIG'][:pre_cleanup]).to
|
365
|
+
expect(hosts_yaml['CONFIG'][:tests]).to eq []
|
366
|
+
expect(hosts_yaml['CONFIG'][:pre_suite]).to eq []
|
367
|
+
expect(hosts_yaml['CONFIG'][:post_suite]).to eq []
|
368
|
+
expect(hosts_yaml['CONFIG'][:pre_cleanup]).to eq []
|
369
369
|
end
|
370
370
|
end
|
371
371
|
|
@@ -541,7 +541,7 @@ module Beaker
|
|
541
541
|
command_correct = "p --log-level debug --hosts #{new_hosts_file} jam --jankies --flag-business"
|
542
542
|
|
543
543
|
answer = cli.build_hosts_preserved_reproducing_command(command_to_sub, new_hosts_file)
|
544
|
-
expect(answer).to
|
544
|
+
expect(answer).to start_with(command_correct)
|
545
545
|
end
|
546
546
|
|
547
547
|
it 'doesn\'t replace an entry if no --hosts key is found' do
|
@@ -549,7 +549,7 @@ module Beaker
|
|
549
549
|
command_correct = 'p --log-level debug johnnypantaloons7 --jankies --flag-business'
|
550
550
|
|
551
551
|
answer = cli.build_hosts_preserved_reproducing_command(command_to_sub, 'john/deer/plans.txt')
|
552
|
-
expect(answer).to
|
552
|
+
expect(answer).to start_with(command_correct)
|
553
553
|
end
|
554
554
|
|
555
555
|
it 'removes any old --provision flags' do
|
@@ -557,7 +557,7 @@ module Beaker
|
|
557
557
|
command_correct = 'jam --jankies --flag-business'
|
558
558
|
|
559
559
|
answer = cli.build_hosts_preserved_reproducing_command(command_to_sub, 'can/talk/to/pigs.yml')
|
560
|
-
expect(answer).to
|
560
|
+
expect(answer).to start_with(command_correct)
|
561
561
|
end
|
562
562
|
|
563
563
|
it 'removes any old --no-provision flags' do
|
@@ -565,7 +565,7 @@ module Beaker
|
|
565
565
|
command_correct = 'jam --jankoos --flag-businesses'
|
566
566
|
|
567
567
|
answer = cli.build_hosts_preserved_reproducing_command(command_to_sub, 'can/talk/to/bears.yml')
|
568
|
-
expect(answer).to
|
568
|
+
expect(answer).to start_with(command_correct)
|
569
569
|
end
|
570
570
|
end
|
571
571
|
end
|
data/spec/beaker/command_spec.rb
CHANGED
@@ -19,12 +19,12 @@ module Beaker
|
|
19
19
|
@args = %w[to the baz]
|
20
20
|
@options = { :foo => 'bar' }
|
21
21
|
|
22
|
-
expect(cmd.options).to
|
23
|
-
expect(cmd.args).to
|
24
|
-
expect(cmd.command).to
|
22
|
+
expect(cmd.options).to eq @options
|
23
|
+
expect(cmd.args).to eq @args
|
24
|
+
expect(cmd.command).to eq @command
|
25
25
|
|
26
|
-
expect(cmd.args_string).to
|
27
|
-
expect(cmd.options_string).to
|
26
|
+
expect(cmd.args_string).to eq 'to the baz'
|
27
|
+
expect(cmd.options_string).to eq '--foo=bar'
|
28
28
|
end
|
29
29
|
|
30
30
|
describe '#:prepend_cmds' do
|
@@ -35,7 +35,7 @@ module Beaker
|
|
35
35
|
allow(host).to receive(:prepend_commands).and_return('aloha!')
|
36
36
|
allow(host).to receive(:append_commands).and_return('')
|
37
37
|
|
38
|
-
expect(cmd.cmd_line(host)).to
|
38
|
+
expect(cmd.cmd_line(host)).to eq "aloha! /usr/bin/blah --foo=bar to the baz"
|
39
39
|
end
|
40
40
|
|
41
41
|
it 'can handle no prepend_cmds' do
|
@@ -45,7 +45,7 @@ module Beaker
|
|
45
45
|
allow(host).to receive(:prepend_commands).and_return('')
|
46
46
|
allow(host).to receive(:append_commands).and_return('')
|
47
47
|
|
48
|
-
expect(cmd.cmd_line(host)).to
|
48
|
+
expect(cmd.cmd_line(host)).to eq "/usr/bin/blah --foo=bar to the baz"
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
@@ -57,7 +57,7 @@ module Beaker
|
|
57
57
|
allow(host).to receive(:prepend_commands).and_return('aloha!')
|
58
58
|
allow(host).to receive(:append_commands).and_return('moo cow')
|
59
59
|
|
60
|
-
expect(cmd.cmd_line(host)).to
|
60
|
+
expect(cmd.cmd_line(host)).to eq "aloha! /usr/bin/blah --foo=bar to the baz moo cow"
|
61
61
|
end
|
62
62
|
|
63
63
|
it 'can handle no append_cmds' do
|
@@ -67,7 +67,7 @@ module Beaker
|
|
67
67
|
allow(host).to receive(:prepend_commands).and_return('')
|
68
68
|
allow(host).to receive(:append_commands).and_return('')
|
69
69
|
|
70
|
-
expect(cmd.cmd_line(host)).to
|
70
|
+
expect(cmd.cmd_line(host)).to eq "/usr/bin/blah --foo=bar to the baz"
|
71
71
|
end
|
72
72
|
end
|
73
73
|
|
@@ -85,7 +85,7 @@ module Beaker
|
|
85
85
|
describe '#args_string' do
|
86
86
|
it 'joins an array' do
|
87
87
|
subject.args = ['my/command and', nil, 'its args and opts']
|
88
|
-
expect(subject.args_string).to
|
88
|
+
expect(subject.args_string).to eq 'my/command and its args and opts'
|
89
89
|
end
|
90
90
|
end
|
91
91
|
end
|
@@ -87,7 +87,7 @@ describe ClassMixedWithDSLHelpers do
|
|
87
87
|
# This will only get hit if forking processes is supported and at least 2 items are being submitted to run in parallel
|
88
88
|
expect(InParallel::InParallelExecutor).to receive(:_execute_in_parallel).with(any_args).and_call_original.exactly(5).times
|
89
89
|
results = subject.on(hosts, command, { :run_in_parallel => true })
|
90
|
-
expect(results).to
|
90
|
+
expect(results).to eq expected
|
91
91
|
end
|
92
92
|
|
93
93
|
it 'delegates to itself for each host passed' do
|
@@ -99,7 +99,7 @@ describe ClassMixedWithDSLHelpers do
|
|
99
99
|
end
|
100
100
|
|
101
101
|
results = subject.on(hosts, command)
|
102
|
-
expect(results).to
|
102
|
+
expect(results).to eq expected
|
103
103
|
end
|
104
104
|
|
105
105
|
context 'upon command completion' do
|
@@ -110,19 +110,19 @@ describe ClassMixedWithDSLHelpers do
|
|
110
110
|
end
|
111
111
|
|
112
112
|
it 'returns the result of the action' do
|
113
|
-
expect(@res).to
|
113
|
+
expect(@res).to eq result
|
114
114
|
end
|
115
115
|
|
116
116
|
it 'provides access to stdout' do
|
117
|
-
expect(@res.stdout).to
|
117
|
+
expect(@res.stdout).to eq 'stdout'
|
118
118
|
end
|
119
119
|
|
120
120
|
it 'provides access to stderr' do
|
121
|
-
expect(@res.stderr).to
|
121
|
+
expect(@res.stderr).to eq 'stderr'
|
122
122
|
end
|
123
123
|
|
124
124
|
it 'provides access to exit_code' do
|
125
|
-
expect(@res.exit_code).to
|
125
|
+
expect(@res.exit_code).to eq 0
|
126
126
|
end
|
127
127
|
end
|
128
128
|
|
@@ -141,19 +141,19 @@ describe ClassMixedWithDSLHelpers do
|
|
141
141
|
|
142
142
|
it 'provides access to stdout' do
|
143
143
|
subject.on host, command do |containing_class|
|
144
|
-
expect(containing_class.stdout).to
|
144
|
+
expect(containing_class.stdout).to eq 'stdout'
|
145
145
|
end
|
146
146
|
end
|
147
147
|
|
148
148
|
it 'provides access to stderr' do
|
149
149
|
subject.on host, command do |containing_class|
|
150
|
-
expect(containing_class.stderr).to
|
150
|
+
expect(containing_class.stderr).to eq 'stderr'
|
151
151
|
end
|
152
152
|
end
|
153
153
|
|
154
154
|
it 'provides access to exit_code' do
|
155
155
|
subject.on host, command do |containing_class|
|
156
|
-
expect(containing_class.exit_code).to
|
156
|
+
expect(containing_class.exit_code).to eq 0
|
157
157
|
end
|
158
158
|
end
|
159
159
|
end
|
@@ -203,7 +203,7 @@ describe ClassMixedWithDSLHelpers do
|
|
203
203
|
expect { subject.retry_on(host, command, opts) }.to raise_error(RuntimeError)
|
204
204
|
end
|
205
205
|
|
206
|
-
it '
|
206
|
+
it 'returns success correctly if it succeeds the first time' do
|
207
207
|
result.stdout = 'stdout'
|
208
208
|
result.stderr = 'stderr'
|
209
209
|
result.exit_code = 0
|
@@ -220,7 +220,7 @@ describe ClassMixedWithDSLHelpers do
|
|
220
220
|
expect(result_given.exit_code).to be === 0
|
221
221
|
end
|
222
222
|
|
223
|
-
it '
|
223
|
+
it 'returns success correctly if it succeeds after failing a few times' do
|
224
224
|
result.stdout = 'stdout'
|
225
225
|
result.stderr = 'stderr'
|
226
226
|
|