[chef] Re: Accessing Test Kitchen YML Attributes


Chronological Thread 
  • From: Noah Kantrowitz < >
  • To:
  • Subject: [chef] Re: Accessing Test Kitchen YML Attributes
  • Date: Thu, 5 Mar 2015 19:57:12 -0800


On Mar 5, 2015, at 7:27 PM, Rudi 
< >
 wrote:

> Hi,
> 
> I have a simple test kitchen error I'm stuck on, would appreciate some 
> guidance here.
> 
> Working though the tutorial at KitchenCI, I'm having trouble accessing 
> attributes set inside .kitchen.yml.
> 
> The respective code is from: 
> http://kitchen.ci/docs/getting-started/writing-server-test
> 
> If I add a port attribute under suites
> 
> suites:
>   - name: default
>     run_list:
>       - recipe[git::default]
>     attributes:
>   - name: server
>     run_list:
>       - recipe[git::server]
>     attributes:
>       port: 9217
> 
> Then try to access it like so in: 
> test/integration/server/serverspec/git_daemon_spec.rb
> 
>   require 'serverspec'
> 
>   # Required by serverspec
>   set :backend, :exec
> 
>   puts node['port']
> 
>   describe "Git Daemon" do
> 
> /tmp/busser/suites/serverspec/git_daemon_spec.rb:6:in `<top (required)>': 
> undefined local variable or method `node' for main:Object (NameError)
> 
> 
> Can you see where I'm going wrong here?

Node attributes are only available (directly) from your Chef recipe code. 
Serverspec runs independent of Chef so node data isn't a thing there. There 
are circuitous ways to expose things but I would avoid them. Assuming the 
reason you want to get the port in your serverspec to check that it is 
listening on that port, it is Correctâ„¢ to hard-code the port a second time. 
Test code tends to violate some DRY principles because it is designed to 
favor safety over maintenance (you run tests more then you edit old ones).

--Noah

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail




Archive powered by MHonArc 2.6.16.

§