beaker 5.5.0 → 5.7.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/.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
|
|