Sha256: 2fcc492f4b12261e9965e23d9d7230289524196206af9ee23624198720f5d3ad

Contents?: true

Size: 1.7 KB

Versions: 53

Compression:

Stored size: 1.7 KB

Contents

require 'spec_helper'
require 'puppet/face'
require 'puppet/file_serving/metadata'
require 'puppet/file_serving/content'
require 'puppet/indirector/memory'

module PuppetFaceIntegrationSpecs
describe "Puppet plugin face" do
  INDIRECTORS = [
    Puppet::Indirector::FileMetadata,
    Puppet::Indirector::FileContent,
  ]

  INDIRECTED_CLASSES = [
    Puppet::FileServing::Metadata,
    Puppet::FileServing::Content,
    Puppet::Node::Facts,
  ]

  INDIRECTORS.each do |indirector|
    class indirector::Memory < Puppet::Indirector::Memory
      def find(request)
        model.new('/dev/null', { 'type' => 'directory' })
      end
    end
  end

  before do
    FileUtils.mkdir(Puppet[:vardir])
    FileUtils.mkdir(File.join(Puppet[:vardir], 'lib'))
    FileUtils.mkdir(File.join(Puppet[:vardir], 'facts.d'))
    @termini_classes = {}
    INDIRECTED_CLASSES.each do |indirected|
      @termini_classes[indirected] = indirected.indirection.terminus_class
      indirected.indirection.terminus_class = :memory
    end
  end

  after do
    FileUtils.rmdir(File.join(Puppet[:vardir],'lib'))
    FileUtils.rmdir(File.join(Puppet[:vardir],'facts.d'))
    FileUtils.rmdir(Puppet[:vardir])
    INDIRECTED_CLASSES.each do |indirected|
      indirected.indirection.terminus_class = @termini_classes[indirected]
      indirected.indirection.termini.clear
    end
  end

  def init_cli_args_and_apply_app(args = ["download"])
    Puppet::Application.find(:plugin).new(stub('command_line', :subcommand_name => :plugin, :args => args))
  end

  it "processes a download request" do
    app = init_cli_args_and_apply_app
    expect do
      expect {
        app.run
      }.to exit_with(0)
    end.to have_printed(/No plugins downloaded/)
  end
end
end

Version data entries

53 entries across 53 versions & 1 rubygems

Version Path
puppet-3.8.7 spec/integration/faces/plugin_spec.rb
puppet-3.8.7-x86-mingw32 spec/integration/faces/plugin_spec.rb
puppet-3.8.7-x64-mingw32 spec/integration/faces/plugin_spec.rb
puppet-3.8.6 spec/integration/faces/plugin_spec.rb
puppet-3.8.6-x86-mingw32 spec/integration/faces/plugin_spec.rb
puppet-3.8.6-x64-mingw32 spec/integration/faces/plugin_spec.rb
puppet-3.8.5 spec/integration/faces/plugin_spec.rb
puppet-3.8.5-x86-mingw32 spec/integration/faces/plugin_spec.rb
puppet-3.8.5-x64-mingw32 spec/integration/faces/plugin_spec.rb
puppet-3.8.4 spec/integration/faces/plugin_spec.rb
puppet-3.8.4-x86-mingw32 spec/integration/faces/plugin_spec.rb
puppet-3.8.4-x64-mingw32 spec/integration/faces/plugin_spec.rb
puppet-3.8.3 spec/integration/faces/plugin_spec.rb
puppet-3.8.3-x86-mingw32 spec/integration/faces/plugin_spec.rb
puppet-3.8.3-x64-mingw32 spec/integration/faces/plugin_spec.rb
puppet-3.8.2 spec/integration/faces/plugin_spec.rb
puppet-3.8.2-x86-mingw32 spec/integration/faces/plugin_spec.rb
puppet-3.8.2-x64-mingw32 spec/integration/faces/plugin_spec.rb
puppet-3.8.1 spec/integration/faces/plugin_spec.rb
puppet-3.8.1-x86-mingw32 spec/integration/faces/plugin_spec.rb