beaker 2.12.0 → 2.13.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 +8 -8
- data/HISTORY.md +101 -2
- data/beaker.gemspec +1 -1
- data/lib/beaker/dsl/helpers.rb +1 -0
- data/lib/beaker/dsl/helpers/test_helpers.rb +10 -10
- data/lib/beaker/dsl/install_utils/pe_utils.rb +8 -5
- data/lib/beaker/dsl/install_utils/puppet_utils.rb +5 -5
- data/lib/beaker/hypervisor/vagrant_virtualbox.rb +42 -0
- data/lib/beaker/test_case.rb +4 -0
- data/lib/beaker/version.rb +1 -1
- data/spec/beaker/dsl/helpers/test_helpers_spec.rb +10 -10
- data/spec/beaker/dsl/install_utils/pe_utils_spec.rb +1 -0
- data/spec/beaker/dsl/install_utils/puppet_utils_spec.rb +5 -0
- data/spec/beaker/dsl/structure_spec.rb +11 -9
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
YzExY2M1YzU1ODQ1NmZmODdjYjUzYjg3OGRlYjg2NzE2ZGRiNDAwOQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZWQ2ZWFlNDFkY2EyZmQxZjkyZjRmOWVmM2U4YTI2YjBlN2Y2MjhiZQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
M2ZkMDlkNzRiOThjNWFjNDUxYjQyNzc5NTRiNmJlYzFmYTdjYzQ4MTdiMzQw
|
10
|
+
OTYzMTFmZDEyYjIzNmI4NzYyYmQyZWUyMDE5YTVjMGU1NTQ5MGZmYTcwMDc3
|
11
|
+
MjdiN2Y4ZWM0Y2JiYTdhYzkwYTc0YWZkZmZmNmJiZjNlOGExMDQ=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NDU5MmFmMGVjZGI4YzQ0ZDUyYzJiMDEzMTFmOTRiNzU3YTNjM2FiNjRiYjVi
|
14
|
+
ZGQyNWI5YmE0YTZmMzM3NTVlMzdlZmQ3YTRlNDk3ZWE1MDRmZjY2ZGQ5YTdm
|
15
|
+
MDM1ZmYzNmNhNDI2NjAzNDc5ODE2N2Q3MDZmN2ZlNjI0MTM3M2Q=
|
data/HISTORY.md
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# default - History
|
2
2
|
## Tags
|
3
|
-
* [LATEST -
|
3
|
+
* [LATEST - 29 May, 2015 (c801d4c8)](#LATEST)
|
4
|
+
* [2.12.0 - 20 May, 2015 (62845ce9)](#2.12.0)
|
4
5
|
* [2.11.0 - 6 May, 2015 (b775cc73)](#2.11.0)
|
5
6
|
* [2.10.0 - 22 Apr, 2015 (c4f37479)](#2.10.0)
|
6
7
|
* [2.9.0 - 9 Apr, 2015 (b161d325)](#2.9.0)
|
@@ -80,7 +81,105 @@
|
|
80
81
|
* [pe1.2 - 6 Sep, 2011 (ba3dadd2)](#pe1.2)
|
81
82
|
|
82
83
|
## Details
|
83
|
-
### <a name = "LATEST">LATEST -
|
84
|
+
### <a name = "LATEST">LATEST - 29 May, 2015 (c801d4c8)
|
85
|
+
|
86
|
+
* (GEM) update beaker version to 2.13.0 (c801d4c8)
|
87
|
+
|
88
|
+
* Merge pull request #824 from anodelman/remove-rake-task (32d49e16)
|
89
|
+
|
90
|
+
|
91
|
+
```
|
92
|
+
Merge pull request #824 from anodelman/remove-rake-task
|
93
|
+
|
94
|
+
(BKR-239) Remove dependency on puppet-dashboard rake tasks...
|
95
|
+
```
|
96
|
+
* (BKR-239) Remove dependency on puppet-dashboard rake tasks... (a334fe40)
|
97
|
+
|
98
|
+
|
99
|
+
```
|
100
|
+
(BKR-239) Remove dependency on puppet-dashboard rake tasks...
|
101
|
+
|
102
|
+
... for shallow gravy.
|
103
|
+
|
104
|
+
- do that
|
105
|
+
```
|
106
|
+
* Merge pull request #817 from justinstoller/maint/master/hocon-update (ddc7d948)
|
107
|
+
|
108
|
+
|
109
|
+
```
|
110
|
+
Merge pull request #817 from justinstoller/maint/master/hocon-update
|
111
|
+
|
112
|
+
(maint) Relax constraint on hocon
|
113
|
+
```
|
114
|
+
* Merge pull request #820 from anodelman/fix-accessors (aeedd651)
|
115
|
+
|
116
|
+
|
117
|
+
```
|
118
|
+
Merge pull request #820 from anodelman/fix-accessors
|
119
|
+
|
120
|
+
(BKR-283)/(BKR-262) missing @metadata/@logger accessors for beaker-rspec
|
121
|
+
```
|
122
|
+
* Merge pull request #819 from spjmurray/virtualbox_volumes (85bbc4dd)
|
123
|
+
|
124
|
+
|
125
|
+
```
|
126
|
+
Merge pull request #819 from spjmurray/virtualbox_volumes
|
127
|
+
|
128
|
+
(BKR-281) VirtualBox: Add support for storage arrays
|
129
|
+
```
|
130
|
+
* (BKR-283)/(BKR-262) missing @metadata/@logger accessors for beaker-rspec (d230c2cc)
|
131
|
+
|
132
|
+
|
133
|
+
```
|
134
|
+
(BKR-283)/(BKR-262) missing @metadata/@logger accessors for beaker-rspec
|
135
|
+
|
136
|
+
- beaker-rspec needs access to @metadata, broken with beaker 2.12.0
|
137
|
+
- Beaker-rspec missing @logger accessor
|
138
|
+
|
139
|
+
Added both logger and metadata accessors so that beaker-rspec can be
|
140
|
+
repaired to work with latest beaker releases.
|
141
|
+
```
|
142
|
+
* (BKR-287) Relax constraint on hocon (f8f44deb)
|
143
|
+
|
144
|
+
|
145
|
+
```
|
146
|
+
(BKR-287) Relax constraint on hocon
|
147
|
+
|
148
|
+
Prior to this we were using the hocon gem and pinning to a z release.
|
149
|
+
|
150
|
+
This commit relaxes the version dependency to pull in an pre-1.0 hocon
|
151
|
+
release.
|
152
|
+
|
153
|
+
This is necessary for testing the hocon module itself.
|
154
|
+
```
|
155
|
+
* (BKR-281) VirtualBox: Add support for storage arrays (3b0b2443)
|
156
|
+
|
157
|
+
|
158
|
+
```
|
159
|
+
(BKR-281) VirtualBox: Add support for storage arrays
|
160
|
+
|
161
|
+
Extends the Vagrant VirtualBox hypervisor to allow per host definitions
|
162
|
+
of storage volumes, for testing things like ceph and other storage
|
163
|
+
technologies.
|
164
|
+
|
165
|
+
An example nodeset provisions the VM with 3 attached storage volumes
|
166
|
+
available as sdb, sdc, sdd (on linux systems) at at SCSI addresses
|
167
|
+
2:0:0:0, 3:0:0:0, 4:0:0:0. Sizes are specified in MB.
|
168
|
+
|
169
|
+
HOSTS:
|
170
|
+
osd0:
|
171
|
+
hypervisor: vagrant
|
172
|
+
volumes:
|
173
|
+
osd0_0:
|
174
|
+
size: 10000
|
175
|
+
osd0_1:
|
176
|
+
size: 10000
|
177
|
+
journal:
|
178
|
+
size: 1000
|
179
|
+
```
|
180
|
+
### <a name = "2.12.0">2.12.0 - 20 May, 2015 (62845ce9)
|
181
|
+
|
182
|
+
* (HISTORY) update beaker history for gem release 2.12.0 (62845ce9)
|
84
183
|
|
85
184
|
* (GEM) update beaker version to 2.12.0 (88efb0d6)
|
86
185
|
|
data/beaker.gemspec
CHANGED
@@ -33,7 +33,7 @@ Gem::Specification.new do |s|
|
|
33
33
|
# Run time dependencies
|
34
34
|
s.add_runtime_dependency 'minitest', '~> 5.4'
|
35
35
|
s.add_runtime_dependency 'json', '~> 1.8'
|
36
|
-
s.add_runtime_dependency 'hocon', '~> 0.
|
36
|
+
s.add_runtime_dependency 'hocon', '~> 0.1'
|
37
37
|
s.add_runtime_dependency 'net-ssh', '~> 2.9'
|
38
38
|
s.add_runtime_dependency 'net-scp', '~> 1.2'
|
39
39
|
s.add_runtime_dependency 'inifile', '~> 2.0'
|
data/lib/beaker/dsl/helpers.rb
CHANGED
@@ -18,6 +18,7 @@ module Beaker
|
|
18
18
|
# * the module {Beaker::DSL::Roles} that provides access to the various hosts implementing
|
19
19
|
# {Beaker::Host}'s interface to act upon
|
20
20
|
# * the module {Beaker::DSL::Wrappers} the provides convenience methods for {Beaker::DSL::Command} creation
|
21
|
+
# * a method *metadata* that yields a hash
|
21
22
|
#
|
22
23
|
#
|
23
24
|
module Helpers
|
@@ -10,7 +10,7 @@ module Beaker
|
|
10
10
|
#
|
11
11
|
# @return [String] Test name, or nil if it hasn't been set
|
12
12
|
def current_test_name()
|
13
|
-
|
13
|
+
metadata[:case] && metadata[:case][:name] ? metadata[:case][:name] : nil
|
14
14
|
end
|
15
15
|
|
16
16
|
# Gets the currently executing test's filename, which is set from the
|
@@ -22,7 +22,7 @@ module Beaker
|
|
22
22
|
#
|
23
23
|
# @return [String] Test filename, or nil if it hasn't been set
|
24
24
|
def current_test_filename()
|
25
|
-
|
25
|
+
metadata[:case] && metadata[:case][:file_name] ? metadata[:case][:file_name] : nil
|
26
26
|
end
|
27
27
|
|
28
28
|
# Gets the currently executing test's currently executing step name.
|
@@ -30,7 +30,7 @@ module Beaker
|
|
30
30
|
#
|
31
31
|
# @return [String] Step name, or nil if it hasn't been set
|
32
32
|
def current_step_name()
|
33
|
-
|
33
|
+
metadata[:step] && metadata[:step][:name] ? metadata[:step][:name] : nil
|
34
34
|
end
|
35
35
|
|
36
36
|
# Sets the currently executing test's name.
|
@@ -40,8 +40,8 @@ module Beaker
|
|
40
40
|
# @return nil
|
41
41
|
# @api private
|
42
42
|
def set_current_test_name(name)
|
43
|
-
|
44
|
-
|
43
|
+
metadata[:case] ||= {}
|
44
|
+
metadata[:case][:name] = name
|
45
45
|
end
|
46
46
|
|
47
47
|
# Sets the currently executing test's filename.
|
@@ -51,8 +51,8 @@ module Beaker
|
|
51
51
|
# @return nil
|
52
52
|
# @api private
|
53
53
|
def set_current_test_filename(filename)
|
54
|
-
|
55
|
-
|
54
|
+
metadata[:case] ||= {}
|
55
|
+
metadata[:case][:file_name] = filename
|
56
56
|
end
|
57
57
|
|
58
58
|
# Sets the currently executing step's name.
|
@@ -62,11 +62,11 @@ module Beaker
|
|
62
62
|
# @return nil
|
63
63
|
# @api private
|
64
64
|
def set_current_step_name(name)
|
65
|
-
|
66
|
-
|
65
|
+
metadata[:step] ||= {}
|
66
|
+
metadata[:step][:name] = name
|
67
67
|
end
|
68
68
|
|
69
69
|
end
|
70
70
|
end
|
71
71
|
end
|
72
|
-
end
|
72
|
+
end
|
@@ -390,12 +390,15 @@ module Beaker
|
|
390
390
|
wait_for_host_in_dashboard(host)
|
391
391
|
end
|
392
392
|
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
393
|
+
# only appropriate for pre-3.9 builds
|
394
|
+
if version_is_less(master[:pe_ver], '3.99')
|
395
|
+
if pre30master
|
396
|
+
task = 'nodegroup:add_all_nodes group=default'
|
397
|
+
else
|
398
|
+
task = 'defaultgroup:ensure_default_group'
|
399
|
+
end
|
400
|
+
on dashboard, "/opt/puppet/bin/rake -sf /opt/puppet/share/puppet-dashboard/Rakefile #{task} RAILS_ENV=production"
|
397
401
|
end
|
398
|
-
on dashboard, "/opt/puppet/bin/rake -sf /opt/puppet/share/puppet-dashboard/Rakefile #{task} RAILS_ENV=production"
|
399
402
|
|
400
403
|
# Now that all hosts are in the dashbaord, run puppet one more
|
401
404
|
# time to configure mcollective
|
@@ -602,9 +602,9 @@ module Beaker
|
|
602
602
|
fedora_prefix, version, repo, arch ]
|
603
603
|
|
604
604
|
unless link_exists?( link )
|
605
|
-
|
605
|
+
logger.debug("couldn't find link at '#{repo}', falling back to next option...")
|
606
606
|
else
|
607
|
-
|
607
|
+
logger.debug("found link at '#{repo}'")
|
608
608
|
break
|
609
609
|
end
|
610
610
|
end
|
@@ -646,16 +646,16 @@ module Beaker
|
|
646
646
|
repo_path = "/root/#{package_name}/#{codename}/#{repo}"
|
647
647
|
repo_check = on(host, "[[ -d #{repo_path} ]]", :acceptable_exit_codes => [0,1])
|
648
648
|
if repo_check.exit_code == 0
|
649
|
-
|
649
|
+
logger.debug("found repo at '#{repo_path}'")
|
650
650
|
repo_name = repo
|
651
651
|
break
|
652
652
|
else
|
653
|
-
|
653
|
+
logger.debug("couldn't find repo at '#{repo_path}', falling back to next option...")
|
654
654
|
end
|
655
655
|
end
|
656
656
|
if repo_name.nil?
|
657
657
|
repo_name = 'main'
|
658
|
-
|
658
|
+
logger.debug("using default repo '#{repo_name}'")
|
659
659
|
end
|
660
660
|
|
661
661
|
search = "deb\\s\\+http:\\/\\/#{hostname}.*$"
|
@@ -5,11 +5,53 @@ class Beaker::VagrantVirtualbox < Beaker::Vagrant
|
|
5
5
|
super
|
6
6
|
end
|
7
7
|
|
8
|
+
# Generate a VM customization string
|
9
|
+
def self.vb_customize(command, args)
|
10
|
+
" vb.customize ['#{command}', #{args.map{|a| "'#{a.to_s}'"}.join(", ")}]\n"
|
11
|
+
end
|
12
|
+
|
13
|
+
# Generate a VM customization string for the current VM
|
14
|
+
def self.vb_customize_vm(command, args)
|
15
|
+
" vb.customize ['#{command}', :id, #{args.map{|a| "'#{a.to_s}'"}.join(", ")}]\n"
|
16
|
+
end
|
17
|
+
|
8
18
|
def self.provider_vfile_section(host, options)
|
9
19
|
provider_section = ""
|
10
20
|
provider_section << " v.vm.provider :virtualbox do |vb|\n"
|
11
21
|
provider_section << " vb.customize ['modifyvm', :id, '--memory', '#{options['vagrant_memsize'] ||= '1024'}']\n"
|
12
22
|
provider_section << " vb.vbguest.auto_update = false" if options[:vbguest_plugin] == 'disable'
|
23
|
+
|
24
|
+
# Guest volume support
|
25
|
+
# - Creates a new AHCI controller with the requisite number of ports,
|
26
|
+
# the default controller is limited in its number of supported ports (2).
|
27
|
+
# The AHCI emulation is generic enough for acceptance testing, and
|
28
|
+
# presents the devices as SCSI devices in /sys/class/scsi_disk.
|
29
|
+
# - Creates the defined volumes in beaker's temporary folder and attaches
|
30
|
+
# them to the controller in order starting at port 0. This presents disks
|
31
|
+
# as 2:0:0:0, 3:0:0:0 ... much like you'd see on commercial storage boxes
|
32
|
+
if host['volumes']
|
33
|
+
provider_section << self.vb_customize_vm('storagectl', [
|
34
|
+
'--name', 'SATA Controller',
|
35
|
+
'--add', 'sata',
|
36
|
+
'--controller', 'IntelAHCI',
|
37
|
+
'--portcount', host['volumes'].length
|
38
|
+
])
|
39
|
+
host['volumes'].keys.each_with_index do |volume, index|
|
40
|
+
volume_path = "#{host.name}-#{volume}.vdi"
|
41
|
+
provider_section << self.vb_customize('createhd', [
|
42
|
+
'--filename', volume_path,
|
43
|
+
'--size', host['volumes'][volume]['size'],
|
44
|
+
])
|
45
|
+
provider_section << self.vb_customize_vm('storageattach', [
|
46
|
+
'--storagectl', 'SATA Controller',
|
47
|
+
'--port', index,
|
48
|
+
'--device', 0,
|
49
|
+
'--type', 'hdd',
|
50
|
+
'--medium', volume_path,
|
51
|
+
])
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
13
55
|
if host['disk_path']
|
14
56
|
unless File.exist?(host['disk_path'])
|
15
57
|
host['disk_path'] = File.join(host['disk_path'], "#{host.name}.vmdk")
|
data/lib/beaker/test_case.rb
CHANGED
data/lib/beaker/version.rb
CHANGED
@@ -17,61 +17,61 @@ describe ClassMixedWithDSLHelpers do
|
|
17
17
|
|
18
18
|
describe '#current_test_name' do
|
19
19
|
it 'returns nil if the case is undefined' do
|
20
|
-
subject.
|
20
|
+
allow(subject).to receive(:metadata).and_return(metadata)
|
21
21
|
expect( subject.current_test_name ).to be_nil
|
22
22
|
end
|
23
23
|
|
24
24
|
it 'returns nil if the name is undefined' do
|
25
25
|
@metadata = { :case => {} }
|
26
|
-
subject.
|
26
|
+
allow(subject).to receive(:metadata).and_return(metadata)
|
27
27
|
expect( subject.current_test_name ).to be_nil
|
28
28
|
end
|
29
29
|
|
30
30
|
it 'returns the set value' do
|
31
31
|
name = 'holyGrail_testName'
|
32
32
|
@metadata = { :case => { :name => name } }
|
33
|
-
subject.
|
33
|
+
allow(subject).to receive(:metadata).and_return(metadata)
|
34
34
|
expect( subject.current_test_name ).to be === name
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
38
|
describe '#current_test_filename' do
|
39
39
|
it 'returns nil if the case is undefined' do
|
40
|
-
subject.
|
40
|
+
allow(subject).to receive(:metadata).and_return(metadata)
|
41
41
|
expect( subject.current_test_filename ).to be_nil
|
42
42
|
end
|
43
43
|
|
44
44
|
it 'returns nil if the name is undefined' do
|
45
45
|
@metadata = { :case => {} }
|
46
|
-
subject.
|
46
|
+
allow(subject).to receive(:metadata).and_return(metadata)
|
47
47
|
expect( subject.current_test_filename ).to be_nil
|
48
48
|
end
|
49
49
|
|
50
50
|
it 'returns the set value' do
|
51
51
|
name = 'holyGrail_testFilename'
|
52
52
|
@metadata = { :case => { :file_name => name } }
|
53
|
-
subject.
|
53
|
+
allow(subject).to receive(:metadata).and_return(metadata)
|
54
54
|
expect( subject.current_test_filename ).to be === name
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
58
58
|
describe '#current_step_name' do
|
59
59
|
it 'returns nil if the step is undefined' do
|
60
|
-
subject.
|
60
|
+
allow(subject).to receive(:metadata).and_return(metadata)
|
61
61
|
expect( subject.current_step_name ).to be_nil
|
62
62
|
end
|
63
63
|
|
64
64
|
it 'returns nil if the name is undefined' do
|
65
65
|
@metadata = { :step => {} }
|
66
|
-
subject.
|
66
|
+
allow(subject).to receive(:metadata).and_return(metadata)
|
67
67
|
expect( subject.current_step_name ).to be_nil
|
68
68
|
end
|
69
69
|
|
70
70
|
it 'returns the set value' do
|
71
71
|
name = 'holyGrail_stepName'
|
72
72
|
@metadata = { :step => { :name => name } }
|
73
|
-
subject.
|
73
|
+
allow(subject).to receive(:metadata).and_return(metadata)
|
74
74
|
expect( subject.current_step_name ).to be === name
|
75
75
|
end
|
76
76
|
end
|
77
|
-
end
|
77
|
+
end
|
@@ -328,6 +328,7 @@ describe ClassMixedWithDSLInstallUtils do
|
|
328
328
|
expect( subject ).to receive( :on ).with( hosts[2], /puppet agent -t/, :acceptable_exit_codes => [0,2] ).once
|
329
329
|
expect( subject ).to receive( :on ).with( hosts[3], /puppet agent -t/, :acceptable_exit_codes => [0,2] ).once
|
330
330
|
#run rake task on dashboard
|
331
|
+
|
331
332
|
expect( subject ).to receive( :on ).with( hosts[0], /\/opt\/puppet\/bin\/rake -sf \/opt\/puppet\/share\/puppet-dashboard\/Rakefile .* RAILS_ENV=production/ ).once
|
332
333
|
#wait for all hosts to appear in the dashboard
|
333
334
|
#run puppet agent now that installation is complete
|
@@ -14,6 +14,7 @@ class ClassMixedWithDSLInstallUtils
|
|
14
14
|
end
|
15
15
|
|
16
16
|
describe ClassMixedWithDSLInstallUtils do
|
17
|
+
let(:metadata) { @metadata ||= {} }
|
17
18
|
let(:presets) { Beaker::Options::Presets.new }
|
18
19
|
let(:opts) { presets.presets.merge(presets.env_vars) }
|
19
20
|
let(:basic_hosts) { make_hosts( { :pe_ver => '3.0',
|
@@ -82,6 +83,7 @@ describe ClassMixedWithDSLInstallUtils do
|
|
82
83
|
cmd = 'cd /path/to/repo/name && git describe || true'
|
83
84
|
logger = double.as_null_object
|
84
85
|
|
86
|
+
allow( subject ).to receive( :metadata ).and_return( metadata )
|
85
87
|
expect( subject ).to receive( :logger ).and_return( logger )
|
86
88
|
expect( subject ).to receive( :on ).with( host, cmd ).and_yield
|
87
89
|
expect( subject ).to receive( :stdout ).and_return( '2' )
|
@@ -130,6 +132,7 @@ describe ClassMixedWithDSLInstallUtils do
|
|
130
132
|
host = { 'platform' => 'debian' }
|
131
133
|
logger = double.as_null_object
|
132
134
|
|
135
|
+
allow( subject ).to receive( :metadata ).and_return( metadata )
|
133
136
|
expect( subject ).to receive( :logger ).exactly( 3 ).times.and_return( logger )
|
134
137
|
expect( subject ).to receive( :on ).exactly( 4 ).times
|
135
138
|
|
@@ -147,6 +150,7 @@ describe ClassMixedWithDSLInstallUtils do
|
|
147
150
|
cmd = "test -d #{path}/#{repo[:name]} || git clone --branch #{repo[:rev]} --depth #{repo[:depth]} #{repo[:path]} #{path}/#{repo[:name]}"
|
148
151
|
host = { 'platform' => 'debian' }
|
149
152
|
logger = double.as_null_object
|
153
|
+
allow( subject ).to receive( :metadata ).and_return( metadata )
|
150
154
|
expect( subject ).to receive( :logger ).exactly( 3 ).times.and_return( logger )
|
151
155
|
expect( subject ).to receive( :on ).with( host,"test -d #{path} || mkdir -p #{path}").exactly( 1 ).times
|
152
156
|
# this is the the command we want to test
|
@@ -169,6 +173,7 @@ describe ClassMixedWithDSLInstallUtils do
|
|
169
173
|
cmd = "test -d #{path}/#{repo[:name]} || git clone --branch #{repo[:depth_branch]} --depth #{repo[:depth]} #{repo[:path]} #{path}/#{repo[:name]}"
|
170
174
|
host = { 'platform' => 'debian' }
|
171
175
|
logger = double.as_null_object
|
176
|
+
allow( subject ).to receive( :metadata ).and_return( metadata )
|
172
177
|
expect( subject ).to receive( :logger ).exactly( 3 ).times.and_return( logger )
|
173
178
|
expect( subject ).to receive( :on ).with( host,"test -d #{path} || mkdir -p #{path}").exactly( 1 ).times
|
174
179
|
# this is the the command we want to test
|
@@ -7,14 +7,20 @@ end
|
|
7
7
|
|
8
8
|
describe ClassMixedWithDSLStructure do
|
9
9
|
include Beaker::DSL::Assertions
|
10
|
-
|
10
|
+
|
11
|
+
let (:logger) { double }
|
12
|
+
let (:metadata) { @metadata ||= {} }
|
13
|
+
|
14
|
+
before :each do
|
15
|
+
allow( subject ).to receive(:metadata).and_return(metadata)
|
16
|
+
end
|
17
|
+
|
11
18
|
describe '#step' do
|
12
19
|
it 'requires a name' do
|
13
20
|
expect { subject.step do; end }.to raise_error ArgumentError
|
14
21
|
end
|
15
22
|
|
16
23
|
it 'notifies the logger' do
|
17
|
-
subject.instance_variable_set(:@metadata, {})
|
18
24
|
allow( subject ).to receive( :set_current_step_name )
|
19
25
|
expect( subject ).to receive( :logger ).and_return( logger )
|
20
26
|
expect( logger ).to receive( :notify )
|
@@ -22,7 +28,6 @@ describe ClassMixedWithDSLStructure do
|
|
22
28
|
end
|
23
29
|
|
24
30
|
it 'yields if a block is given' do
|
25
|
-
subject.instance_variable_set(:@metadata, {})
|
26
31
|
expect( subject ).to receive( :logger ).and_return( logger )
|
27
32
|
allow( subject ).to receive( :set_current_step_name )
|
28
33
|
expect( logger ).to receive( :notify )
|
@@ -33,29 +38,27 @@ describe ClassMixedWithDSLStructure do
|
|
33
38
|
end
|
34
39
|
|
35
40
|
it 'sets the metadata' do
|
36
|
-
subject.instance_variable_set(:@metadata, {})
|
37
41
|
allow( subject ).to receive( :logger ).and_return( logger )
|
38
42
|
allow( logger ).to receive( :notify )
|
39
43
|
step_name = 'pierceBrosnanTests'
|
40
44
|
subject.step step_name
|
41
|
-
expect(
|
45
|
+
expect( metadata[:step][:name] ).to be === step_name
|
42
46
|
end
|
43
47
|
end
|
44
48
|
|
45
49
|
describe '#test_name' do
|
50
|
+
|
46
51
|
it 'requires a name' do
|
47
52
|
expect { subject.test_name do; end }.to raise_error ArgumentError
|
48
53
|
end
|
49
54
|
|
50
55
|
it 'notifies the logger' do
|
51
|
-
subject.instance_variable_set(:@metadata, {})
|
52
56
|
expect( subject ).to receive( :logger ).and_return( logger )
|
53
57
|
expect( logger ).to receive( :notify )
|
54
58
|
subject.test_name 'blah'
|
55
59
|
end
|
56
60
|
|
57
61
|
it 'yields if a block is given' do
|
58
|
-
subject.instance_variable_set(:@metadata, {})
|
59
62
|
expect( subject ).to receive( :logger ).and_return( logger )
|
60
63
|
expect( logger ).to receive( :notify )
|
61
64
|
expect( subject ).to receive( :foo )
|
@@ -65,12 +68,11 @@ describe ClassMixedWithDSLStructure do
|
|
65
68
|
end
|
66
69
|
|
67
70
|
it 'sets the metadata' do
|
68
|
-
subject.instance_variable_set(:@metadata, {})
|
69
71
|
allow( subject ).to receive( :logger ).and_return( logger )
|
70
72
|
allow( logger ).to receive( :notify )
|
71
73
|
test_name = '15-05-08\'s weather is beautiful'
|
72
74
|
subject.test_name test_name
|
73
|
-
expect(
|
75
|
+
expect( metadata[:case][:name] ).to be === test_name
|
74
76
|
end
|
75
77
|
end
|
76
78
|
|
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: 2.
|
4
|
+
version: 2.13.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppetlabs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05-
|
11
|
+
date: 2015-05-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -170,14 +170,14 @@ dependencies:
|
|
170
170
|
requirements:
|
171
171
|
- - ~>
|
172
172
|
- !ruby/object:Gem::Version
|
173
|
-
version: 0.
|
173
|
+
version: '0.1'
|
174
174
|
type: :runtime
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
178
|
- - ~>
|
179
179
|
- !ruby/object:Gem::Version
|
180
|
-
version: 0.
|
180
|
+
version: '0.1'
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
name: net-ssh
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|