Hi Luke,
Thanks, but this is not quite what I'm after. Basically I want to test that a
catalogue with just the baz resource generates certain resources, so I would
like a way to generate the equivalent of "node 'foo' { bar { 'name': test =>
'value' } }" by manipulating classes like Puppet::Node etc
basically, my dream endpoint is to be able to do something like the following
describe My::Define do
let(:facts) { {:ipaddress_eth0 => '192.168.0.1' }
let(:node) { 'testhost.example.com' }
let(:params) { :name => 'foo', :test => 'value' }
subject { <some magic here to get the catalogue for this test host applying
just this resource> }
it { should.create_file "/etc/foo".with_mode('0444') }
end
It looks like Puppet::Node accepts a :classes attribute to apply classes to a
node, but I'm not sure how to just apply a single resource to a node?
Thanks,
Tim
On Saturday, 16 July 2011 at 10:01 AM, Luke Kanies wrote:
> On Jul 15, 2011, at 2:57 PM, Tim Sharpe wrote:
>
> > Hi,
> >
> > I'm looking at setting up some tests for the defined types in my manifests
> > (probably using rspec) to test that node <foo> with facts <bar> applying
> > define <baz> with params <gronk> creates a catalogue with the following
> > resources...
> >
> > Basically, I want to generate the catalogue for the following and then
> > inspect it's contents.
> >
> > node "foo" {
> > baz { 'name':
> > test => value,
> > }
> > }
> >
> > Looking over Puppet::Node, I can see how to apply classes to a host, but
> > nothing about individual resources. If someone could point me in the right
> > direction, that'd be greatly appreciated.
>
> Dan Bode has some interesting work here, I think - hopefully he can post it.
>
> In the meantime, I'd probably try something like this:
>
> before do
> Puppet[:config] = "/path/to/my/config"
> Puppet.settings.parse
>
> @catalog = Puppet::Node::Catalog.indirection.find(Puppet[:certname])
> end
>
> it "should create a 'baz' resource" do
> @catalog.resource(:baz, "name").should be_instance_of(Puppet::Resource)
> end
>
> Something like that, anyway.
>
> --
> This space intentionally has nothing but text explaining why this
> space has nothing but text explaining that this space would otherwise
> have been left blank, and would otherwise have been left blank.
> ---------------------------------------------------------------------
> Luke Kanies | http://puppetlabs.com | http://about.me/lak
> Join us in PDX for PuppetConf: http://bit.ly/puppetconfsig
> --
> You received this message because you are subscribed to the Google Groups
> "Puppet Developers" group.
> To post to this group, send email to [email protected]
> (mailto:[email protected]).
> To unsubscribe from this group, send email to
> [email protected]
> (mailto:[email protected]).
> For more options, visit this group at
> http://groups.google.com/group/puppet-dev?hl=en.
--
You received this message because you are subscribed to the Google Groups
"Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-dev?hl=en.