beaker 6.6.0 → 6.8.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/release.yml +41 -0
- data/.github/workflows/release.yml +90 -16
- data/.github/workflows/test.yml +14 -17
- data/.rubocop_todo.yml +23 -35
- data/CHANGELOG.md +67 -170
- data/Gemfile +5 -28
- data/Rakefile +3 -0
- data/acceptance/tests/base/dsl/helpers/host_helpers/curl_with_retries_test.rb +3 -3
- data/acceptance/tests/base/dsl/structure_test.rb +2 -2
- data/beaker.gemspec +5 -2
- data/docs/tutorials/installation.md +1 -1
- data/docs/tutorials/quick_start_rake_tasks.md +1 -2
- data/lib/beaker/cli.rb +3 -3
- data/lib/beaker/dsl/helpers/host_helpers.rb +2 -2
- data/lib/beaker/dsl/structure.rb +1 -1
- data/lib/beaker/host/mac/pkg.rb +28 -2
- data/lib/beaker/host/unix/exec.rb +1 -1
- data/lib/beaker/logger_junit.rb +2 -2
- data/lib/beaker/ssh_connection.rb +1 -3
- data/lib/beaker/test_suite_result.rb +1 -1
- data/lib/beaker/version.rb +1 -1
- data/spec/beaker/host/mac/pkg_spec.rb +85 -0
- data/spec/helpers.rb +1 -0
- data/spec/spec_helper.rb +0 -24
- metadata +55 -10
data/lib/beaker/version.rb
CHANGED
@@ -0,0 +1,85 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
class MacPkgTest
|
4
|
+
include Mac::Pkg
|
5
|
+
# CommandFactory is included in Mac::Pkg to provide us with the execute method
|
6
|
+
include Beaker::CommandFactory
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
@logger = RSpec::Mocks::Double.new('logger').as_null_object
|
10
|
+
|
11
|
+
# Set up the test host to be used
|
12
|
+
@hostname = "mac.test.com"
|
13
|
+
@options = {}
|
14
|
+
@test_host = Beaker::Host.create(@hostname, @options, {})
|
15
|
+
end
|
16
|
+
|
17
|
+
def logger
|
18
|
+
@logger
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe MacPkgTest do
|
23
|
+
let(:host) { described_class.new }
|
24
|
+
let(:result_success) { Beaker::Result.new('host', 'cmd') }
|
25
|
+
let(:result_failure) { Beaker::Result.new('host', 'cmd') }
|
26
|
+
let(:dmg_file) { 'test-package.dmg' }
|
27
|
+
let(:pkg_base) { 'test-package' }
|
28
|
+
let(:pkg_name) { 'test-package.pkg' }
|
29
|
+
|
30
|
+
before do
|
31
|
+
result_success.exit_code = 0
|
32
|
+
result_failure.exit_code = 1
|
33
|
+
end
|
34
|
+
|
35
|
+
describe '#generic_install_dmg' do
|
36
|
+
context 'when the DMG file does not exist' do
|
37
|
+
it 'curls the DMG file' do
|
38
|
+
allow(host).to receive(:execute).with("test -f #{dmg_file}", { :accept_all_exit_codes => true }).and_yield(result_failure)
|
39
|
+
expect(host).to receive(:execute).with("curl -O #{dmg_file}")
|
40
|
+
allow(host).to receive(:execute).with("hdiutil attach test-package.dmg")
|
41
|
+
allow(host).to receive(:execute).with("test -f /Volumes/#{pkg_base}/#{pkg_name}", { :accept_all_exit_codes => true }).and_yield(result_success)
|
42
|
+
allow(host).to receive(:execute).with("installer -pkg /Volumes/#{pkg_base}/#{pkg_name} -target /")
|
43
|
+
|
44
|
+
host.generic_install_dmg(dmg_file, pkg_base, pkg_name)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
context 'when the specific package exists in the DMG' do
|
49
|
+
it 'installs the specific package' do
|
50
|
+
allow(host).to receive(:execute).with("test -f #{dmg_file}", { :accept_all_exit_codes => true }).and_yield(result_success)
|
51
|
+
allow(host).to receive(:execute).with("hdiutil attach test-package.dmg")
|
52
|
+
allow(host).to receive(:execute).with("test -f /Volumes/#{pkg_base}/#{pkg_name}", { :accept_all_exit_codes => true }).and_yield(result_success)
|
53
|
+
expect(host).to receive(:execute).with("installer -pkg /Volumes/#{pkg_base}/#{pkg_name} -target /")
|
54
|
+
|
55
|
+
host.generic_install_dmg(dmg_file, pkg_base, pkg_name)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
context 'when the included pkg has a different name from the dmg' do
|
60
|
+
it 'searches for and installs the first package found' do
|
61
|
+
allow(host).to receive(:execute).with("test -f #{dmg_file}", { :accept_all_exit_codes => true }).and_yield(result_success)
|
62
|
+
allow(host).to receive(:execute).with("hdiutil attach test-package.dmg")
|
63
|
+
allow(host).to receive(:execute).with("test -f /Volumes/#{pkg_base}/#{pkg_name}", { :accept_all_exit_codes => true }).and_yield(result_failure)
|
64
|
+
|
65
|
+
# This is a bit complex as we're testing the heredoc script execution
|
66
|
+
# We're expecting the script to be executed and are not validating its exact content
|
67
|
+
expect(host).to receive(:execute).with(a_string_including("find /Volumes/#{pkg_base} -name \"*.pkg\" -type f -print -quit"))
|
68
|
+
|
69
|
+
host.generic_install_dmg(dmg_file, pkg_base, pkg_name)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
describe '#install_package' do
|
75
|
+
it 'calls generic_install_dmg with the correct arguments' do
|
76
|
+
expect(host).to receive(:generic_install_dmg).with("package.dmg", "package", "package.pkg")
|
77
|
+
host.install_package("package")
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'strips the .dmg extension if present' do
|
81
|
+
expect(host).to receive(:generic_install_dmg).with("package.dmg", "package", "package.pkg")
|
82
|
+
host.install_package("package.dmg")
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
data/spec/helpers.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -1,27 +1,3 @@
|
|
1
|
-
begin
|
2
|
-
require 'simplecov'
|
3
|
-
require 'simplecov-console'
|
4
|
-
require 'codecov'
|
5
|
-
rescue LoadError
|
6
|
-
else
|
7
|
-
SimpleCov.start do
|
8
|
-
track_files 'lib/**/*.rb'
|
9
|
-
|
10
|
-
add_filter '/spec'
|
11
|
-
|
12
|
-
enable_coverage :branch
|
13
|
-
|
14
|
-
# do not track vendored files
|
15
|
-
add_filter '/vendor'
|
16
|
-
add_filter '/.vendor'
|
17
|
-
end
|
18
|
-
|
19
|
-
SimpleCov.formatters = [
|
20
|
-
SimpleCov::Formatter::Console,
|
21
|
-
SimpleCov::Formatter::Codecov,
|
22
|
-
]
|
23
|
-
end
|
24
|
-
|
25
1
|
require 'beaker'
|
26
2
|
require 'fakefs/spec_helpers'
|
27
3
|
require 'mocks'
|
metadata
CHANGED
@@ -1,29 +1,34 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: beaker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.
|
4
|
+
version: 6.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: fakefs
|
15
14
|
requirement: !ruby/object:Gem::Requirement
|
16
15
|
requirements:
|
17
|
-
- - "
|
16
|
+
- - ">="
|
18
17
|
- !ruby/object:Gem::Version
|
19
18
|
version: '2.4'
|
19
|
+
- - "<"
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '4'
|
20
22
|
type: :development
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
23
25
|
requirements:
|
24
|
-
- - "
|
26
|
+
- - ">="
|
25
27
|
- !ruby/object:Gem::Version
|
26
28
|
version: '2.4'
|
29
|
+
- - "<"
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: '4'
|
27
32
|
- !ruby/object:Gem::Dependency
|
28
33
|
name: rake
|
29
34
|
requirement: !ruby/object:Gem::Requirement
|
@@ -58,14 +63,54 @@ dependencies:
|
|
58
63
|
requirements:
|
59
64
|
- - "~>"
|
60
65
|
- !ruby/object:Gem::Version
|
61
|
-
version: 3.
|
66
|
+
version: 3.1.0
|
62
67
|
type: :development
|
63
68
|
prerelease: false
|
64
69
|
version_requirements: !ruby/object:Gem::Requirement
|
65
70
|
requirements:
|
66
71
|
- - "~>"
|
67
72
|
- !ruby/object:Gem::Version
|
68
|
-
version: 3.
|
73
|
+
version: 3.1.0
|
74
|
+
- !ruby/object:Gem::Dependency
|
75
|
+
name: base64
|
76
|
+
requirement: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
78
|
+
- - ">="
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: 0.2.0
|
81
|
+
- - "<"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '1'
|
84
|
+
type: :runtime
|
85
|
+
prerelease: false
|
86
|
+
version_requirements: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: 0.2.0
|
91
|
+
- - "<"
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '1'
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: benchmark
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
requirements:
|
98
|
+
- - ">="
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: '0.3'
|
101
|
+
- - "<"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0.5'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0.3'
|
111
|
+
- - "<"
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: '0.5'
|
69
114
|
- !ruby/object:Gem::Dependency
|
70
115
|
name: minitar
|
71
116
|
requirement: !ruby/object:Gem::Requirement
|
@@ -313,6 +358,7 @@ extensions: []
|
|
313
358
|
extra_rdoc_files: []
|
314
359
|
files:
|
315
360
|
- ".github/dependabot.yml"
|
361
|
+
- ".github/release.yml"
|
316
362
|
- ".github/workflows/release.yml"
|
317
363
|
- ".github/workflows/test.yml"
|
318
364
|
- ".gitignore"
|
@@ -576,6 +622,7 @@ files:
|
|
576
622
|
- spec/beaker/host/freebsd/pkg_spec.rb
|
577
623
|
- spec/beaker/host/mac/exec_spec.rb
|
578
624
|
- spec/beaker/host/mac/group_spec.rb
|
625
|
+
- spec/beaker/host/mac/pkg_spec.rb
|
579
626
|
- spec/beaker/host/mac/user_spec.rb
|
580
627
|
- spec/beaker/host/pswindows/exec_spec.rb
|
581
628
|
- spec/beaker/host/pswindows/file_spec.rb
|
@@ -631,7 +678,6 @@ homepage: https://github.com/voxpupuli/beaker
|
|
631
678
|
licenses:
|
632
679
|
- Apache-2.0
|
633
680
|
metadata: {}
|
634
|
-
post_install_message:
|
635
681
|
rdoc_options: []
|
636
682
|
require_paths:
|
637
683
|
- lib
|
@@ -646,8 +692,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
646
692
|
- !ruby/object:Gem::Version
|
647
693
|
version: '0'
|
648
694
|
requirements: []
|
649
|
-
rubygems_version: 3.
|
650
|
-
signing_key:
|
695
|
+
rubygems_version: 3.6.7
|
651
696
|
specification_version: 4
|
652
697
|
summary: Let's test Puppet!
|
653
698
|
test_files: []
|