Corey Osman
2013-Sep-18 16:52 UTC
[Puppet Users] questions about verifying template paths and variables with rspec
Hi, How can I verify the template exists in the given path? Example, Given the following in my manifest: if $somevar == ''true'' { $templatefile=''mymodule/mytemplate.xml.erb'' } else { $templatefile=''mymodule/mytemplate2.xml.erb'' } file{"somefile.txt": ensure => present, content => template($templatefile) } How can I test that the template file exists in the given module path? File.exists?("../../../#{templatefile}").should be_true ??? Additionally can I test if the variable $templatefile or $somevar is correct and my logic is sane. Is there a way to retrieve the manifest variables within spec tests? example: $somevar.should eq(''true'') ??? Corey -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscribe@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
Ashley Gould
2013-Sep-23 16:27 UTC
Re: [Puppet Users] questions about verifying template paths and variables with rspec
On Wed, Sep 18, 2013 at 09:52:27AM -0700, Corey Osman wrote:> Hi, > > How can I verify the template exists in the given path? Example, > > Given the following in my manifest: > > if $somevar == ''true'' { > $templatefile=''mymodule/mytemplate.xml.erb'' > } > else { > $templatefile=''mymodule/mytemplate2.xml.erb'' > } > file{"somefile.txt": > ensure => present, > content => template($templatefile) > } >I''m not sure how this would fit into rspec, but in my manifests I use a function to verify templates. Perhaps pieces of this could be adapted for your purpose. $ cat is_template.rb # # adapted from has_template from https://github.com/windowsrefund/puppet-tools # Puppet::Parser::Functions::newfunction( :is_template, :type => :rvalue, :doc => "Returns true if argument translates to a valid template.") do |args| require ''rubygems'' require ''puppet'' if value = Puppet::Parser::Files.find_template(args[0],lookupvar(''environment'')) return FileTest.exist?(value) end nil end> > How can I test that the template file exists in the given module path? > > File.exists?("../../../#{templatefile}").should be_true ??? > > Additionally can I test if the variable $templatefile or $somevar is correct and my logic is sane. Is there a way to retrieve the manifest variables within spec tests? > > example: > > $somevar.should eq(''true'') ??? > > > > Corey > > > -- > You received this message because you are subscribed to the Google Groups "Puppet Users" group. > To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscribe@googlegroups.com. > To post to this group, send email to puppet-users@googlegroups.com. > Visit this group at http://groups.google.com/group/puppet-users. > For more options, visit https://groups.google.com/groups/opt_out.-- -ashley If a new user has a bad time, IT''S A BUG! -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscribe@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.