beaker 1.21.0 → 2.0.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 (103) hide show
  1. checksums.yaml +8 -8
  2. data/.gitignore +1 -0
  3. data/.rspec +1 -0
  4. data/CONTRIBUTING.md +1 -0
  5. data/HISTORY.md +17288 -2
  6. data/Rakefile +6 -2
  7. data/beaker.gemspec +15 -19
  8. data/lib/beaker.rb +2 -5
  9. data/lib/beaker/answers.rb +2 -0
  10. data/lib/beaker/answers/version34.rb +37 -1
  11. data/lib/beaker/cli.rb +4 -0
  12. data/lib/beaker/command.rb +16 -84
  13. data/lib/beaker/command_factory.rb +13 -2
  14. data/lib/beaker/dsl/assertions.rb +25 -2
  15. data/lib/beaker/dsl/ezbake_utils.rb +2 -2
  16. data/lib/beaker/dsl/helpers.rb +66 -12
  17. data/lib/beaker/dsl/install_utils.rb +128 -66
  18. data/lib/beaker/dsl/wrappers.rb +41 -3
  19. data/lib/beaker/host.rb +42 -6
  20. data/lib/beaker/host/mac.rb +62 -0
  21. data/lib/beaker/host/mac/group.rb +96 -0
  22. data/lib/beaker/host/mac/user.rb +93 -0
  23. data/lib/beaker/host/unix/exec.rb +1 -1
  24. data/lib/beaker/host/unix/pkg.rb +11 -11
  25. data/lib/beaker/host/windows.rb +4 -4
  26. data/lib/beaker/host_prebuilt_steps.rb +194 -58
  27. data/lib/beaker/hypervisor.rb +16 -9
  28. data/lib/beaker/hypervisor/aws_sdk.rb +61 -17
  29. data/lib/beaker/hypervisor/docker.rb +14 -2
  30. data/lib/beaker/hypervisor/ec2_helper.rb +15 -3
  31. data/lib/beaker/hypervisor/vagrant.rb +22 -10
  32. data/lib/beaker/hypervisor/vagrant_libvirt.rb +11 -0
  33. data/lib/beaker/hypervisor/vagrant_virtualbox.rb +1 -1
  34. data/lib/beaker/hypervisor/vcloud_pooled.rb +8 -39
  35. data/lib/beaker/logger.rb +15 -9
  36. data/lib/beaker/network_manager.rb +2 -2
  37. data/lib/beaker/options/command_line_parser.rb +1 -1
  38. data/lib/beaker/options/parser.rb +1 -8
  39. data/lib/beaker/options/presets.rb +70 -45
  40. data/lib/beaker/perf.rb +3 -4
  41. data/lib/beaker/platform.rb +2 -1
  42. data/lib/beaker/result.rb +3 -9
  43. data/lib/beaker/ssh_connection.rb +2 -0
  44. data/lib/beaker/test_case.rb +2 -21
  45. data/lib/beaker/test_suite.rb +21 -25
  46. data/lib/beaker/version.rb +1 -1
  47. data/spec/beaker/answers_spec.rb +36 -0
  48. data/spec/beaker/cli_spec.rb +45 -45
  49. data/spec/beaker/command_spec.rb +25 -36
  50. data/spec/beaker/dsl/assertions_spec.rb +20 -27
  51. data/spec/beaker/dsl/ezbake_utils_spec.rb +5 -5
  52. data/spec/beaker/dsl/helpers_spec.rb +293 -208
  53. data/spec/beaker/dsl/install_utils_spec.rb +310 -189
  54. data/spec/beaker/dsl/outcomes_spec.rb +6 -6
  55. data/spec/beaker/dsl/roles_spec.rb +27 -18
  56. data/spec/beaker/dsl/structure_spec.rb +11 -11
  57. data/spec/beaker/dsl/wrappers_spec.rb +35 -11
  58. data/spec/beaker/host/mac/group_spec.rb +124 -0
  59. data/spec/beaker/host/mac/user_spec.rb +134 -0
  60. data/spec/beaker/host/unix/pkg_spec.rb +40 -24
  61. data/spec/beaker/host/windows/group_spec.rb +1 -1
  62. data/spec/beaker/host_prebuilt_steps_spec.rb +194 -68
  63. data/spec/beaker/host_spec.rb +145 -67
  64. data/spec/beaker/hypervisor/aixer_spec.rb +6 -6
  65. data/spec/beaker/hypervisor/aws_sdk_spec.rb +22 -7
  66. data/spec/beaker/hypervisor/docker_spec.rb +71 -50
  67. data/spec/beaker/hypervisor/ec2_helper_spec.rb +25 -4
  68. data/spec/beaker/hypervisor/fusion_spec.rb +2 -2
  69. data/spec/beaker/hypervisor/hypervisor_spec.rb +20 -27
  70. data/spec/beaker/hypervisor/hypervisor_spec.rb.orig +80 -0
  71. data/spec/beaker/hypervisor/solaris_spec.rb +8 -8
  72. data/spec/beaker/hypervisor/vagrant_fusion_spec.rb +6 -8
  73. data/spec/beaker/hypervisor/vagrant_libvirt_spec.rb +34 -0
  74. data/spec/beaker/hypervisor/vagrant_spec.rb +34 -33
  75. data/spec/beaker/hypervisor/vagrant_virtualbox_spec.rb +18 -8
  76. data/spec/beaker/hypervisor/vagrant_workstation_spec.rb +6 -8
  77. data/spec/beaker/hypervisor/vcloud_pooled_spec.rb +8 -8
  78. data/spec/beaker/hypervisor/vcloud_spec.rb +10 -10
  79. data/spec/beaker/hypervisor/vsphere_helper_spec.rb +8 -8
  80. data/spec/beaker/hypervisor/vsphere_spec.rb +1 -1
  81. data/spec/beaker/logger_spec.rb +45 -31
  82. data/spec/beaker/options/command_line_parser_spec.rb +10 -2
  83. data/spec/beaker/options/hosts_file_parser_spec.rb +9 -2
  84. data/spec/beaker/options/options_hash_spec.rb +2 -2
  85. data/spec/beaker/options/parser_spec.rb +2 -2
  86. data/spec/beaker/options/pe_version_scaper_spec.rb +6 -1
  87. data/spec/beaker/options/presets_spec.rb +11 -1
  88. data/spec/beaker/shared/error_handler_spec.rb +5 -5
  89. data/spec/beaker/shared/host_manager_spec.rb +3 -2
  90. data/spec/beaker/shared/repetition_spec.rb +18 -18
  91. data/spec/beaker/ssh_connection_spec.rb +33 -4
  92. data/spec/beaker/test_case_spec.rb +9 -9
  93. data/spec/beaker/test_suite_spec.rb +14 -14
  94. data/spec/helpers.rb +4 -4
  95. data/spec/matchers.rb +4 -4
  96. data/spec/mocks.rb +5 -1
  97. data/spec/spec_helper.rb +2 -8
  98. metadata +114 -80
  99. data/lib/beaker/hypervisor/blimper.rb +0 -108
  100. data/spec/beaker/hypervisor/blimper_spec.rb +0 -42
  101. data/spec/beaker/options/data/LATEST +0 -1
  102. data/spec/beaker/puppet_command_spec.rb +0 -161
  103. data/spec/mock_blimpy.rb +0 -48
@@ -4,8 +4,8 @@ module Beaker
4
4
 
5
5
  PERF_PACKAGES = ['sysstat']
6
6
  # SLES does not treat sysstat as a service that can be started
7
- PERF_SUPPORTED_PLATFORMS = /debian|ubuntu|redhat|centos|oracle|scientific|fedora|el|sles/
8
- PERF_START_PLATFORMS = /debian|ubuntu|redhat|centos|oracle|scientific|fedora|el/
7
+ PERF_SUPPORTED_PLATFORMS = /debian|ubuntu|redhat|centos|oracle|scientific|fedora|el|eos|cumulus|sles/
8
+ PERF_START_PLATFORMS = /debian|ubuntu|redhat|centos|oracle|scientific|fedora|el|eos|cumulus/
9
9
 
10
10
  # Create the Perf instance and runs setup_perf_on_host on all hosts if --collect-perf-data
11
11
  # was used as an option on the Baker command line invocation. Instances of this class do not
@@ -39,7 +39,7 @@ module Beaker
39
39
  @logger.perf_output("Perf (sysstat) not supported on host: " + host)
40
40
  end
41
41
 
42
- if host['platform'] =~ /debian|ubuntu/
42
+ if host['platform'] =~ /debian|ubuntu|cumulus/
43
43
  @logger.perf_output("Modify /etc/default/sysstat on Debian and Ubuntu platforms")
44
44
  host.exec(Command.new('sed -i s/ENABLED=\"false\"/ENABLED=\"true\"/ /etc/default/sysstat'))
45
45
  elsif host['platform'] =~ /sles/
@@ -52,7 +52,6 @@ module Beaker
52
52
  end
53
53
 
54
54
  # Iterate over all hosts, calling get_perf_data
55
- # @param [void]
56
55
  # @return [void]
57
56
  def print_perf_info()
58
57
  @perf_end_timestamp = Time.now
@@ -3,7 +3,7 @@ module Beaker
3
3
  # all String methods while adding several platform-specific use cases.
4
4
  class Platform < String
5
5
  # Supported platforms
6
- PLATFORMS = /^(osx|centos|fedora|debian|oracle|redhat|scientific|sles|ubuntu|windows|solaris|aix|el)\-.+\-.+$/
6
+ PLATFORMS = /^(osx|centos|fedora|debian|oracle|redhat|scientific|sles|ubuntu|windows|solaris|aix|el|eos|cumulus)\-.+\-.+$/
7
7
 
8
8
  # Platform version numbers vs. codenames conversion hash
9
9
  PLATFORM_VERSION_CODES =
@@ -48,6 +48,7 @@ module Beaker
48
48
  # * solaris
49
49
  # * aix
50
50
  # * el
51
+ # * cumulus
51
52
  def initialize(name)
52
53
  if name !~ PLATFORMS
53
54
  raise ArgumentError, "Unsupported platform name #{name}"
@@ -31,15 +31,9 @@ module Beaker
31
31
  end
32
32
 
33
33
  def convert string
34
- if string.respond_to?( :force_encoding )
35
- # We're running in >= 1.9 and we'll need to convert
36
- # Remove invalid and undefined UTF-8 character encodings
37
- string.force_encoding('UTF-8')
38
- return string.chars.select{|i| i.valid_encoding?}.join
39
- else
40
- # We're running in < 1.9 and Ruby doesn't care
41
- return string
42
- end
34
+ # Remove invalid and undefined UTF-8 character encodings
35
+ string.force_encoding('UTF-8')
36
+ string.chars.select{|i| i.valid_encoding?}.join
43
37
  end
44
38
 
45
39
  def log(logger)
@@ -25,6 +25,7 @@ module Beaker
25
25
  @user = user
26
26
  @ssh_opts = ssh_opts
27
27
  @logger = options[:logger]
28
+ @options = options
28
29
  end
29
30
 
30
31
  def self.connect hostname, user = 'root', ssh_opts = {}, options = {}
@@ -57,6 +58,7 @@ module Beaker
57
58
  self
58
59
  end
59
60
 
61
+ # closes this SshConnection
60
62
  def close
61
63
  begin
62
64
  @ssh.close if @ssh
@@ -6,18 +6,6 @@ require 'tempfile'
6
6
  require 'benchmark'
7
7
  require 'stringio'
8
8
  require 'rbconfig'
9
- #include test/unit, but do not allow it to autorun on exit
10
- require 'test/unit'
11
- if defined?(Test::Unit::AutoRunner.need_auto_run?)
12
- # For test-unit gem >= 2.4.9
13
- Test::Unit::AutoRunner.need_auto_run = false
14
- elsif defined?(Test::Unit.run?)
15
- # For test-unit gem < 2.4.9
16
- Test::Unit.run = true
17
- elsif defined?(Test::Unit::Runner)
18
- # For test/unit bundled in Ruby >= 1.9.3
19
- Test::Unit::Runner.module_eval("@@stop_auto_run = true")
20
- end
21
9
 
22
10
  module Beaker
23
11
  # This class represents a single test case. A test case is necessarily
@@ -33,15 +21,8 @@ module Beaker
33
21
  class TestCase
34
22
  include Beaker::DSL
35
23
 
36
- rb_config_class = defined?(RbConfig) ? RbConfig : Config
37
- if rb_config_class::CONFIG['MAJOR'].to_i == 1 &&
38
- rb_config_class::CONFIG['MINOR'].to_i == 8 then
39
- # The Exception raised by Ruby's STDLIB's test framework (Ruby 1.8)
40
- TEST_EXCEPTION_CLASS = Test::Unit::AssertionFailedError
41
- else
42
- # The Exception raised by Ruby's STDLIB's test framework (Ruby 1.9)
43
- TEST_EXCEPTION_CLASS = ::MiniTest::Assertion
44
- end
24
+ # The Exception raised by Ruby's STDLIB's test framework (Ruby 1.9)
25
+ TEST_EXCEPTION_CLASS = ::MiniTest::Assertion
45
26
 
46
27
  # Necessary for implementing {Beaker::DSL::Helpers#confine}.
47
28
  # Assumed to be an array of valid {Beaker::Host} objects for
@@ -341,7 +341,7 @@ module Beaker
341
341
  start_time = Time.now
342
342
 
343
343
  #Create a run log for this TestSuite.
344
- run_log = log_path(@timestamp, "#{@name}-run.log", @options[:log_dir])
344
+ run_log = log_path("#{@name}-run.log", @options[:log_dated_dir])
345
345
  @logger.add_destination(run_log)
346
346
 
347
347
  # This is an awful hack to maintain backward compatibility until tests
@@ -379,8 +379,8 @@ module Beaker
379
379
  # REVISIT: This changes global state, breaking logging in any future runs
380
380
  # of the suite – or, at least, making them highly confusing for anyone who
381
381
  # has not studied the implementation in detail. --daniel 2011-03-14
382
- @test_suite_results.summarize( Logger.new(log_path(@timestamp, "#{name}-summary.txt", @options[:log_dir]), STDOUT) )
383
- @test_suite_results.write_junit_xml( log_path(@timestamp, @options[:xml_file], @options[:xml_dir]), File.join(@options[:project_root], @options[:xml_stylesheet]) )
382
+ @test_suite_results.summarize( Logger.new(log_path("#{name}-summary.txt", @options[:log_dated_dir]), STDOUT) )
383
+ @test_suite_results.write_junit_xml( log_path(@options[:xml_file], @options[:xml_dated_dir]), File.join(@options[:project_root], @options[:xml_stylesheet]) )
384
384
 
385
385
  #All done with this run, remove run log
386
386
  @logger.remove_destination(run_log)
@@ -404,32 +404,28 @@ module Beaker
404
404
  end
405
405
  end
406
406
 
407
- #Create a full file path for output to be written to, using the provided timestamp, name and output directory.
408
- #@param [Time] timestamp The time that we are making this path with
409
- #@param [String] name The file name that we want to write to.
410
- #@param [String] basedir The desired output directory. A subdirectory tagged with the time will be created which will contain
411
- # the output file (./basedir/timestamp/).
412
- # A symlink will be made from that to ./basedir/timestamp/latest.
413
- #@example
414
- # log_path('2014-06-02 16:31:22 -0700','output.txt', 'log')
407
+ # Gives a full file path for output to be written to, maintaining the latest symlink
408
+ # @param [String] name The file name that we want to write to.
409
+ # @param [String] log_dir The desired output directory.
410
+ # A symlink will be made from ./parentdir/latest to that.
411
+ # @example
412
+ # log_path('output.txt', 'log/2014-06-02_16_31_22')
415
413
  #
416
- # This will create the structure:
414
+ # This will create the structure:
417
415
  #
418
- # ./log/2014-06-02_16_31_22/output.txt
419
- # ./log/latest -> 2014-06-02_16_31_22
420
- def log_path(timestamp, name, basedir)
421
- log_dir = File.join(basedir, timestamp.strftime("%F_%H_%M_%S"))
422
- unless File.directory?(log_dir) then
423
- FileUtils.mkdir_p(log_dir)
424
-
425
- latest = File.join(basedir, "latest")
426
- if !File.exist?(latest) or File.symlink?(latest) then
427
- File.delete(latest) if File.exist?(latest)
428
- File.symlink(File.basename(log_dir), latest)
429
- end
416
+ # ./log/2014-06-02_16_31_22/output.txt
417
+ # ./log/latest -> 2014-06-02_16_31_22
418
+ def log_path(name, log_dir)
419
+ log_parent_dir = File.dirname(log_dir)
420
+ FileUtils.mkdir_p(log_dir) unless File.directory?(log_dir)
421
+
422
+ latest = File.join(log_parent_dir, "latest")
423
+ if !File.exist?(latest) or File.symlink?(latest) then
424
+ File.delete(latest) if File.exist?(latest)
425
+ File.symlink(File.basename(log_dir), latest)
430
426
  end
431
427
 
432
- File.join(basedir, 'latest', name)
428
+ File.join(log_parent_dir, 'latest', name)
433
429
  end
434
430
 
435
431
  end
@@ -1,5 +1,5 @@
1
1
  module Beaker
2
2
  module Version
3
- STRING = '1.21.0'
3
+ STRING = '2.0.0'
4
4
  end
5
5
  end
@@ -65,6 +65,42 @@ module Beaker
65
65
  @answers = answers.answers
66
66
  end
67
67
 
68
+ it 'should add console services answers to dashboard answers' do
69
+ @ver = '3.4'
70
+ answers = @answers
71
+ expect( @answers['vm2'] ).to include :q_classifier_database_user => 'DFGhjlkj'
72
+ expect( @answers['vm2'] ).to include :q_classifier_database_name => 'pe-classifier'
73
+ expect( @answers['vm2'] ).to include :q_classifier_database_password => "'~!@\#$%^*-/ aZ'"
74
+ expect( @answers['vm2'] ).to include :q_activity_database_user => 'adsfglkj'
75
+ expect( @answers['vm2'] ).to include :q_activity_database_name => 'pe-activity'
76
+ expect( @answers['vm2'] ).to include :q_activity_database_password => "'~!@\#$%^*-/ aZ'"
77
+ expect( @answers['vm2'] ).to include :q_rbac_database_user => 'RbhNBklm'
78
+ expect( @answers['vm2'] ).to include :q_rbac_database_name => 'pe-rbac'
79
+ expect( @answers['vm2'] ).to include :q_rbac_database_password => "'~!@\#$%^*-/ aZ'"
80
+ end
81
+
82
+ it 'should add console services answers to database answers' do
83
+ @ver = '3.4'
84
+ answers = @answers
85
+ expect( @answers['vm3'] ).to include :q_classifier_database_user => 'DFGhjlkj'
86
+ expect( @answers['vm3'] ).to include :q_classifier_database_name => 'pe-classifier'
87
+ expect( @answers['vm3'] ).to include :q_classifier_database_password => "'~!@\#$%^*-/ aZ'"
88
+ expect( @answers['vm3'] ).to include :q_activity_database_user => 'adsfglkj'
89
+ expect( @answers['vm3'] ).to include :q_activity_database_name => 'pe-activity'
90
+ expect( @answers['vm3'] ).to include :q_activity_database_password => "'~!@\#$%^*-/ aZ'"
91
+ expect( @answers['vm3'] ).to include :q_rbac_database_user => 'RbhNBklm'
92
+ expect( @answers['vm3'] ).to include :q_rbac_database_name => 'pe-rbac'
93
+ expect( @answers['vm3'] ).to include :q_rbac_database_password => "'~!@\#$%^*-/ aZ'"
94
+ end
95
+
96
+ it 'should add answers to the host objects' do
97
+ @ver = '3.4'
98
+ answers = @answers
99
+ hosts.each do |host|
100
+ expect( host[:answers] ).to be === answers[host.name]
101
+ end
102
+ end
103
+
68
104
  it 'should add answers to the host objects' do
69
105
  hosts.each do |host|
70
106
  expect( host[:answers] ).to be === @answers[host.name]
@@ -1,12 +1,12 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  module Beaker
4
- describe CLI, :use_fakefs => true do
4
+ describe CLI do
5
5
  let(:cli) { Beaker::CLI.new }
6
6
 
7
7
  context 'execute!' do
8
8
  before :each do
9
- stub_const("Beaker::Logger", double().as_null_object )
9
+ stub_const("Beaker::Logger", double().as_null_object )
10
10
  File.open("sample.cfg", "w+") do |file|
11
11
  file.write("HOSTS:\n")
12
12
  file.write(" myhost:\n")
@@ -15,34 +15,34 @@ module Beaker
15
15
  file.write(" platform: ubuntu-x-x\n")
16
16
  file.write("CONFIG:\n")
17
17
  end
18
- cli.stub(:setup).and_return(true)
19
- cli.stub(:validate).and_return(true)
20
- cli.stub(:provision).and_return(true)
18
+ allow( cli ).to receive(:setup).and_return(true)
19
+ allow( cli ).to receive(:validate).and_return(true)
20
+ allow( cli ).to receive(:provision).and_return(true)
21
21
  end
22
22
 
23
23
  describe "test fail mode" do
24
24
  it 'continues testing after failed test if using slow fail_mode' do
25
- cli.stub(:run_suite).with(:pre_suite, :fast).and_return(true)
26
- cli.stub(:run_suite).with(:tests).and_throw("bad test")
27
- cli.stub(:run_suite).with(:post_suite).and_return(true)
25
+ allow( cli ).to receive(:run_suite).with(:pre_suite, :fast).and_return(true)
26
+ allow( cli ).to receive(:run_suite).with(:tests).and_throw("bad test")
27
+ allow( cli ).to receive(:run_suite).with(:post_suite).and_return(true)
28
28
  options = cli.instance_variable_get(:@options)
29
29
  options[:fail_mode] = 'slow'
30
30
  cli.instance_variable_set(:@options, options)
31
31
 
32
- cli.should_receive(:run_suite).exactly( 3 ).times
32
+ expect( cli ).to receive(:run_suite).exactly( 3 ).times
33
33
  expect{ cli.execute! }.to raise_error
34
34
 
35
35
  end
36
36
 
37
37
  it 'stops testing after failed test if using fast fail_mode' do
38
- cli.stub(:run_suite).with(:pre_suite, :fast).and_return(true)
39
- cli.stub(:run_suite).with(:tests).and_throw("bad test")
40
- cli.stub(:run_suite).with(:post_suite).and_return(true)
38
+ allow( cli ).to receive(:run_suite).with(:pre_suite, :fast).and_return(true)
39
+ allow( cli ).to receive(:run_suite).with(:tests).and_throw("bad test")
40
+ allow( cli ).to receive(:run_suite).with(:post_suite).and_return(true)
41
41
  options = cli.instance_variable_get(:@options)
42
42
  options[:fail_mode] = 'fast'
43
43
  cli.instance_variable_set(:@options, options)
44
44
 
45
- cli.should_receive(:run_suite).twice
45
+ expect( cli ).to receive(:run_suite).exactly( 2 ).times
46
46
  expect{ cli.execute! }.to raise_error
47
47
 
48
48
  end
@@ -50,9 +50,9 @@ module Beaker
50
50
 
51
51
  describe "SUT preserve mode" do
52
52
  it 'cleans up SUTs post testing if tests fail and preserve_hosts = never' do
53
- cli.stub(:run_suite).with(:pre_suite, :fast).and_return(true)
54
- cli.stub(:run_suite).with(:tests).and_throw("bad test")
55
- cli.stub(:run_suite).with(:post_suite).and_return(true)
53
+ allow( cli ).to receive(:run_suite).with(:pre_suite, :fast).and_return(true)
54
+ allow( cli ).to receive(:run_suite).with(:tests).and_throw("bad test")
55
+ allow( cli ).to receive(:run_suite).with(:post_suite).and_return(true)
56
56
  options = cli.instance_variable_get(:@options)
57
57
  options[:fail_mode] = 'fast'
58
58
  options[:preserve_hosts] = 'never'
@@ -60,16 +60,16 @@ module Beaker
60
60
 
61
61
  netmanager = double(:netmanager)
62
62
  cli.instance_variable_set(:@network_manager, netmanager)
63
- netmanager.should_receive(:cleanup).once
63
+ expect( netmanager ).to receive(:cleanup).once
64
64
 
65
65
  expect{ cli.execute! }.to raise_error
66
66
 
67
67
  end
68
68
 
69
69
  it 'cleans up SUTs post testing if no tests fail and preserve_hosts = never' do
70
- cli.stub(:run_suite).with(:pre_suite, :fast).and_return(true)
71
- cli.stub(:run_suite).with(:tests).and_return(true)
72
- cli.stub(:run_suite).with(:post_suite).and_return(true)
70
+ allow( cli ).to receive(:run_suite).with(:pre_suite, :fast).and_return(true)
71
+ allow( cli ).to receive(:run_suite).with(:tests).and_return(true)
72
+ allow( cli ).to receive(:run_suite).with(:post_suite).and_return(true)
73
73
  options = cli.instance_variable_get(:@options)
74
74
  options[:fail_mode] = 'fast'
75
75
  options[:preserve_hosts] = 'never'
@@ -77,7 +77,7 @@ module Beaker
77
77
 
78
78
  netmanager = double(:netmanager)
79
79
  cli.instance_variable_set(:@network_manager, netmanager)
80
- netmanager.should_receive(:cleanup).once
80
+ expect( netmanager ).to receive(:cleanup).once
81
81
 
82
82
  expect{ cli.execute! }.to_not raise_error
83
83
 
@@ -85,9 +85,9 @@ module Beaker
85
85
 
86
86
 
87
87
  it 'preserves SUTs post testing if no tests fail and preserve_hosts = always' do
88
- cli.stub(:run_suite).with(:pre_suite, :fast).and_return(true)
89
- cli.stub(:run_suite).with(:tests).and_return(true)
90
- cli.stub(:run_suite).with(:post_suite).and_return(true)
88
+ allow( cli ).to receive(:run_suite).with(:pre_suite, :fast).and_return(true)
89
+ allow( cli ).to receive(:run_suite).with(:tests).and_return(true)
90
+ allow( cli ).to receive(:run_suite).with(:post_suite).and_return(true)
91
91
  options = cli.instance_variable_get(:@options)
92
92
  options[:fail_mode] = 'fast'
93
93
  options[:preserve_hosts] = 'always'
@@ -95,16 +95,16 @@ module Beaker
95
95
 
96
96
  netmanager = double(:netmanager)
97
97
  cli.instance_variable_set(:@network_manager, netmanager)
98
- netmanager.should_receive(:cleanup).never
98
+ expect( netmanager ).to receive(:cleanup).never
99
99
 
100
100
  expect{ cli.execute! }.to_not raise_error
101
101
 
102
102
  end
103
103
 
104
104
  it 'preserves SUTs post testing if no tests fail and preserve_hosts = always' do
105
- cli.stub(:run_suite).with(:pre_suite, :fast).and_return(true)
106
- cli.stub(:run_suite).with(:tests).and_throw("bad test")
107
- cli.stub(:run_suite).with(:post_suite).and_return(true)
105
+ allow( cli ).to receive(:run_suite).with(:pre_suite, :fast).and_return(true)
106
+ allow( cli ).to receive(:run_suite).with(:tests).and_throw("bad test")
107
+ allow( cli ).to receive(:run_suite).with(:post_suite).and_return(true)
108
108
  options = cli.instance_variable_get(:@options)
109
109
  options[:fail_mode] = 'fast'
110
110
  options[:preserve_hosts] = 'always'
@@ -112,15 +112,15 @@ module Beaker
112
112
 
113
113
  netmanager = double(:netmanager)
114
114
  cli.instance_variable_set(:@network_manager, netmanager)
115
- netmanager.should_receive(:cleanup).never
115
+ expect( netmanager ).to receive(:cleanup).never
116
116
 
117
117
  expect{ cli.execute! }.to raise_error
118
118
  end
119
119
 
120
120
  it 'cleans up SUTs post testing if no tests fail and preserve_hosts = onfail' do
121
- cli.stub(:run_suite).with(:pre_suite, :fast).and_return(true)
122
- cli.stub(:run_suite).with(:tests).and_return(true)
123
- cli.stub(:run_suite).with(:post_suite).and_return(true)
121
+ allow( cli ).to receive(:run_suite).with(:pre_suite, :fast).and_return(true)
122
+ allow( cli ).to receive(:run_suite).with(:tests).and_return(true)
123
+ allow( cli ).to receive(:run_suite).with(:post_suite).and_return(true)
124
124
  options = cli.instance_variable_get(:@options)
125
125
  options[:fail_mode] = 'fast'
126
126
  options[:preserve_hosts] = 'onfail'
@@ -128,16 +128,16 @@ module Beaker
128
128
 
129
129
  netmanager = double(:netmanager)
130
130
  cli.instance_variable_set(:@network_manager, netmanager)
131
- netmanager.should_receive(:cleanup).once
131
+ expect( netmanager ).to receive(:cleanup).once
132
132
 
133
133
  expect{ cli.execute! }.to_not raise_error
134
134
 
135
135
  end
136
136
 
137
137
  it 'preserves SUTs post testing if tests fail and preserve_hosts = onfail' do
138
- cli.stub(:run_suite).with(:pre_suite, :fast).and_return(true)
139
- cli.stub(:run_suite).with(:tests).and_throw("bad test")
140
- cli.stub(:run_suite).with(:post_suite).and_return(true)
138
+ allow( cli ).to receive(:run_suite).with(:pre_suite, :fast).and_return(true)
139
+ allow( cli ).to receive(:run_suite).with(:tests).and_throw("bad test")
140
+ allow( cli ).to receive(:run_suite).with(:post_suite).and_return(true)
141
141
  options = cli.instance_variable_get(:@options)
142
142
  options[:fail_mode] = 'fast'
143
143
  options[:preserve_hosts] = 'onfail'
@@ -145,16 +145,16 @@ module Beaker
145
145
 
146
146
  netmanager = double(:netmanager)
147
147
  cli.instance_variable_set(:@network_manager, netmanager)
148
- netmanager.should_receive(:cleanup).never
148
+ expect( netmanager ).to receive(:cleanup).never
149
149
 
150
150
  expect{ cli.execute! }.to raise_error
151
151
 
152
152
  end
153
153
 
154
154
  it 'cleans up SUTs post testing if tests fail and preserve_hosts = onpass' do
155
- cli.stub(:run_suite).with(:pre_suite, :fast).and_return(true)
156
- cli.stub(:run_suite).with(:tests).and_throw("bad test")
157
- cli.stub(:run_suite).with(:post_suite).and_return(true)
155
+ allow( cli ).to receive(:run_suite).with(:pre_suite, :fast).and_return(true)
156
+ allow( cli ).to receive(:run_suite).with(:tests).and_throw("bad test")
157
+ allow( cli ).to receive(:run_suite).with(:post_suite).and_return(true)
158
158
  options = cli.instance_variable_get(:@options)
159
159
  options[:fail_mode] = 'fast'
160
160
  options[:preserve_hosts] = 'onpass'
@@ -162,16 +162,16 @@ module Beaker
162
162
 
163
163
  netmanager = double(:netmanager)
164
164
  cli.instance_variable_set(:@network_manager, netmanager)
165
- netmanager.should_receive(:cleanup).once
165
+ expect( netmanager ).to receive(:cleanup).once
166
166
 
167
167
  expect{ cli.execute! }.to raise_error
168
168
 
169
169
  end
170
170
 
171
171
  it 'preserves SUTs post testing if no tests fail and preserve_hosts = onpass' do
172
- cli.stub(:run_suite).with(:pre_suite, :fast).and_return(true)
173
- cli.stub(:run_suite).with(:tests).and_return(true)
174
- cli.stub(:run_suite).with(:post_suite).and_return(true)
172
+ allow( cli ).to receive(:run_suite).with(:pre_suite, :fast).and_return(true)
173
+ allow( cli ).to receive(:run_suite).with(:tests).and_return(true)
174
+ allow( cli ).to receive(:run_suite).with(:post_suite).and_return(true)
175
175
  options = cli.instance_variable_get(:@options)
176
176
  options[:fail_mode] = 'fast'
177
177
  options[:preserve_hosts] = 'onpass'
@@ -179,7 +179,7 @@ module Beaker
179
179
 
180
180
  netmanager = double(:netmanager)
181
181
  cli.instance_variable_set(:@network_manager, netmanager)
182
- netmanager.should_receive(:cleanup).never
182
+ expect( netmanager ).to receive(:cleanup).never
183
183
 
184
184
  expect{ cli.execute! }.to_not raise_error
185
185
  end