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.
@@ -1,5 +1,5 @@
1
1
  module Beaker
2
2
  module Version
3
- STRING = '6.6.0'
3
+ STRING = '6.8.0'
4
4
  end
5
5
  end
@@ -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
@@ -131,6 +131,7 @@ module PlatformHelpers
131
131
  el-
132
132
  centos
133
133
  redhat
134
+ redhat-10
134
135
  oracle
135
136
  scientific
136
137
  archlinux
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.6.0
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: 2025-03-27 00:00:00.000000000 Z
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.0.0
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.0.0
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.5.22
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: []