- From: Fabien Delpierre <
>
- To: chef <
>
- Subject: [chef] Using node attributes in Kitchen ServerSpec tests
- Date: Tue, 12 May 2015 17:18:10 -0400
Hi folks,
I'm new to Test Kitchen and trying to make sense of it all. I'm also new to TDD (and programming in general) so the weird pseudocodey language used by RSpec messes with my head because I'm expecting code and it reads more like English.
Anyway.
Right now I'd like to see if I can use one of my nodes' attributes to run tests.
Specifically, I have something like this:
attributes/default.rb:
case node['platform']
when 'centos'
default['myrecipe']['packages'] = %w(package1 package2)
when 'ubuntu'
default['myrecipe']['packages'] = %w(package3 package4)
endrecipes/default.rb:
node['myrecipe']['packages'].each do |pkg|
package pkg
endNow, in my tests, what I'd like is to do something like:
node['myrecipe']['packages'].each do |pkg|
describe package(pkg) do
it { should be_installed }
end
end
I can do something like this (note I haven't tested it because I'm done for today but I looked at other people's code on GitHub and found similar things, so I imagine that it works):
case os['family']
when 'centos'
packages = %w(package1 package2)
when 'ubuntu'
packages = %w(package3 package4)
end
packages.each do |pkg|
describe package(pkg) do
it { should be_installed }
end
end
So assuming this works, that's nice, but it requires maintaining on top of the list of attributes in the attributes/default.rb file, hence my wondering whether there is a way for Kitchen to grab those values off the cookbook. Because that would be more efficient.
Is that possible? Or am I doomed?
- [chef] Using node attributes in Kitchen ServerSpec tests, Fabien Delpierre, 05/12/2015
Archive powered by MHonArc 2.6.16.