beaker 2.44.0 → 2.45.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/CONTRIBUTING.md +7 -2
- data/HISTORY.md +200 -2
- data/acceptance/tests/puppet/web_helpers_test.rb +55 -0
- data/docs/Beaker-Libraries.md +2 -0
- data/docs/How-To-Beaker.md +0 -1
- data/docs/README.md +1 -1
- data/docs/how_to/change_terminal_output_coloring.md +32 -0
- data/docs/hypervisors/README.md +1 -1
- data/docs/hypervisors/openstack.md +80 -4
- data/docs/hypervisors/vagrant.md +40 -2
- data/docs/runner/test_run.md +31 -0
- data/lib/beaker/cli.rb +3 -3
- data/lib/beaker/dsl/helpers/web_helpers.rb +13 -4
- data/lib/beaker/dsl/install_utils/foss_utils.rb +1 -1
- data/lib/beaker/dsl/install_utils/windows_utils.rb +3 -3
- data/lib/beaker/host.rb +21 -1
- data/lib/beaker/host/unix/pkg.rb +1 -1
- data/lib/beaker/hypervisor/openstack.rb +1 -1
- data/lib/beaker/hypervisor/vagrant.rb +15 -1
- data/lib/beaker/options/hosts_file_parser.rb +54 -14
- data/lib/beaker/options/parser.rb +37 -3
- data/lib/beaker/options/presets.rb +2 -2
- data/lib/beaker/version.rb +1 -1
- data/spec/beaker/cli_spec.rb +4 -1
- data/spec/beaker/dsl/install_utils/foss_utils_spec.rb +37 -60
- data/spec/beaker/dsl/install_utils/windows_utils_spec.rb +3 -3
- data/spec/beaker/host/unix/pkg_spec.rb +20 -0
- data/spec/beaker/host_prebuilt_steps_spec.rb +7 -7
- data/spec/beaker/host_spec.rb +44 -0
- data/spec/beaker/hypervisor/openstack_spec.rb +66 -0
- data/spec/beaker/hypervisor/vagrant_spec.rb +99 -0
- data/spec/beaker/options/hosts_file_parser_spec.rb +95 -22
- data/spec/beaker/options/parser_spec.rb +93 -1
- data/spec/helpers.rb +10 -2
- metadata +6 -3
- data/docs/Overview.md +0 -31
@@ -153,7 +153,7 @@ module Beaker
|
|
153
153
|
parser.instance_variable_set(:@command_line_parser, command_line_parser_obj)
|
154
154
|
|
155
155
|
allow(OptionsFileParser).to receive(:parse_options_file).and_return(opt_file)
|
156
|
-
allow(
|
156
|
+
allow(parser).to receive(:parse_hosts_options).and_return(host_file)
|
157
157
|
end
|
158
158
|
|
159
159
|
it 'presets have the lowest priority' do
|
@@ -221,6 +221,98 @@ module Beaker
|
|
221
221
|
|
222
222
|
end
|
223
223
|
|
224
|
+
describe '#parse_hosts_options' do
|
225
|
+
|
226
|
+
context 'Hosts file exists' do
|
227
|
+
before :each do
|
228
|
+
allow(File).to receive(:exists?).and_return(true)
|
229
|
+
end
|
230
|
+
|
231
|
+
it 'returns the parser\'s output' do
|
232
|
+
parser.instance_variable_set( :@options, {} )
|
233
|
+
test_value = 'blaqwetjijl,emikfuj1235'
|
234
|
+
allow( Beaker::Options::HostsFileParser ).to receive(
|
235
|
+
:parse_hosts_file
|
236
|
+
).and_return( test_value )
|
237
|
+
val1, _ = parser.parse_hosts_options
|
238
|
+
expect( val1 ).to be === test_value
|
239
|
+
end
|
240
|
+
end
|
241
|
+
|
242
|
+
context 'Hosts file does not exist' do
|
243
|
+
require 'beaker-hostgenerator'
|
244
|
+
before :each do
|
245
|
+
allow(File).to receive(:exists?).and_return(false)
|
246
|
+
end
|
247
|
+
|
248
|
+
it 'calls beaker-hostgenerator to get hosts information' do
|
249
|
+
parser.instance_variable_set( :@options, {} )
|
250
|
+
allow( Beaker::Options::HostsFileParser ).to receive(
|
251
|
+
:parse_hosts_file
|
252
|
+
).and_raise( Errno::ENOENT )
|
253
|
+
|
254
|
+
mock_beaker_hostgenerator_cli = Object.new
|
255
|
+
cli_execute_return = 'job150865'
|
256
|
+
expect( mock_beaker_hostgenerator_cli ).to receive(
|
257
|
+
:execute
|
258
|
+
).and_return( cli_execute_return )
|
259
|
+
expect( BeakerHostGenerator::CLI ).to receive(
|
260
|
+
:new
|
261
|
+
).and_return( mock_beaker_hostgenerator_cli )
|
262
|
+
allow( Beaker::Options::HostsFileParser ).to receive(
|
263
|
+
:parse_hosts_string
|
264
|
+
).with( cli_execute_return )
|
265
|
+
parser.parse_hosts_options
|
266
|
+
end
|
267
|
+
|
268
|
+
it 'sets the :hosts_file_generated flag to signal others when needed' do
|
269
|
+
options_test = {}
|
270
|
+
parser.instance_variable_set( :@options, options_test )
|
271
|
+
allow( Beaker::Options::HostsFileParser ).to receive(
|
272
|
+
:parse_hosts_file
|
273
|
+
).and_raise( Errno::ENOENT )
|
274
|
+
|
275
|
+
mock_beaker_hostgenerator_cli = Object.new
|
276
|
+
allow( mock_beaker_hostgenerator_cli ).to receive( :execute )
|
277
|
+
allow( BeakerHostGenerator::CLI ).to receive(
|
278
|
+
:new
|
279
|
+
).and_return( mock_beaker_hostgenerator_cli )
|
280
|
+
allow( Beaker::Options::HostsFileParser ).to receive( :parse_hosts_string )
|
281
|
+
parser.parse_hosts_options
|
282
|
+
|
283
|
+
expect( options_test[:hosts_file_generated] ).to be true
|
284
|
+
end
|
285
|
+
|
286
|
+
it 'beaker-hostgenerator failures trigger nice prints & a rethrow' do
|
287
|
+
options_test = {}
|
288
|
+
parser.instance_variable_set( :@options, options_test )
|
289
|
+
allow( Beaker::Options::HostsFileParser ).to receive(
|
290
|
+
:parse_hosts_file
|
291
|
+
).and_raise( Errno::ENOENT )
|
292
|
+
|
293
|
+
mock_beaker_hostgenerator_cli = Object.new
|
294
|
+
expect( BeakerHostGenerator::CLI ).to receive(
|
295
|
+
:new
|
296
|
+
).and_return( mock_beaker_hostgenerator_cli )
|
297
|
+
expect( mock_beaker_hostgenerator_cli ).to receive(
|
298
|
+
:execute
|
299
|
+
).and_raise( BeakerHostGenerator::Exceptions::InvalidNodeSpecError )
|
300
|
+
expect( Beaker::Options::HostsFileParser ).not_to receive( :parse_hosts_string )
|
301
|
+
expect( $stdout ).to receive( :puts ).with(
|
302
|
+
/does not exist/
|
303
|
+
).ordered
|
304
|
+
expect( $stderr ).to receive( :puts ).with(
|
305
|
+
/Exiting with an Error/
|
306
|
+
).ordered
|
307
|
+
|
308
|
+
expect {
|
309
|
+
parser.parse_hosts_options
|
310
|
+
}.to raise_error( BeakerHostGenerator::Exceptions::InvalidNodeSpecError )
|
311
|
+
end
|
312
|
+
end
|
313
|
+
|
314
|
+
end
|
315
|
+
|
224
316
|
context "set_default_host!" do
|
225
317
|
|
226
318
|
let(:roles) { @roles || [["master", "agent", "database"], ["agent"]] }
|
data/spec/helpers.rb
CHANGED
@@ -26,7 +26,6 @@ end
|
|
26
26
|
|
27
27
|
module HostHelpers
|
28
28
|
HOST_DEFAULTS = { :platform => 'unix',
|
29
|
-
:snapshot => 'pe',
|
30
29
|
:roles => ['agent'],
|
31
30
|
:snapshot => 'snap',
|
32
31
|
:ip => 'default.ip.address',
|
@@ -34,6 +33,9 @@ module HostHelpers
|
|
34
33
|
:dns_name => 'default.box.tld',
|
35
34
|
:box => 'default_box_name',
|
36
35
|
:box_url => 'http://default.box.url',
|
36
|
+
:image => 'default_image',
|
37
|
+
:flavor => 'm1.large',
|
38
|
+
:user_data => '#cloud-config\nmanage_etc_hosts: true\nfinal_message: "The host is finally up!"'
|
37
39
|
}
|
38
40
|
|
39
41
|
HOST_NAME = "vm%d"
|
@@ -61,7 +63,13 @@ module HostHelpers
|
|
61
63
|
:gce_project => 'beaker-compute',
|
62
64
|
:gce_keyfile => '/path/to/keyfile.p12',
|
63
65
|
:gce_password => 'notasecret',
|
64
|
-
:gce_email => '12345678910@developer.gserviceaccount.com'
|
66
|
+
:gce_email => '12345678910@developer.gserviceaccount.com',
|
67
|
+
:openstack_api_key => "P1as$w0rd",
|
68
|
+
:openstack_username => "user",
|
69
|
+
:openstack_auth_url => "http://openstack_hypervisor.labs.net:5000/v2.0/tokens",
|
70
|
+
:openstack_tenant => "testing",
|
71
|
+
:openstack_network => "testing",
|
72
|
+
:openstack_keyname => "nopass" } )
|
65
73
|
end
|
66
74
|
|
67
75
|
def generate_result (name, opts )
|
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.45.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppetlabs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-06-
|
11
|
+
date: 2016-06-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -573,6 +573,7 @@ files:
|
|
573
573
|
- acceptance/tests/load_path_bootstrap.rb
|
574
574
|
- acceptance/tests/puppet/README.md
|
575
575
|
- acceptance/tests/puppet/install_smoke_test.rb
|
576
|
+
- acceptance/tests/puppet/web_helpers_test.rb
|
576
577
|
- acceptance/tests/puppet/with_puppet_running_on.rb
|
577
578
|
- beaker.gemspec
|
578
579
|
- bin/beaker
|
@@ -588,7 +589,6 @@ files:
|
|
588
589
|
- docs/How-To-Use-User-Password-Authentication-with-Beaker.md
|
589
590
|
- docs/How-to-Write-a-Beaker-Test-for-a-Module.md
|
590
591
|
- docs/Lets-Write-a-Test.md
|
591
|
-
- docs/Overview.md
|
592
592
|
- docs/README.md
|
593
593
|
- docs/Roles-What-Are-They.md
|
594
594
|
- docs/Shared-Options-for-Executing-Beaker-Commands.md
|
@@ -601,6 +601,7 @@ files:
|
|
601
601
|
- docs/hosts/README.md
|
602
602
|
- docs/hosts/cisco.md
|
603
603
|
- docs/hosts/eos.md
|
604
|
+
- docs/how_to/change_terminal_output_coloring.md
|
604
605
|
- docs/hypervisors/README.md
|
605
606
|
- docs/hypervisors/aws.md
|
606
607
|
- docs/hypervisors/docker.md
|
@@ -614,6 +615,7 @@ files:
|
|
614
615
|
- docs/hypervisors/vsphere.md
|
615
616
|
- docs/meta/README.md
|
616
617
|
- docs/meta/ticket_process.md
|
618
|
+
- docs/runner/test_run.md
|
617
619
|
- docs/runner/test_suites.md
|
618
620
|
- ext/completion/beaker-completion.bash
|
619
621
|
- lib/beaker.rb
|
@@ -774,6 +776,7 @@ files:
|
|
774
776
|
- spec/beaker/hypervisor/fusion_spec.rb
|
775
777
|
- spec/beaker/hypervisor/hypervisor_spec.rb
|
776
778
|
- spec/beaker/hypervisor/hypervisor_spec.rb.orig
|
779
|
+
- spec/beaker/hypervisor/openstack_spec.rb
|
777
780
|
- spec/beaker/hypervisor/solaris_spec.rb
|
778
781
|
- spec/beaker/hypervisor/vagrant_fusion_spec.rb
|
779
782
|
- spec/beaker/hypervisor/vagrant_libvirt_spec.rb
|
data/docs/Overview.md
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
Beaker is an acceptance testing harness for Puppet PE and other Puppet Projects. It can also be used as a virtual machine provisioner - setting up machines, running any configuration on those machines and then exiting.
|
2
|
-
|
3
|
-
Beaker goes through several phases when running tests
|
4
|
-
|
5
|
-
* Provisioning
|
6
|
-
* skip with `--no-provision`
|
7
|
-
* Using supported hypervisors provision SUTs for testing on
|
8
|
-
* Do any initial configuration to ensure that the SUTs can communicate with beaker and each other
|
9
|
-
* Validation
|
10
|
-
* skip with `--no-validate`
|
11
|
-
* Check the SUTs for necessary packages (curl, ntpdate)
|
12
|
-
* Configuration
|
13
|
-
* skip with `--no-configure`
|
14
|
-
* Do any post-provisioning configuration to the test nodes
|
15
|
-
* Testing
|
16
|
-
* Pre-Suite
|
17
|
-
* use `--pre-suite`
|
18
|
-
* Run any test files defined as part of the `--pre-suite` command line option
|
19
|
-
* Tests
|
20
|
-
* use `--tests`
|
21
|
-
* Run any test files defined as part of the `--tests` command line option
|
22
|
-
* Post-Suite
|
23
|
-
* use `--post-suite`
|
24
|
-
* Run any test files defined as part of the `--post-suite` command line option
|
25
|
-
* Reverting
|
26
|
-
* Skip with `--preserve-hosts`
|
27
|
-
* Destroy and cleanup all SUTs
|
28
|
-
* Cleanup
|
29
|
-
* Report test results
|
30
|
-
|
31
|
-
Beaker runs tests written in Ruby with an additional DSL API. This gives you access to all standard Ruby along with acceptance testing specific commands.
|