beaker 5.2.0 → 5.3.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.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/release.yml +1 -1
  3. data/.github/workflows/test.yml +1 -1
  4. data/.rubocop.yml +1 -2
  5. data/.rubocop_todo.yml +54 -2
  6. data/CHANGELOG.md +12 -0
  7. data/Gemfile +1 -0
  8. data/acceptance/tests/base/dsl/helpers/configuration_test.rb +1 -0
  9. data/acceptance/tests/base/dsl/helpers/hocon_helpers_test.rb +5 -2
  10. data/acceptance/tests/base/dsl/helpers/host_helpers/archive_file_from_test.rb +5 -1
  11. data/acceptance/tests/base/dsl/helpers/host_helpers/backup_the_file_test.rb +3 -0
  12. data/acceptance/tests/base/dsl/helpers/host_helpers/check_for_package_test.rb +6 -0
  13. data/acceptance/tests/base/dsl/helpers/host_helpers/create_remote_file_test.rb +6 -0
  14. data/acceptance/tests/base/dsl/helpers/host_helpers/curl_on_test.rb +2 -0
  15. data/acceptance/tests/base/dsl/helpers/host_helpers/echo_on_test.rb +3 -1
  16. data/acceptance/tests/base/dsl/helpers/host_helpers/on_test.rb +10 -1
  17. data/acceptance/tests/base/dsl/helpers/host_helpers/retry_on_test.rb +1 -0
  18. data/acceptance/tests/base/dsl/helpers/host_helpers/rsync_to_test.rb +2 -0
  19. data/acceptance/tests/base/dsl/helpers/host_helpers/run_cron_on_test.rb +13 -0
  20. data/acceptance/tests/base/dsl/helpers/host_helpers/run_script_on_test.rb +2 -0
  21. data/acceptance/tests/base/dsl/helpers/host_helpers/run_script_test.rb +2 -0
  22. data/acceptance/tests/base/dsl/helpers/host_helpers/scp_from_test.rb +2 -0
  23. data/acceptance/tests/base/dsl/helpers/host_helpers/scp_to_test.rb +2 -0
  24. data/acceptance/tests/base/dsl/helpers/host_helpers/shell_test.rb +5 -0
  25. data/acceptance/tests/base/dsl/helpers/host_helpers/upgrade_package_test.rb +2 -0
  26. data/acceptance/tests/base/host/file_test.rb +7 -0
  27. data/acceptance/tests/base/host/host_test.rb +27 -4
  28. data/acceptance/tests/base/host_prebuilt_steps/ssh_environment_test.rb +3 -3
  29. data/acceptance/tests/hypervisor/communication_test.rb +1 -1
  30. data/beaker.gemspec +7 -4
  31. data/lib/beaker/version.rb +1 -1
  32. metadata +47 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d16043faca3a48ef9dd5a7171bf0241dd30fd801029eba8e881fe9d3d8afbef1
4
- data.tar.gz: 64bec8b91441d824ad87a112914a5f41b5fe2b48131b9f6d99599b201279b4a3
3
+ metadata.gz: b4829c1a428f59340c095f78aa87331fb6a7df76854cdb4d95ed62553af19112
4
+ data.tar.gz: 0e08786ce7520319ea25c94ece1fb8f3a2a56e507035fd4ced4edeabfa1153ac
5
5
  SHA512:
6
- metadata.gz: 17f0baf5a669e5ffa2e9f4214dbeb84f0e5fbf4ff80e048243215006aa8e5fc91be5df24e1714f71962a7a1d2e3d4f83c74c987f98a9a8ceff2b9397762b5167
7
- data.tar.gz: 2826c21940af588185545f7a4f987600a789a9c646b9fe0d31d9e6d6f4f5eae0573d51591de0943d0dc9077cb0e0f3114291881fc10c6dcd3b54af24ec2425e2
6
+ metadata.gz: 7ecddce8f3ffcc7fba3dceb5061667d48332808a76d88aae73b7d681e1d1f4478d99bdd464aa9ea3a6568425630a105618eb643ee6b9d9710e4e90adabb8e529
7
+ data.tar.gz: dd41043f67f6d951beb5de7739e7e9363a221ff2a09d9448edca2bdb9e054ad19200e639da3714d1c364e2fcc5c7ee6b1d17f572b5bdd7c458373301c23acf3a
@@ -18,7 +18,7 @@ jobs:
18
18
  env:
19
19
  BUNDLE_WITHOUT: release:development:rubocop
20
20
  - name: Build gem
21
- run: gem build *.gemspec
21
+ run: gem build --strict --verbose *.gemspec
22
22
  - name: Publish gem to rubygems.org
23
23
  run: gem push *.gem
24
24
  env:
@@ -45,7 +45,7 @@ jobs:
45
45
  ruby-version: ${{ matrix.ruby }}
46
46
  bundler-cache: true
47
47
  - name: Build gem
48
- run: gem build *.gemspec
48
+ run: gem build --strict --verbose *.gemspec
49
49
  - name: Run unit tests
50
50
  run: bundle exec rake spec
51
51
  - name: Run acceptance tests
data/.rubocop.yml CHANGED
@@ -1,6 +1,5 @@
1
1
  ---
2
- inherit_from:
3
- - .rubocop_todo.yml
2
+ inherit_from: .rubocop_todo.yml
4
3
 
5
4
  inherit_gem:
6
5
  voxpupuli-rubocop: rubocop.yml
data/.rubocop_todo.yml CHANGED
@@ -1,11 +1,12 @@
1
1
  # This configuration was generated by
2
- # `rubocop --auto-gen-config --no-offense-counts --no-auto-gen-timestamp`
3
- # using RuboCop version 1.50.1.
2
+ # `rubocop --auto-gen-config`
3
+ # on 2023-05-30 09:17:22 UTC using RuboCop version 1.50.2.
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
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
+ # Offense count: 15
9
10
  # Configuration parameters: AllowedMethods.
10
11
  # AllowedMethods: enums
11
12
  Lint/ConstantDefinitionInBlock:
@@ -26,6 +27,7 @@ Lint/ConstantDefinitionInBlock:
26
27
  - 'spec/beaker/host/windows/pkg_spec.rb'
27
28
  - 'spec/beaker/options/hosts_file_parser_spec.rb'
28
29
 
30
+ # Offense count: 17
29
31
  # Configuration parameters: AllowComments, AllowEmptyLambdas.
30
32
  Lint/EmptyBlock:
31
33
  Exclude:
@@ -35,16 +37,19 @@ Lint/EmptyBlock:
35
37
  - 'spec/beaker/logger_junit_spec.rb'
36
38
  - 'spec/beaker/logger_spec.rb'
37
39
 
40
+ # Offense count: 1
38
41
  # This cop supports unsafe autocorrection (--autocorrect-all).
39
42
  Lint/NonAtomicFileOperation:
40
43
  Exclude:
41
44
  - 'acceptance/tests/base/dsl/helpers/host_helpers/archive_file_from_test.rb'
42
45
 
46
+ # Offense count: 2
43
47
  Lint/RescueException:
44
48
  Exclude:
45
49
  - 'lib/beaker/dsl/structure.rb'
46
50
  - 'lib/beaker/test_suite_result.rb'
47
51
 
52
+ # Offense count: 27
48
53
  Lint/ShadowingOuterLocalVariable:
49
54
  Exclude:
50
55
  - 'lib/beaker/dsl/helpers/host_helpers.rb'
@@ -55,6 +60,7 @@ Lint/ShadowingOuterLocalVariable:
55
60
  - 'lib/beaker/host_prebuilt_steps.rb'
56
61
  - 'lib/beaker/perf.rb'
57
62
 
63
+ # Offense count: 12
58
64
  Lint/UselessAssignment:
59
65
  Exclude:
60
66
  - 'acceptance/tests/base/dsl/helpers/host_helpers/curl_with_retries_test.rb'
@@ -62,6 +68,29 @@ Lint/UselessAssignment:
62
68
  - 'lib/beaker/dsl/helpers/host_helpers.rb'
63
69
  - 'lib/beaker/logger_junit.rb'
64
70
 
71
+ # Offense count: 5
72
+ # This cop supports unsafe autocorrection (--autocorrect-all).
73
+ Minitest/AssertTruthy:
74
+ Exclude:
75
+ - 'acceptance/tests/base/dsl/helpers/host_helpers/archive_file_from_test.rb'
76
+ - 'acceptance/tests/base/host/host_test.rb'
77
+ - 'acceptance/tests/hypervisor/communication_test.rb'
78
+
79
+ # Offense count: 2
80
+ # Configuration parameters: Severity.
81
+ Minitest/AssertWithExpectedArgument:
82
+ Exclude:
83
+ - 'acceptance/tests/base/dsl/helpers/hocon_helpers_test.rb'
84
+
85
+ # Offense count: 9
86
+ # This cop supports unsafe autocorrection (--autocorrect-all).
87
+ Minitest/RefuteFalse:
88
+ Exclude:
89
+ - 'acceptance/tests/base/dsl/helpers/host_helpers/archive_file_from_test.rb'
90
+ - 'acceptance/tests/base/dsl/helpers/host_helpers/check_for_package_test.rb'
91
+ - 'acceptance/tests/base/host/host_test.rb'
92
+
93
+ # Offense count: 20
65
94
  # Configuration parameters: ForbiddenDelimiters.
66
95
  # ForbiddenDelimiters: (?i-mx:(^|\s)(EO[A-Z]{1}|END)(\s|$))
67
96
  Naming/HeredocDelimiterNaming:
@@ -77,6 +106,7 @@ Naming/HeredocDelimiterNaming:
77
106
  - 'spec/beaker/host/windows_spec.rb'
78
107
  - 'spec/beaker/test_case_spec.rb'
79
108
 
109
+ # Offense count: 2
80
110
  # Configuration parameters: EnforcedStyleForLeadingUnderscores.
81
111
  # SupportedStylesForLeadingUnderscores: disallowed, required, optional
82
112
  Naming/MemoizedInstanceVariableName:
@@ -84,6 +114,7 @@ Naming/MemoizedInstanceVariableName:
84
114
  - 'lib/beaker/host.rb'
85
115
  - 'lib/beaker/options/presets.rb'
86
116
 
117
+ # Offense count: 4
87
118
  # Configuration parameters: MinSize.
88
119
  Performance/CollectionLiteralInLoop:
89
120
  Exclude:
@@ -91,11 +122,13 @@ Performance/CollectionLiteralInLoop:
91
122
  - 'lib/beaker/dsl/structure.rb'
92
123
  - 'lib/beaker/test_suite_result.rb'
93
124
 
125
+ # Offense count: 17
94
126
  RSpec/AnyInstance:
95
127
  Exclude:
96
128
  - 'spec/beaker/host/windows/file_spec.rb'
97
129
  - 'spec/beaker/subcommand_spec.rb'
98
130
 
131
+ # Offense count: 12
99
132
  # This cop supports unsafe autocorrection (--autocorrect-all).
100
133
  RSpec/BeEq:
101
134
  Exclude:
@@ -104,15 +137,18 @@ RSpec/BeEq:
104
137
  - 'spec/beaker/host/windows/exec_spec.rb'
105
138
  - 'spec/beaker/host_spec.rb'
106
139
 
140
+ # Offense count: 121
107
141
  # Configuration parameters: Prefixes, AllowedPatterns.
108
142
  # Prefixes: when, with, without
109
143
  RSpec/ContextWording:
110
144
  Enabled: false
111
145
 
146
+ # Offense count: 239
112
147
  # Configuration parameters: CountAsOne.
113
148
  RSpec/ExampleLength:
114
149
  Max: 44
115
150
 
151
+ # Offense count: 27
116
152
  RSpec/ExpectInHook:
117
153
  Exclude:
118
154
  - 'spec/beaker/cli_spec.rb'
@@ -124,6 +160,7 @@ RSpec/ExpectInHook:
124
160
  - 'spec/beaker/options/parser_spec.rb'
125
161
  - 'spec/beaker/ssh_connection_spec.rb'
126
162
 
163
+ # Offense count: 22
127
164
  # Configuration parameters: AssignmentOnly.
128
165
  RSpec/InstanceVariable:
129
166
  Exclude:
@@ -133,10 +170,12 @@ RSpec/InstanceVariable:
133
170
  - 'spec/beaker/dsl/test_tagging_spec.rb'
134
171
  - 'spec/beaker/host_prebuilt_steps_spec.rb'
135
172
 
173
+ # Offense count: 3
136
174
  RSpec/IteratedExpectation:
137
175
  Exclude:
138
176
  - 'spec/beaker/dsl/helpers/host_helpers_spec.rb'
139
177
 
178
+ # Offense count: 12
140
179
  RSpec/LeakyConstantDeclaration:
141
180
  Exclude:
142
181
  - 'spec/beaker/host/freebsd/exec_spec.rb'
@@ -152,19 +191,23 @@ RSpec/LeakyConstantDeclaration:
152
191
  - 'spec/beaker/host/windows/pkg_spec.rb'
153
192
  - 'spec/beaker/options/hosts_file_parser_spec.rb'
154
193
 
194
+ # Offense count: 1
155
195
  RSpec/MultipleDescribes:
156
196
  Exclude:
157
197
  - 'spec/beaker/dsl/test_tagging_spec.rb'
158
198
 
199
+ # Offense count: 134
159
200
  # Configuration parameters: AllowSubject.
160
201
  RSpec/MultipleMemoizedHelpers:
161
202
  Max: 17
162
203
 
204
+ # Offense count: 500
163
205
  # Configuration parameters: EnforcedStyle, IgnoreSharedExamples.
164
206
  # SupportedStyles: always, named_only
165
207
  RSpec/NamedSubject:
166
208
  Enabled: false
167
209
 
210
+ # Offense count: 42
168
211
  # Configuration parameters: AllowedPatterns.
169
212
  # AllowedPatterns: ^expect_, ^assert_
170
213
  RSpec/NoExpectationExample:
@@ -175,17 +218,20 @@ RSpec/NoExpectationExample:
175
218
  - 'spec/beaker/logger_spec.rb'
176
219
  - 'spec/beaker/options/subcommand_options_parser_spec.rb'
177
220
 
221
+ # Offense count: 7
178
222
  RSpec/RepeatedDescription:
179
223
  Exclude:
180
224
  - 'spec/beaker/cli_spec.rb'
181
225
  - 'spec/beaker/host/unix/exec_spec.rb'
182
226
  - 'spec/beaker/host/unix/pkg_spec.rb'
183
227
 
228
+ # Offense count: 4
184
229
  RSpec/RepeatedExample:
185
230
  Exclude:
186
231
  - 'spec/beaker/dsl/roles_spec.rb'
187
232
  - 'spec/beaker/logger_spec.rb'
188
233
 
234
+ # Offense count: 178
189
235
  RSpec/SubjectStub:
190
236
  Exclude:
191
237
  - 'spec/beaker/dsl/assertions_spec.rb'
@@ -202,6 +248,7 @@ RSpec/SubjectStub:
202
248
  - 'spec/beaker/host/windows/user_spec.rb'
203
249
  - 'spec/beaker/host_prebuilt_steps_spec.rb'
204
250
 
251
+ # Offense count: 12
205
252
  RSpec/UnspecifiedException:
206
253
  Exclude:
207
254
  - 'spec/beaker/cli_spec.rb'
@@ -209,15 +256,18 @@ RSpec/UnspecifiedException:
209
256
  - 'spec/beaker/host_spec.rb'
210
257
  - 'spec/beaker/test_suite_spec.rb'
211
258
 
259
+ # Offense count: 86
212
260
  # Configuration parameters: IgnoreNameless, IgnoreSymbolicNames.
213
261
  RSpec/VerifiedDoubles:
214
262
  Enabled: false
215
263
 
264
+ # Offense count: 2
216
265
  # This cop supports safe autocorrection (--autocorrect).
217
266
  Rake/Desc:
218
267
  Exclude:
219
268
  - 'Rakefile'
220
269
 
270
+ # Offense count: 7
221
271
  Security/Eval:
222
272
  Exclude:
223
273
  - 'Rakefile'
@@ -228,10 +278,12 @@ Security/Eval:
228
278
  - 'lib/beaker/options/options_file_parser.rb'
229
279
  - 'lib/beaker/test_case.rb'
230
280
 
281
+ # Offense count: 1
231
282
  Security/Open:
232
283
  Exclude:
233
284
  - 'lib/beaker/dsl/helpers/web_helpers.rb'
234
285
 
286
+ # Offense count: 104
235
287
  # This cop supports safe autocorrection (--autocorrect).
236
288
  # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns.
237
289
  # URISchemes: http, https
data/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## [5.3.0] (https://github.com/voxpupuli/beaker/tree/5.3.0) (2023-06-06)
4
+
5
+ **Implemented enhancements:**
6
+
7
+ - Add bcrypt_pbkdf to fix ed25519 ssh keys support [\#1810](https://github.com/voxpupuli/beaker/pull/1810) ([jay7x](https://github.com/jay7x))
8
+
9
+ **Merged changes:**
10
+
11
+ - Build gems with verbosity and strictness [\#1811](https://github.com/voxpupuli/beaker/pull/1811) ([bastelfreak](https://github.com/bastelfreak))
12
+ - rubocop: autofix [\#1816](https://github.com/voxpupuli/beaker/pull/1816) ([bastelfreak](https://github.com/bastelfreak))
13
+ - GCG: Add missing faraday dependency [\#1815](https://github.com/voxpupuli/beaker/pull/1815) ([bastelfreak](https://github.com/bastelfreak))
14
+
3
15
  ## [5.2.0](https://github.com/voxpupuli/beaker/tree/5.2.0) (2023-04-28)
4
16
 
5
17
  **Implemented enhancements:**
data/Gemfile CHANGED
@@ -26,6 +26,7 @@ if ENV['BEAKER_HYPERVISOR']
26
26
  end
27
27
 
28
28
  group :release do
29
+ gem 'faraday-retry', require: false
29
30
  gem 'github_changelog_generator', require: false
30
31
  end
31
32
 
@@ -8,6 +8,7 @@ test_name "dsl::helpers::host_helpers test configuration validation" do
8
8
  "dsl::helpers::host_helpers acceptance tests require at least two hosts"
9
9
 
10
10
  agents = select_hosts(:roles => "agent")
11
+
11
12
  assert (agents.size > 1),
12
13
  "dsl::helpers::host_helpers acceptance tests require at least two hosts with the :agent role"
13
14
 
@@ -15,6 +15,7 @@ test_name 'Hocon Helpers Test' do
15
15
 
16
16
  step '#hocon_file_read : reads doc' do
17
17
  doc = hocon_file_read_on(hosts[0], hocon_filename)
18
+
18
19
  assert(doc.has_value?('setting2'))
19
20
  end
20
21
 
@@ -34,7 +35,7 @@ test_name 'Hocon Helpers Test' do
34
35
  end
35
36
  fail('execution should not continue in failure mode')
36
37
  rescue ArgumentError => e
37
- assert(e.to_s.include?('requires a filename'))
38
+ assert_includes(e.to_s, 'requires a filename')
38
39
  else
39
40
  fail('No exception raised in failure mode')
40
41
  end
@@ -53,7 +54,7 @@ test_name 'Hocon Helpers Test' do
53
54
  hocon_file_edit_on(hosts, hocon_filename)
54
55
  fail('execution should not continue in failure mode')
55
56
  rescue ArgumentError => e
56
- assert(e.to_s.include?('No block was provided'))
57
+ assert_includes(e.to_s, 'No block was provided')
57
58
  else
58
59
  fail('No exception raised in failure mode')
59
60
  end
@@ -71,6 +72,7 @@ test_name 'Hocon Helpers Test' do
71
72
  step '#hocon_file_edit_on : independently read value to verify save' do
72
73
  hocon_file_edit_on(hosts, hocon_filename) do |_host, doc|
73
74
  msg_fail = 'Should have saved "a.b" value inserted in previous step'
75
+
74
76
  assert(doc.has_value?('a.b'), msg_fail)
75
77
  end
76
78
  end
@@ -86,6 +88,7 @@ test_name 'Hocon Helpers Test' do
86
88
  step '#hocon_file_edit_in_place_on : verify save' do
87
89
  hocon_file_edit_on(hosts, hocon_filename) do |_host, doc|
88
90
  msg_fail = 'Should have saved "c.d" value inserted in previous step'
91
+
89
92
  assert(doc.has_value?('c.d'), msg_fail)
90
93
  end
91
94
  end
@@ -15,6 +15,7 @@ test_name "dsl::helpers::host_helpers #archive_file_from" do
15
15
  assert_equal(false, Dir.exist?('archive'))
16
16
  assert_equal(false, Dir.exist?('archive/sut-files'))
17
17
  archive_file_from(default, filepath)
18
+
18
19
  assert_equal(true, Dir.exist?('archive/sut-files'))
19
20
  end
20
21
 
@@ -32,17 +33,20 @@ test_name "dsl::helpers::host_helpers #archive_file_from" do
32
33
  # Create a remote file to archive
33
34
  filepath = default.tmpfile('archive-file-test')
34
35
  create_remote_file(default, filepath, 'number of the beast')
36
+
35
37
  assert_equal(false, Dir.exist?(filepath))
36
38
 
37
39
  # Test that the file is copied locally to <archiveroot>/<hostname>/<filepath>
38
40
  Dir.mktmpdir do |tmpdir|
39
41
  tar_path = File.join(tmpdir, default, filepath + '.tgz')
40
42
  archive_file_from(default, filepath, {}, tmpdir, tar_path)
41
- assert(File.exist?(tar_path))
43
+
44
+ assert_path_exists(tar_path)
42
45
  expected_path = File.join(tmpdir, default)
43
46
 
44
47
  tgz = Zlib::GzipReader.new(File.open(tar_path, 'rb'))
45
48
  Minitar.unpack(tgz, expected_path)
49
+
46
50
  assert_equal('number of the beast', File.read(expected_path + '/' + filepath).strip)
47
51
  end
48
52
  end
@@ -6,6 +6,7 @@ test_name "dsl::helpers::host_helpers #backup_the_file" do
6
6
  remote_source = default.tmpdir
7
7
  remote_destination = default.tmpdir
8
8
  result = backup_the_file default, remote_source, remote_destination
9
+
9
10
  assert_nil result
10
11
  end
11
12
 
@@ -29,6 +30,7 @@ test_name "dsl::helpers::host_helpers #backup_the_file" do
29
30
 
30
31
  assert_equal remote_destination_filename, result
31
32
  remote_contents = on(default, "cat #{remote_destination_filename}").stdout
33
+
32
34
  assert_equal contents, remote_contents
33
35
  end
34
36
 
@@ -43,6 +45,7 @@ test_name "dsl::helpers::host_helpers #backup_the_file" do
43
45
 
44
46
  assert_equal remote_destination_filename, result
45
47
  remote_contents = on(default, "cat #{remote_destination_filename}").stdout
48
+
46
49
  assert_equal contents, remote_contents
47
50
  end
48
51
 
@@ -25,11 +25,13 @@ test_name "dsl::helpers::host_helpers #check_for_package" do
25
25
 
26
26
  step "#check_for_package will return false if the specified package is not installed on the remote host" do
27
27
  result = check_for_package default, "non-existent-package-name"
28
+
28
29
  assert !result
29
30
  end
30
31
 
31
32
  step "#check_for_package will return true if the specified package is installed on the remote host" do
32
33
  result = check_for_package default, known_installed_package
34
+
33
35
  assert result
34
36
  end
35
37
 
@@ -43,11 +45,13 @@ test_name "dsl::helpers::host_helpers #check_for_package" do
43
45
  confine_block :to, :platform => /solaris/ do
44
46
  step "#check_for_package will return false if the specified package is not installed on the remote host" do
45
47
  result = check_for_package default, "non-existent-package-name"
48
+
46
49
  assert !result
47
50
  end
48
51
 
49
52
  step "#check_for_package will return true if the specified package is installed on the remote host" do
50
53
  result = check_for_package default, known_installed_package
54
+
51
55
  assert result
52
56
  end
53
57
 
@@ -69,12 +73,14 @@ test_name "dsl::helpers::host_helpers #check_for_package" do
69
73
  confine_block :except, :platform => /windows|solaris|osx/ do
70
74
  step "#check_for_package will return false if the specified package is not installed on the remote host" do
71
75
  result = check_for_package default, "non-existent-package-name"
76
+
72
77
  assert !result
73
78
  end
74
79
 
75
80
  step "#check_for_package will return true if the specified package is installed on the remote host" do
76
81
  install_package default, known_installed_package
77
82
  result = check_for_package default, known_installed_package
83
+
78
84
  assert result
79
85
  end
80
86
 
@@ -43,6 +43,7 @@ test_name "dsl::helpers::host_helpers #create_remote_file" do
43
43
  create_remote_file_with_backups default, remote_filename, contents
44
44
 
45
45
  remote_contents = on(default, "cat #{remote_filename}").stdout
46
+
46
47
  assert_equal contents, remote_contents
47
48
  end
48
49
 
@@ -54,6 +55,7 @@ test_name "dsl::helpers::host_helpers #create_remote_file" do
54
55
  create_remote_file_with_backups default, remote_filename, contents, { :protocol => "scp" }
55
56
 
56
57
  remote_contents = on(default, "cat #{remote_filename}").stdout
58
+
57
59
  assert_equal contents, remote_contents
58
60
  end
59
61
 
@@ -72,6 +74,7 @@ test_name "dsl::helpers::host_helpers #create_remote_file" do
72
74
 
73
75
  hosts.each do |host|
74
76
  remote_contents = on(host, "cat #{remote_filename}").stdout
77
+
75
78
  assert_equal contents, remote_contents
76
79
  end
77
80
  end
@@ -91,6 +94,7 @@ test_name "dsl::helpers::host_helpers #create_remote_file" do
91
94
 
92
95
  hosts.each do |host|
93
96
  remote_contents = on(host, "cat #{remote_filename}").stdout
97
+
94
98
  assert_equal contents, remote_contents
95
99
  end
96
100
  end
@@ -144,6 +148,7 @@ test_name "dsl::helpers::host_helpers #create_remote_file" do
144
148
  "contents" => contents,
145
149
  "result" => result) do
146
150
  remote_contents = on(default, "cat #{remote_filename}").stdout
151
+
147
152
  assert_equal contents, remote_contents
148
153
  end
149
154
  end
@@ -171,6 +176,7 @@ test_name "dsl::helpers::host_helpers #create_remote_file" do
171
176
  "contents" => contents,
172
177
  "result" => result) do
173
178
  remote_contents = on(host, "cat #{remote_filename}").stdout
179
+
174
180
  assert_equal contents, remote_contents
175
181
  end
176
182
  end
@@ -25,6 +25,7 @@ test_name "dsl::helpers::host_helpers #curl_on" do
25
25
 
26
26
  assert_equal 0, result.exit_code
27
27
  remote_contents = on(default, "cat #{remote_targetfilename}").stdout
28
+
28
29
  assert_equal contents, remote_contents
29
30
  end
30
31
 
@@ -42,6 +43,7 @@ test_name "dsl::helpers::host_helpers #curl_on" do
42
43
 
43
44
  hosts.each do |host|
44
45
  remote_contents = on(host, "cat #{remote_targetfilename}").stdout
46
+
45
47
  assert_equal contents, remote_contents
46
48
  end
47
49
  end
@@ -3,11 +3,13 @@ require "helpers/test_helper"
3
3
  test_name "dsl::helpers::host_helpers #echo_on" do
4
4
  step "#echo_on echoes the supplied string on the remote host" do
5
5
  output = echo_on(default, "contents")
6
- assert_equal output, "contents"
6
+
7
+ assert_equal("contents", output)
7
8
  end
8
9
 
9
10
  step "#echo_on echoes the supplied string on all hosts when given a hosts array" do
10
11
  results = echo_on(hosts, "contents")
12
+
11
13
  assert_equal ["contents"] * hosts.size, results
12
14
  end
13
15
  end
@@ -9,24 +9,29 @@ test_name "dsl::helpers::host_helpers #on" do
9
9
 
10
10
  step "#on makes command output available via `.stdout` on success" do
11
11
  output = on(default, %{echo "echo via on"}).stdout
12
+
12
13
  assert_equal "echo via on\n", output
13
14
  end
14
15
 
15
16
  step "#on makes command error output available via `.stderr` on success" do
16
17
  output = on(default, "/bin/nonexistent-command", :acceptable_exit_codes => [0, 127]).stderr
18
+
17
19
  assert_match(/No such file/, output)
18
20
  end
19
21
 
20
22
  step "#on makes exit status available via `.exit_code`" do
21
23
  status = on(default, %{echo "echo via on"}).exit_code
24
+
22
25
  assert_equal 0, status
23
26
  end
24
27
 
25
28
  step "#on with :acceptable_exit_codes will not fail for named exit codes" do
26
29
  result = on default, "/bin/nonexistent-command", :acceptable_exit_codes => [0, 127]
27
30
  output = result.stderr
31
+
28
32
  assert_match(/No such file/, output)
29
33
  status = result.exit_code
34
+
30
35
  assert_equal 127, status
31
36
  end
32
37
 
@@ -59,6 +64,7 @@ test_name "dsl::helpers::host_helpers #on" do
59
64
 
60
65
  # and that we have |hosts| distinct outputs
61
66
  unique_outputs = results.map(&:output).uniq
67
+
62
68
  assert_equal hosts.size, unique_outputs.size
63
69
  end
64
70
 
@@ -78,6 +84,7 @@ test_name "dsl::helpers::host_helpers #on" do
78
84
 
79
85
  # and that we have |hosts| distinct outputs
80
86
  unique_outputs = results.map(&:output).uniq
87
+
81
88
  assert_equal hosts.size, unique_outputs.size
82
89
  end
83
90
 
@@ -97,6 +104,7 @@ test_name "dsl::helpers::host_helpers #on" do
97
104
 
98
105
  # and that we have |hosts| distinct outputs
99
106
  unique_outputs = results.map(&:output).uniq
107
+
100
108
  assert_equal hosts.size, unique_outputs.size
101
109
  end
102
110
 
@@ -112,7 +120,7 @@ test_name "dsl::helpers::host_helpers #on" do
112
120
 
113
121
  parent_pid = Process.pid
114
122
  results = on(hosts, %{echo "${RANDOM}:${RANDOM}:${RANDOM}"}, :run_in_parallel => true) do
115
- assert(Process.pid != parent_pid)
123
+ refute_equal(Process.pid, parent_pid)
116
124
  end
117
125
 
118
126
  # assert that we got results back for every host
@@ -125,6 +133,7 @@ test_name "dsl::helpers::host_helpers #on" do
125
133
 
126
134
  # and that we have |hosts| distinct outputs
127
135
  unique_outputs = results.map(&:output).uniq
136
+
128
137
  assert_equal hosts.size, unique_outputs.size
129
138
  end
130
139
 
@@ -19,6 +19,7 @@ test_name "dsl::helpers::host_helpers #retry_on" do
19
19
  create_remote_file_from_fixture("retry_script", default, remote_tmpdir, "test.sh")
20
20
 
21
21
  result = retry_on default, "bash #{remote_script_file} #{remote_tmpdir} 2", { :max_retries => 4, :retry_interval => 0.1 }
22
+
22
23
  assert_equal 0, result.exit_code
23
24
  assert_equal "", result.stdout
24
25
  end
@@ -130,6 +130,7 @@ test_name "dsl::helpers::host_helpers #rsync_to" do
130
130
  "remote_tmdir" => remote_tmpdir,
131
131
  "result" => result.inspect) do
132
132
  remote_contents = on(default, "cat #{remote_filename}").stdout
133
+
133
134
  assert_equal contents, remote_contents
134
135
  end
135
136
  end
@@ -154,6 +155,7 @@ test_name "dsl::helpers::host_helpers #rsync_to" do
154
155
  "remote_tmdir" => remote_tmpdir,
155
156
  "result" => result.inspect) do
156
157
  remote_contents = on(host, "cat #{remote_filename}").stdout
158
+
157
159
  assert_equal contents, remote_contents
158
160
  end
159
161
  end
@@ -24,6 +24,7 @@ test_name "dsl::helpers::host_helpers #run_cron_on" do
24
24
 
25
25
  step "#run_cron_on CURRENTLY does not fail when listing cron jobs for a user with no cron entries" do
26
26
  result = run_cron_on default, :list, default['user']
27
+
27
28
  assert_equal 0, result.exit_code
28
29
  end
29
30
 
@@ -31,23 +32,27 @@ test_name "dsl::helpers::host_helpers #run_cron_on" do
31
32
  # this basically requires us to add a cron entry to make this work
32
33
  run_cron_on default, :add, default['user'], "* * * * * /bin/ls >/dev/null"
33
34
  result = run_cron_on default, :list, default['user']
35
+
34
36
  assert_equal 0, result.exit_code
35
37
  assert_match %r{/bin/ls}, result.stdout
36
38
  end
37
39
 
38
40
  step "#run_cron_on CURRENTLY does not fail, but returns nil, when adding cron jobs for an unknown user" do
39
41
  result = run_cron_on default, :add, "nonexistentuser", %{* * * * * /bin/echo "hello" >/dev/null}
42
+
40
43
  assert_nil result
41
44
  end
42
45
 
43
46
  step "#run_cron_on CURRENTLY does not fail, but returns nil, when attempting to add a bad cron entry" do
44
47
  result = run_cron_on default, :add, default['user'], "* * * * /bin/ls >/dev/null"
48
+
45
49
  assert_nil result
46
50
  end
47
51
 
48
52
  step "#run_cron_on can add a cron job for a user on a host" do
49
53
  run_cron_on default, :add, default['user'], %{* * * * * /bin/echo "hello" >/dev/null}
50
54
  result = run_cron_on default, :list, default['user']
55
+
51
56
  assert_equal 0, result.exit_code
52
57
  assert_match %r{/bin/echo}, result.stdout
53
58
  end
@@ -73,6 +78,7 @@ test_name "dsl::helpers::host_helpers #run_cron_on" do
73
78
 
74
79
  run_cron_on default, :add, default['user'], %{* * * * * /bin/echo "quality: job 1" >/dev/null}
75
80
  result = run_cron_on default, :list, default['user']
81
+
76
82
  assert_match %r{quality: job 1}, result.stdout
77
83
 
78
84
  run_cron_on default, :remove, default['user']
@@ -95,6 +101,7 @@ test_name "dsl::helpers::host_helpers #run_cron_on" do
95
101
  end
96
102
 
97
103
  results = run_cron_on hosts, :list, default['user']
104
+
98
105
  results.each do |result|
99
106
  assert_match %r{/bin/ls}, result.stdout
100
107
  end
@@ -104,6 +111,7 @@ test_name "dsl::helpers::host_helpers #run_cron_on" do
104
111
  run_cron_on hosts, :add, default['user'], "* * * * * /bin/ls >/dev/null"
105
112
 
106
113
  results = run_cron_on hosts, :list, default['user']
114
+
107
115
  results.each do |result|
108
116
  assert_match %r{/bin/ls}, result.stdout
109
117
  end
@@ -144,6 +152,7 @@ test_name "dsl::helpers::host_helpers #run_cron_on" do
144
152
  # this basically requires us to add a cron entry to make this work
145
153
  run_cron_on default, :add, default['user'], "* * * * * /bin/ls >/dev/null"
146
154
  result = run_cron_on default, :list, default['user']
155
+
147
156
  assert_equal 0, result.exit_code
148
157
  assert_match %r{/bin/ls}, result.stdout
149
158
  end
@@ -163,6 +172,7 @@ test_name "dsl::helpers::host_helpers #run_cron_on" do
163
172
  step "#run_cron_on can add a cron job for a user on a host" do
164
173
  run_cron_on default, :add, default['user'], %{* * * * * /bin/echo "hello" >/dev/null}
165
174
  result = run_cron_on default, :list, default['user']
175
+
166
176
  assert_equal 0, result.exit_code
167
177
  assert_match %r{/bin/echo}, result.stdout
168
178
  end
@@ -188,6 +198,7 @@ test_name "dsl::helpers::host_helpers #run_cron_on" do
188
198
 
189
199
  run_cron_on default, :add, default['user'], %{* * * * * /bin/echo "quality: job 1" >/dev/null}
190
200
  result = run_cron_on default, :list, default['user']
201
+
191
202
  assert_match %r{quality: job 1}, result.stdout
192
203
 
193
204
  run_cron_on default, :remove, default['user']
@@ -210,6 +221,7 @@ test_name "dsl::helpers::host_helpers #run_cron_on" do
210
221
  end
211
222
 
212
223
  results = run_cron_on hosts, :list, default['user']
224
+
213
225
  results.each do |result|
214
226
  assert_match %r{/bin/ls}, result.stdout
215
227
  end
@@ -219,6 +231,7 @@ test_name "dsl::helpers::host_helpers #run_cron_on" do
219
231
  run_cron_on hosts, :add, default['user'], "* * * * * /bin/ls >/dev/null"
220
232
 
221
233
  results = run_cron_on hosts, :list, default['user']
234
+
222
235
  results.each do |result|
223
236
  assert_match %r{/bin/ls}, result.stdout
224
237
  end
@@ -22,6 +22,7 @@ test_name "dsl::helpers::host_helpers #run_script_on" do
22
22
  local_filename, _contents = create_local_file_from_fixture("failing_shell_script", local_dir, "testfile.sh", "a+x")
23
23
 
24
24
  result = run_script_on default, local_filename, { :accept_all_exit_codes => true }
25
+
25
26
  assert_equal 1, result.exit_code
26
27
  end
27
28
  end
@@ -31,6 +32,7 @@ test_name "dsl::helpers::host_helpers #run_script_on" do
31
32
  local_filename, _contents = create_local_file_from_fixture("shell_script_with_output", local_dir, "testfile.sh", "a+x")
32
33
 
33
34
  results = run_script_on default, local_filename
35
+
34
36
  assert_equal 0, results.exit_code
35
37
  assert_equal "output\n", results.stdout
36
38
  end
@@ -22,6 +22,7 @@ test_name "dsl::helpers::host_helpers #run_script" do
22
22
  local_filename, _contents = create_local_file_from_fixture("failing_shell_script", local_dir, "testfile.sh", "a+x")
23
23
 
24
24
  result = run_script local_filename, { :accept_all_exit_codes => true }
25
+
25
26
  assert_equal 1, result.exit_code
26
27
  end
27
28
  end
@@ -31,6 +32,7 @@ test_name "dsl::helpers::host_helpers #run_script" do
31
32
  local_filename, _contents = create_local_file_from_fixture("shell_script_with_output", local_dir, "testfile.sh", "a+x")
32
33
 
33
34
  results = run_script local_filename
35
+
34
36
  assert_equal 0, results.exit_code
35
37
  assert_equal "output\n", results.stdout
36
38
  end
@@ -28,6 +28,7 @@ test_name "dsl::helpers::host_helpers #scp_from" do
28
28
  scp_from default, remote_filename, local_dir
29
29
 
30
30
  local_filename = File.join(local_dir, "testfile.txt")
31
+
31
32
  assert_equal contents, File.read(local_filename)
32
33
  end
33
34
  end
@@ -47,6 +48,7 @@ test_name "dsl::helpers::host_helpers #scp_from" do
47
48
 
48
49
  local_filename = File.join(local_dir, "testfile.txt")
49
50
  local_contents = File.read(local_filename)
51
+
50
52
  assert_equal remote_contents, local_contents
51
53
  end
52
54
  end
@@ -30,6 +30,7 @@ test_name "dsl::helpers::host_helpers #scp_to" do
30
30
 
31
31
  remote_filename = File.join(remote_tmpdir, "testfile.txt")
32
32
  remote_contents = on(default, "cat #{remote_filename}").stdout
33
+
33
34
  assert_equal contents, remote_contents
34
35
  end
35
36
  end
@@ -46,6 +47,7 @@ test_name "dsl::helpers::host_helpers #scp_to" do
46
47
 
47
48
  hosts.each do |host|
48
49
  remote_contents = on(host, "cat #{remote_filename}").stdout
50
+
49
51
  assert_equal contents, remote_contents
50
52
  end
51
53
  end
@@ -9,24 +9,29 @@ test_name "dsl::helpers::host_helpers #shell" do
9
9
 
10
10
  step "#shell makes command output available via `.stdout` on success" do
11
11
  output = shell(%{echo "echo via on"}).stdout
12
+
12
13
  assert_equal "echo via on\n", output
13
14
  end
14
15
 
15
16
  step "#shell makes command error output available via `.stderr` on success" do
16
17
  output = shell("/bin/nonexistent-command", :acceptable_exit_codes => [0, 127]).stderr
18
+
17
19
  assert_match(/No such file/, output)
18
20
  end
19
21
 
20
22
  step "#shell makes exit status available via `.exit_code`" do
21
23
  status = shell(%{echo "echo via on"}).exit_code
24
+
22
25
  assert_equal 0, status
23
26
  end
24
27
 
25
28
  step "#shell with :acceptable_exit_codes will not fail for named exit codes" do
26
29
  result = shell "/bin/nonexistent-command", :acceptable_exit_codes => [0, 127]
27
30
  output = result.stderr
31
+
28
32
  assert_match(/No such file/, output)
29
33
  status = result.exit_code
34
+
30
35
  assert_equal 127, status
31
36
  end
32
37
 
@@ -42,6 +42,7 @@ test_name "dsl::helpers::host_helpers #upgrade_package" do
42
42
  # > No Packages marked for Update
43
43
 
44
44
  result = upgrade_package default, "non-existent-package-name"
45
+
45
46
  assert_match(/No Packages marked for Update/i, result)
46
47
  end
47
48
  end
@@ -60,6 +61,7 @@ test_name "dsl::helpers::host_helpers #upgrade_package" do
60
61
 
61
62
  install_package default, "rsync"
62
63
  upgrade_package default, "rsync"
64
+
63
65
  assert check_for_package(default, "rsync"), "package was not successfully installed/upgraded"
64
66
  end
65
67
 
@@ -11,6 +11,7 @@ test_name 'File Test' do
11
11
  tmpfile = host.tmpfile('beaker')
12
12
  # ensure we have a user to chown to
13
13
  host.chown('testuser', tmpfile)
14
+
14
15
  assert_match(/testuser/, host.ls_ld(tmpfile), "Should have found testuser in `ls -ld` output")
15
16
  end
16
17
  end
@@ -21,6 +22,7 @@ test_name 'File Test' do
21
22
  tmpdir = host.tmpdir('beaker')
22
23
  # ensure we have a user to chown to
23
24
  host.chgrp('testgroup', tmpdir)
25
+
24
26
  assert_match(/testgroup/, host.ls_ld(tmpdir), "Should have found testgroup in `ls -ld` output")
25
27
  end
26
28
  end
@@ -31,6 +33,7 @@ test_name 'File Test' do
31
33
  tmpdir = host.tmpdir('beaker')
32
34
  on host, host.touch("#{tmpdir}/somefile.txt", false)
33
35
  host.chown('testuser', tmpdir, true)
36
+
34
37
  assert_match(/testuser/, host.ls_ld("#{tmpdir}/somefile.txt"), "Should have found testuser in `ls -ld` output for sub-file")
35
38
  end
36
39
  end
@@ -41,6 +44,7 @@ test_name 'File Test' do
41
44
  tmpfile = host.tmpfile('beaker')
42
45
  # ensure we have a group to chgrp to
43
46
  host.chgrp('testgroup', tmpfile)
47
+
44
48
  assert_match(/testgroup/, host.ls_ld(tmpfile), "Should have found testgroup in `ls -ld` output")
45
49
  end
46
50
  end
@@ -51,6 +55,7 @@ test_name 'File Test' do
51
55
  tmpdir = host.tmpdir('beaker')
52
56
  # ensure we have a group to chgrp to
53
57
  host.chgrp('testgroup', tmpdir)
58
+
54
59
  assert_match(/testgroup/, host.ls_ld(tmpdir), "Should have found testgroup in `ls -ld` output")
55
60
  end
56
61
  end
@@ -61,6 +66,7 @@ test_name 'File Test' do
61
66
  tmpdir = host.tmpdir('beaker')
62
67
  on host, host.touch("#{tmpdir}/somefile.txt", false)
63
68
  host.chgrp('testgroup', tmpdir, true)
69
+
64
70
  assert_match(/testgroup/, host.ls_ld("#{tmpdir}/somefile.txt"), "Should have found testgroup in `ls -ld` output for sub-file")
65
71
  end
66
72
  end
@@ -69,6 +75,7 @@ test_name 'File Test' do
69
75
  hosts.each do |host|
70
76
  # create a tmp file to mangle
71
77
  tmpdir = host.tmpdir('beaker')
78
+
72
79
  assert_match(/beaker/, host.ls_ld(tmpdir), "Should have found beaker in `ls -ld` output")
73
80
  end
74
81
  end
@@ -5,8 +5,10 @@ test_name "confirm host object behave correctly"
5
5
  step "#port_open? : can determine if a port is open on hosts"
6
6
  hosts.each do |host|
7
7
  logger.debug "port 22 (ssh) should be open on #{host}"
8
+
8
9
  assert_equal(true, host.port_open?(22), "port 22 on #{host} should be open")
9
10
  logger.debug "port 65535 should be closed on #{host}"
11
+
10
12
  assert_equal(false, host.port_open?(65535), "port 65535 on #{host} should be closed")
11
13
  end
12
14
 
@@ -15,6 +17,7 @@ hosts.each do |host|
15
17
  ip = host.ip
16
18
  # confirm ip format
17
19
  logger.debug("format of #{ip} for #{host} should be correct")
20
+
18
21
  assert_match(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/, ip, "#{ip} on #{host} isn't correct format")
19
22
  end
20
23
 
@@ -62,7 +65,8 @@ hosts.each do |host|
62
65
  host.add_env_var(env_param1, env_value3)
63
66
 
64
67
  val = host.get_env_var(env_id)
65
- assert('' == val, 'get_env_var should not match a partial env key name')
68
+
69
+ assert_equal('', val, 'get_env_var should not match a partial env key name')
66
70
  end
67
71
 
68
72
  step "#get_env_var : should not return a match from a key\'s value"
@@ -75,7 +79,8 @@ hosts.each do |host|
75
79
  host.add_env_var(env_param1, env_value1)
76
80
 
77
81
  val = host.get_env_var(env_value1)
78
- assert('' == val, 'get_env_var should not return a match from a key\'s value')
82
+
83
+ assert_equal('', val, 'get_env_var should not return a match from a key\'s value')
79
84
  end
80
85
 
81
86
  step "#clear_env_var : should only remove the specified key"
@@ -99,11 +104,14 @@ hosts.each do |host|
99
104
  host.clear_env_var(env_param3)
100
105
 
101
106
  val = host.get_env_var(env_param1)
107
+
102
108
  assert_match(/^#{env_param1}=#{env_value1}$/, val, "#{env_param1} should exist after calling clear_env_var")
103
109
  val = host.get_env_var(env_param2)
110
+
104
111
  assert_match(/^#{env_param2}=#{env_value2}$/, val, "#{env_param2} should exist after calling clear_env_var")
105
112
  val = host.get_env_var(env_param3)
106
- assert('' == val, "#{env_param3} should not exist after calling clear_env_var")
113
+
114
+ assert_equal('', val, "#{env_param3} should not exist after calling clear_env_var")
107
115
  end
108
116
 
109
117
  step "#add_env_var : can add a unique environment variable"
@@ -126,10 +134,13 @@ hosts.each do |host|
126
134
  host.add_env_var(env_param3, env_value3)
127
135
 
128
136
  val = host.get_env_var(env_param1)
137
+
129
138
  assert_match(/^#{env_param1}=#{env_value1}$/, val, "#{env_param1} should exist")
130
139
  val = host.get_env_var(env_param2)
140
+
131
141
  assert_match(/^#{env_param2}=#{env_value2}$/, val, "#{env_param2} should exist")
132
142
  val = host.get_env_var(env_param3)
143
+
133
144
  assert_match(/^#{env_param3}=#{env_value3}$/, val, "#{env_param3} should exist")
134
145
  end
135
146
 
@@ -147,6 +158,7 @@ hosts.each do |host|
147
158
  host.add_env_var("TEST", "3")
148
159
  logger.debug("ensure that TEST env var has correct setting")
149
160
  val = host.get_env_var("TEST")
161
+
150
162
  assert_match(/TEST=3(;|:)2(;|:)1$/, val, "add_env_var can correctly add env vars")
151
163
  end
152
164
 
@@ -169,6 +181,7 @@ step "#add_env_var : can preserve an environment between ssh connections" do
169
181
  host.close
170
182
  logger.debug("ensure that TEST env var has correct setting")
171
183
  val = host.get_env_var("TEST")
184
+
172
185
  assert_match(/TEST=3(;|:)2(;|:)1$/, val, "can preserve an environment between ssh connections")
173
186
  end
174
187
  end
@@ -178,14 +191,17 @@ hosts.each do |host|
178
191
  logger.debug("remove TEST=3")
179
192
  host.delete_env_var("TEST", "3")
180
193
  val = host.get_env_var("TEST")
194
+
181
195
  assert_match(/TEST=2(;|:)1$/, val, "delete_env_var can correctly delete part of a chained env var")
182
196
  logger.debug("remove TEST=1")
183
197
  host.delete_env_var("TEST", "1")
184
198
  val = host.get_env_var("TEST")
199
+
185
200
  assert_match(/TEST=2$/, val, "delete_env_var can correctly delete part of a chained env var")
186
201
  logger.debug("remove TEST=2")
187
202
  host.delete_env_var("TEST", "2")
188
203
  val = host.get_env_var("TEST")
204
+
189
205
  assert_equal("", val, "delete_env_var fully removes empty env var")
190
206
  end
191
207
 
@@ -195,6 +211,7 @@ hosts.each do |host|
195
211
  host.rm_rf("test1")
196
212
  # test dir construction
197
213
  logger.debug("create test1/test2/test3/test4")
214
+
198
215
  assert_equal(true, host.mkdir_p("test1/test2/test3/test4"), "can create directory structure")
199
216
  logger.debug("should be able to create a file in the new dir")
200
217
  on host, host.touch("test1/test2/test3/test4/test.txt", false)
@@ -218,9 +235,11 @@ hosts.each do |host|
218
235
  local_paths.each do |path|
219
236
  search_name = path.gsub(/^.*fixtures\//, '') # reduce down to the path that should match
220
237
  matched = host_paths.select { |check| /#{Regexp.escape(search_name)}$/.match?(check) }
238
+
221
239
  assert_equal(1, matched.length, "should have found a single instance of path #{search_name}, found #{matched.length}: \n #{matched}")
222
240
  host_paths = host_paths - matched
223
241
  end
242
+
224
243
  assert_equal(0, host_paths.length, "there are extra paths on #{host} (#{host_paths})")
225
244
  end
226
245
  end
@@ -251,6 +270,7 @@ hosts.each do |host|
251
270
  end
252
271
  host_paths = host_paths - matched
253
272
  end
273
+
254
274
  assert_equal(0, host_paths.length, "there are extra paths on #{host} (#{host_paths})")
255
275
  end
256
276
  end
@@ -282,6 +302,7 @@ hosts.each do |host|
282
302
  end
283
303
  host_paths = host_paths - matched
284
304
  end
305
+
285
306
  assert_equal(0, host_paths.length, "there are extra paths on #{host} (#{host_paths})")
286
307
  end
287
308
  end
@@ -326,10 +347,12 @@ step 'Ensure that a long 128+ character string with UTF-8 characters does not br
326
347
  long_string = ('a' * 128) + "\u06FF"
327
348
  on(default, "mkdir /tmp/#{long_string}")
328
349
  result = on(default, 'ls /tmp')
329
- assert(result.stdout.include?(long_string), 'Error in folder creation with long string + UTF-8 characters')
350
+
351
+ assert_includes(result.stdout, long_string, 'Error in folder creation with long string + UTF-8 characters')
330
352
 
331
353
  # remove the folder
332
354
  on(default, "rm -rf /tmp/#{long_string}")
333
355
  result = on(default, 'ls /tmp')
356
+
334
357
  assert(!result.stdout.include?(long_string), 'Error in folder deletion with long string + UTF-8 characters')
335
358
  end
@@ -8,7 +8,7 @@ test_name "confirm host prebuilt steps behave correctly" do
8
8
 
9
9
  step "confirm PATH env variable is set in the ssh environment file" do
10
10
  hosts.each do |host|
11
- assert(0 == on(host, "grep \"PATH\" #{host[:ssh_env_file]}").exit_code)
11
+ assert_equal(0, on(host, "grep \"PATH\" #{host[:ssh_env_file]}").exit_code)
12
12
  end
13
13
  end
14
14
  end
@@ -16,7 +16,7 @@ test_name "confirm host prebuilt steps behave correctly" do
16
16
  confine_block :to, :platform => /solaris-10/ do
17
17
  step "confirm /opt/csw/bin has been added to the path" do
18
18
  hosts.each do |host|
19
- assert(0 == on(host, "grep \"/opt/csw/bin\" #{host[:ssh_env_file]}").exit_code)
19
+ assert_equal(0, on(host, "grep \"/opt/csw/bin\" #{host[:ssh_env_file]}").exit_code)
20
20
  end
21
21
  end
22
22
  end
@@ -24,7 +24,7 @@ test_name "confirm host prebuilt steps behave correctly" do
24
24
  confine_block :to, :platform => /openbsd/ do
25
25
  step "confirm PKG_PATH is set in the ssh environment file" do
26
26
  hosts.each do |host|
27
- assert(0 == on(host, "grep \"PKG_PATH\" #{host[:ssh_env_file]}").exit_code)
27
+ assert_equal(0, on(host, "grep \"PKG_PATH\" #{host[:ssh_env_file]}").exit_code)
28
28
  end
29
29
  end
30
30
  end
@@ -2,6 +2,6 @@
2
2
  step "hosts can ping each other"
3
3
  hosts.each do |one|
4
4
  hosts.each do |two|
5
- assert_equal(one.ping(two), true)
5
+ assert_equal(true, one.ping(two))
6
6
  end
7
7
  end
data/beaker.gemspec CHANGED
@@ -27,19 +27,22 @@ Gem::Specification.new do |s|
27
27
  # Run time dependencies
28
28
  s.add_runtime_dependency 'minitar', '~> 0.6'
29
29
  s.add_runtime_dependency 'minitest', '~> 5.4'
30
- s.add_runtime_dependency 'rexml'
30
+ s.add_runtime_dependency 'rexml', '~> 3.2', '>= 3.2.5'
31
+
32
+ # net-ssh compatibility with ed25519 keys
33
+ s.add_runtime_dependency 'bcrypt_pbkdf', '>= 1.0', '< 2.0'
34
+ s.add_runtime_dependency 'ed25519', '>= 1.2', '<2.0'
31
35
 
32
- s.add_runtime_dependency 'ed25519', '~> 1.0' # net-ssh compatibility with ed25519 keys
33
36
  s.add_runtime_dependency 'hocon', '~> 1.0'
34
37
  s.add_runtime_dependency 'inifile', '~> 3.0'
35
38
  s.add_runtime_dependency 'net-scp', '>= 1.2', '< 5.0'
36
- s.add_runtime_dependency 'net-ssh', '>= 5.0'
39
+ s.add_runtime_dependency 'net-ssh', '~> 7.1'
37
40
 
38
41
  s.add_runtime_dependency 'in-parallel', '>= 0.1', '< 2.0'
39
42
  s.add_runtime_dependency 'rsync', '~> 1.0.9'
40
43
  s.add_runtime_dependency 'thor', ['>= 1.0.1', '< 2.0']
41
44
 
42
45
  # Run time dependencies that are Beaker libraries
43
- s.add_runtime_dependency 'beaker-hostgenerator'
46
+ s.add_runtime_dependency 'beaker-hostgenerator', '~> 2.0'
44
47
  s.add_runtime_dependency 'stringify-hash', '~> 0.0'
45
48
  end
@@ -1,5 +1,5 @@
1
1
  module Beaker
2
2
  module Version
3
- STRING = '5.2.0'
3
+ STRING = '5.3.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: beaker
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.0
4
+ version: 5.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppet
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-04-28 00:00:00.000000000 Z
11
+ date: 2023-06-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fakefs
@@ -98,30 +98,62 @@ dependencies:
98
98
  name: rexml
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '3.2'
101
104
  - - ">="
102
105
  - !ruby/object:Gem::Version
103
- version: '0'
106
+ version: 3.2.5
104
107
  type: :runtime
105
108
  prerelease: false
106
109
  version_requirements: !ruby/object:Gem::Requirement
107
110
  requirements:
111
+ - - "~>"
112
+ - !ruby/object:Gem::Version
113
+ version: '3.2'
108
114
  - - ">="
109
115
  - !ruby/object:Gem::Version
110
- version: '0'
116
+ version: 3.2.5
111
117
  - !ruby/object:Gem::Dependency
112
- name: ed25519
118
+ name: bcrypt_pbkdf
113
119
  requirement: !ruby/object:Gem::Requirement
114
120
  requirements:
115
- - - "~>"
121
+ - - ">="
116
122
  - !ruby/object:Gem::Version
117
123
  version: '1.0'
124
+ - - "<"
125
+ - !ruby/object:Gem::Version
126
+ version: '2.0'
118
127
  type: :runtime
119
128
  prerelease: false
120
129
  version_requirements: !ruby/object:Gem::Requirement
121
130
  requirements:
122
- - - "~>"
131
+ - - ">="
123
132
  - !ruby/object:Gem::Version
124
133
  version: '1.0'
134
+ - - "<"
135
+ - !ruby/object:Gem::Version
136
+ version: '2.0'
137
+ - !ruby/object:Gem::Dependency
138
+ name: ed25519
139
+ requirement: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - ">="
142
+ - !ruby/object:Gem::Version
143
+ version: '1.2'
144
+ - - "<"
145
+ - !ruby/object:Gem::Version
146
+ version: '2.0'
147
+ type: :runtime
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - ">="
152
+ - !ruby/object:Gem::Version
153
+ version: '1.2'
154
+ - - "<"
155
+ - !ruby/object:Gem::Version
156
+ version: '2.0'
125
157
  - !ruby/object:Gem::Dependency
126
158
  name: hocon
127
159
  requirement: !ruby/object:Gem::Requirement
@@ -174,16 +206,16 @@ dependencies:
174
206
  name: net-ssh
175
207
  requirement: !ruby/object:Gem::Requirement
176
208
  requirements:
177
- - - ">="
209
+ - - "~>"
178
210
  - !ruby/object:Gem::Version
179
- version: '5.0'
211
+ version: '7.1'
180
212
  type: :runtime
181
213
  prerelease: false
182
214
  version_requirements: !ruby/object:Gem::Requirement
183
215
  requirements:
184
- - - ">="
216
+ - - "~>"
185
217
  - !ruby/object:Gem::Version
186
- version: '5.0'
218
+ version: '7.1'
187
219
  - !ruby/object:Gem::Dependency
188
220
  name: in-parallel
189
221
  requirement: !ruby/object:Gem::Requirement
@@ -242,16 +274,16 @@ dependencies:
242
274
  name: beaker-hostgenerator
243
275
  requirement: !ruby/object:Gem::Requirement
244
276
  requirements:
245
- - - ">="
277
+ - - "~>"
246
278
  - !ruby/object:Gem::Version
247
- version: '0'
279
+ version: '2.0'
248
280
  type: :runtime
249
281
  prerelease: false
250
282
  version_requirements: !ruby/object:Gem::Requirement
251
283
  requirements:
252
- - - ">="
284
+ - - "~>"
253
285
  - !ruby/object:Gem::Version
254
- version: '0'
286
+ version: '2.0'
255
287
  - !ruby/object:Gem::Dependency
256
288
  name: stringify-hash
257
289
  requirement: !ruby/object:Gem::Requirement