Sha256: 3a05a4bb660cf2502d2b5f4cc1195f5475d3d0a5e9f21e7c3b9e92c0ed4f20da

Contents?: true

Size: 1.88 KB

Versions: 35

Compression:

Stored size: 1.88 KB

Contents

require 'puppettest/support/utils'
require 'fileutils'

module PuppetTest
  include PuppetTest::Support::Utils
  def assert_logged(level, regex, msg = nil)
    # Skip verifying logs that we're not supposed to send.
    return unless Puppet::Util::Log.sendlevel?(level)
    r = @logs.detect { |l| l.level == level and l.message =~ regex }
    @logs.clear
    assert(r, msg)
  end

  def assert_uid_gid(uid, gid, filename)
    flunk "Must be uid 0 to run these tests" unless Process.uid == 0

    fork do
      Puppet::Util::SUIDManager.gid = gid
      Puppet::Util::SUIDManager.uid = uid
      # FIXME: use the tempfile method from puppettest.rb
      system("mkfifo #{filename}")
      f = File.open(filename, "w")
      f << "#{Puppet::Util::SUIDManager.uid}\n#{Puppet::Util::SUIDManager.gid}\n"
      yield if block_given?
    end

    # avoid a race.
    true while !File.exists? filename

    f = File.open(filename, "r")

    a = f.readlines
    assert_equal(uid, a[0].chomp.to_i, "UID was incorrect")
    assert_equal(gid, a[1].chomp.to_i, "GID was incorrect")
    FileUtils.rm(filename)
  end

  def assert_events(events, *resources)
    trans = nil
    comp = nil
    msg = nil

    raise Puppet::DevError, "Incorrect call of assert_events" unless events.is_a? Array
    msg = resources.pop if resources[-1].is_a? String

    config = resources2catalog(*resources)
    transaction = Puppet::Transaction.new(config)

    transaction.evaluate
    newevents = transaction.events.
      reject { |e| ['failure', 'audit'].include? e.status }.
      collect { |e| e.name }

    assert_equal(events, newevents, "Incorrect evaluate #{msg} events")

    transaction
  end

  # A simpler method that just applies what we have.
  def assert_apply(*resources)
    config = resources2catalog(*resources)

    events = nil
    assert_nothing_raised("Failed to evaluate") {
      events = config.apply.events
    }
    events
  end
end

Version data entries

35 entries across 35 versions & 3 rubygems

Version Path
puppet-2.7.26 test/lib/puppettest/support/assertions.rb
puppet-2.7.25 test/lib/puppettest/support/assertions.rb
puppet-2.7.24 test/lib/puppettest/support/assertions.rb
puppet-2.7.23 test/lib/puppettest/support/assertions.rb
puppet-2.7.22 test/lib/puppettest/support/assertions.rb
puppet-2.7.21 test/lib/puppettest/support/assertions.rb
puppet-2.7.20 test/lib/puppettest/support/assertions.rb
puppet-2.7.20.rc1 test/lib/puppettest/support/assertions.rb
librarian-puppet-0.9.4 vendor/gems/ruby/1.8/gems/puppet-2.7.18/test/lib/puppettest/support/assertions.rb
puppet-2.7.19 test/lib/puppettest/support/assertions.rb
supply_drop-0.11.0 examples/vendored-puppet/vendor/puppet-2.7.8/test/lib/puppettest/support/assertions.rb
librarian-puppet-0.9.3 vendor/gems/ruby/1.8/gems/puppet-2.7.18/test/lib/puppettest/support/assertions.rb
supply_drop-0.10.2 examples/vendored-puppet/vendor/puppet-2.7.8/test/lib/puppettest/support/assertions.rb
puppet-2.7.18 test/lib/puppettest/support/assertions.rb
supply_drop-0.10.1 examples/vendored-puppet/vendor/puppet-2.7.8/test/lib/puppettest/support/assertions.rb
supply_drop-0.10.0 examples/vendored-puppet/vendor/puppet-2.7.8/test/lib/puppettest/support/assertions.rb
puppet-2.7.17 test/lib/puppettest/support/assertions.rb
puppet-2.7.16 test/lib/puppettest/support/assertions.rb
puppet-2.7.14 test/lib/puppettest/support/assertions.rb
puppet-2.7.13 test/lib/puppettest/support/assertions.rb