Sha256: d14dd32422f9c66527f72c1b1811d1a5b348a6e3fdc76583e396b886ae1818f7

Contents?: true

Size: 1.81 KB

Versions: 8

Compression:

Stored size: 1.81 KB

Contents

test_name "DSL::Structure::PlatformTagConfiner" do
  pstc_method_name = "#platform_specific_tag_confines"
  step "#{pstc_method_name} doesn't change hosts if there are no tags" do
    previous_hosts = hosts.dup

    platform_specific_tag_confines

    assert_equal previous_hosts, hosts, "#{pstc_method_name} changed the hosts array"
    # cleanup
    options[:platform_tag_confines_object] = nil
    options[:platform_tag_confines] = nil
    @hosts = previous_hosts
  end

  step "#{pstc_method_name} can remove hosts from a test, or be skipped if empty" do
    assert hosts.length > 0, "#{pstc_method_name} did not have enough hosts to test"
    previous_hosts = hosts.dup

    options[:platform_tag_confines] = [
      :platform => /#{default[:platform]}/,
      :tag_reason_hash => {
        'tag1' => 'reason1',
      },
    ]

    begin
      tag('tag1')
    rescue Beaker::DSL::Outcomes::SkipTest => e
      fail "#{pstc_method_name} raised unexpected SkipTest exception: #{e}" unless /^No\ suitable\ hosts\ found/.match?(e.message)
    # SkipTest is raised in the case when there are no hosts leftover for a test
    # after confining. It's a very common acceptance test case where all of the
    # hosts involved are of the same platform, and are thus all confined
    # away by the code being run here. In this case, the hosts object will not
    # be altered, but should be considered a pass, since the fact that SkipTest
    # is being raised confirms that a lower number of hosts are coming out of
    # the confine (0) than came in (>0, according to our pre-condition assertion)
    else
      assert hosts.length < previous_hosts.length, "#{pstc_method_name} did not change hosts array"
    end

    # cleanup
    options[:platform_tag_confines_object] = nil
    options[:platform_tag_confines] = nil
    @hosts = previous_hosts
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
beaker-5.6.0 acceptance/tests/base/dsl/platform_tag_confiner_test.rb
beaker-5.5.0 acceptance/tests/base/dsl/platform_tag_confiner_test.rb
beaker-5.4.0 acceptance/tests/base/dsl/platform_tag_confiner_test.rb
beaker-5.3.1 acceptance/tests/base/dsl/platform_tag_confiner_test.rb
beaker-5.3.0 acceptance/tests/base/dsl/platform_tag_confiner_test.rb
beaker-5.2.0 acceptance/tests/base/dsl/platform_tag_confiner_test.rb
beaker-5.1.0 acceptance/tests/base/dsl/platform_tag_confiner_test.rb
beaker-5.0.0 acceptance/tests/base/dsl/platform_tag_confiner_test.rb