This commit is contained in:
Tim Sharpe 2011-08-04 14:46:47 -07:00
parent 1c794fc8b8
commit cc385e3e28
6 changed files with 36 additions and 7 deletions

View File

@ -30,8 +30,9 @@ module RSpec::Puppet
nodename = self.respond_to?(:node) ? node : Puppet[:certname]
facts_val = self.respond_to?(:facts) ? facts : {}
additional_resources = self.respond_to?(:virtual_resources) ? virtual_resources : []
build_catalog(nodename, facts_val)
build_catalog(nodename, facts_val, additional_resources)
end
end
end

View File

@ -37,8 +37,9 @@ module RSpec::Puppet
'fqdn' => nodename,
}
facts_val.merge!(facts) if self.respond_to?(:facts)
additional_resources = self.respond_to?(:virtual_resources) ? virtual_resources : []
build_catalog(nodename, facts_val)
build_catalog(nodename, facts_val, additional_resources)
end
end
end

View File

@ -23,7 +23,7 @@ module RSpec::Puppet
ret = true
resource = catalogue.resource(@referenced_type, @title)
if resource.nil?
if resource.nil? or resource.virtual?
ret = false
else
if @expected_params

View File

@ -1,17 +1,25 @@
module RSpec::Puppet
module Support
def build_catalog nodename, facts_val
module Support
def build_catalog(nodename, facts_val, additional_resources)
node_obj = Puppet::Node.new(nodename)
node_obj.merge(facts_val)
# trying to be compatible with 2.7 as well as 2.6
if Puppet::Resource::Catalog.respond_to? :find
Puppet::Resource::Catalog.find(node_obj.name, :use_node => node_obj)
catalogue = Puppet::Resource::Catalog.find(node_obj.name, :use_node => node_obj)
else
require 'puppet/face'
Puppet::Face[:catalog, :current].find(node_obj.name, :use_node => node_obj)
catalogue = Puppet::Face[:catalog, :current].find(node_obj.name, :use_node => node_obj)
end
additional_resources = [additional_resources] if additional_resources.is_a? Hash
additional_resources.each do |resource|
catalogue.add_resource Puppet::Resource.new(resource[:type], resource[:title], {:virtual => true, :parameters => resource[:parameters]})
end
p catalogue.resource('File[foo]').virtual?
catalogue.compile
end
end
end

View File

@ -0,0 +1,16 @@
require 'spec_helper'
describe 'virtual::realise_file' do
let(:virtual_resources) {
{
:type => 'file',
:title => 'foo',
:parameters => {
:owner => 'root',
:group => 'root',
}
}
}
it { should contain_file('foo').with_owner('root').with_group('root') }
end

View File

@ -0,0 +1,3 @@
class virtual::realise_file {
File<| |>
}