Sha256: 81b397e62a710122e454683301577bbdf0221ec58e2fdee6b083b581ada10443

Contents?: true

Size: 1.76 KB

Versions: 168

Compression:

Stored size: 1.76 KB

Contents

require 'spec_helper'

require 'puppet_spec/files'

describe Puppet::Type.type(:exec), unless: Puppet::Util::Platform.jruby? do
  include PuppetSpec::Files

  let(:catalog) { Puppet::Resource::Catalog.new }
  let(:path) { tmpfile('exec_provider') }
  let(:command) { "ruby -e 'File.open(\"#{path}\", \"w\") { |f| f.print \"foo\" }'" }

  before :each do
    catalog.host_config = false
  end

  it "should execute the command" do
    exec = described_class.new :command => command, :path => ENV['PATH']

    catalog.add_resource exec
    catalog.apply

    expect(File.read(path)).to eq('foo')
  end

  it "should not execute the command if onlyif returns non-zero" do
    exec = described_class.new(
      :command => command,
      :onlyif => "ruby -e 'exit 44'",
      :path => ENV['PATH']
    )

    catalog.add_resource exec
    catalog.apply

    expect(Puppet::FileSystem.exist?(path)).to be_falsey
  end

  it "should execute the command if onlyif returns zero" do
    exec = described_class.new(
      :command => command,
      :onlyif => "ruby -e 'exit 0'",
      :path => ENV['PATH']
    )

    catalog.add_resource exec
    catalog.apply

    expect(File.read(path)).to eq('foo')
  end

  it "should execute the command if unless returns non-zero" do
    exec = described_class.new(
      :command => command,
      :unless => "ruby -e 'exit 45'",
      :path => ENV['PATH']
    )

    catalog.add_resource exec
    catalog.apply

    expect(File.read(path)).to eq('foo')
  end

  it "should not execute the command if unless returns zero" do
    exec = described_class.new(
      :command => command,
      :unless => "ruby -e 'exit 0'",
      :path => ENV['PATH']
    )

    catalog.add_resource exec
    catalog.apply

    expect(Puppet::FileSystem.exist?(path)).to be_falsey
  end
end

Version data entries

168 entries across 168 versions & 1 rubygems

Version Path
puppet-6.23.0 spec/integration/type/exec_spec.rb
puppet-6.23.0-x86-mingw32 spec/integration/type/exec_spec.rb
puppet-6.23.0-x64-mingw32 spec/integration/type/exec_spec.rb
puppet-6.23.0-universal-darwin spec/integration/type/exec_spec.rb
puppet-7.8.0 spec/integration/type/exec_spec.rb
puppet-7.8.0-x86-mingw32 spec/integration/type/exec_spec.rb
puppet-7.8.0-x64-mingw32 spec/integration/type/exec_spec.rb
puppet-7.8.0-universal-darwin spec/integration/type/exec_spec.rb
puppet-7.7.0 spec/integration/type/exec_spec.rb
puppet-7.7.0-x86-mingw32 spec/integration/type/exec_spec.rb
puppet-7.7.0-x64-mingw32 spec/integration/type/exec_spec.rb
puppet-7.7.0-universal-darwin spec/integration/type/exec_spec.rb
puppet-6.22.1 spec/integration/type/exec_spec.rb
puppet-6.22.1-x86-mingw32 spec/integration/type/exec_spec.rb
puppet-6.22.1-x64-mingw32 spec/integration/type/exec_spec.rb
puppet-6.22.1-universal-darwin spec/integration/type/exec_spec.rb
puppet-7.6.1 spec/integration/type/exec_spec.rb
puppet-7.6.1-x86-mingw32 spec/integration/type/exec_spec.rb
puppet-7.6.1-x64-mingw32 spec/integration/type/exec_spec.rb
puppet-7.6.1-universal-darwin spec/integration/type/exec_spec.rb