[chef] Re: Re: Re: Re: Re: Re: ChefSpec for LWRPs without recipes...


Chronological Thread 
  • From: Bryan Stenson < >
  • To:
  • Subject: [chef] Re: Re: Re: Re: Re: Re: ChefSpec for LWRPs without recipes...
  • Date: Wed, 1 May 2013 10:30:36 -0700

Thanks John.

As described, I'm hoping to NOT have any testing recipes exist to be assigned to a node's run_list.  The purist in me rejects the idea that I have to have a recipe ("_test.rb", in your example) just to test my LWRPs.

Having said that, I'm open to suggestions.  Maybe my resistance to an "only used for testing recipe" is misguided or uninformed.  If so, I'd like to hear why.

Bryan


On Wed, May 1, 2013 at 9:54 AM, John Dewey < " target="_blank"> > wrote:

You test it like anything else.  A trivial example:
  https://github.com/retr0h/cookbook-parted/blob/master/spec/_test_spec.rb

John

On Wed, May 01, 2013 at 09:49:49AM -0700, Bryan Stenson wrote:
>    An empty default recipe, I suppose, I understand.
>    But, I think ":step_into => ['foo']" only ALLOWS the ChefRunner to
>    descend into the "foo" provider...it doesn't actually exercise it (how
>    would it know the parameters to test?!)
>    At this point, I think I'm planning on copying the entire cookbook into
>    a "temp" directory, applying "fixture recipes" to the copy, and
>    pointing the ChefRunner to that directory as the :cookbook_path
>    This will allow me to write "fixture recipes" for testing, and leave
>    them out of the actual recipe folder (so they're unable to be used in a
>    run_list).
>    If/when I get something worthy of sharing, I will.
>    Bryan
>
>    On Wed, May 1, 2013 at 9:38 AM, Mike <[1] "> > wrote:
>
>      John is right - it's becoming common to provide an empty default.rb
>      for a cookbook that doesn't have any recipes.
>
>    On Wed, May 1, 2013 at 12:34 PM, John Dewey <[2] "> > wrote:
>    >
>    > I believe you can simply create an empty default.rb,
>    > and "step into" the LWRP you wish to test.
>    >
>    > John
>    >
>    > On Wed, May 01, 2013 at 10:12:18PM +0545, millisami r wrote:
>    >>    +1
>    >>
>    >>    I m too kinda similar situation.
>    >>    On Wednesday, May 1, 2013, Bryan Stenson wrote:
>    >>
>    >>    Ohai!
>    >>    Following the cookbook pattern described in the "Berkshelf Way",
>    I'm
>    >>    trying to create a library cookbook which contains some custom
>    LWRPs.
>    >>    This library cookbook will not have any meaningful recipe on its
>    >>    own...it will only supply providers and resources to be consumed
>    by
>    >>    application cookbooks.
>    >>    I'd like to test the library cookbook separately, and I think
>    ChefSpec
>    >>    is the correct approach for unit testing.  I see that ChefSpec
>    takes a
>    >>    recipe list when "converging", but, since my library cookbook
>    won't
>    >>    have recipes, I don't have one to give to ChefRunner.
>    >>    I suppose I'd like some suggestions/experiences on how to do
>    this.
>    >>    From my perspective, I can see at least two ways to solve it
>    (with a
>    >>    STRONG preference on the latter):
>    >>    1. Create a "lwrp_testing.rb" recipe which will specifically call
>    out
>    >>    to each LWRP the library cookbook provides.  I don't like this
>    cause
>    >>    then I've got a testing recipe floating around which COULD be
>    applied
>    >>    to a node in production - and that's just silly.  I could prefix
>    this
>    >>    recipe with a "_" (as in, "_lwrp_testing.rb"), but again, it
>    feels like
>    >>    a hack.
>    >>    2. Create a recipe fixture for testing the LWRP for use only
>    during
>    >>    ChefSpec runs.  The recipe would only exist in the context of a
>    >>    ChefSpec run, and allow for valid exercise of the underlying
>    LWRPs
>    >>    during testing...at the same time, the recipe would not exist
>    "for
>    >>    reals" in the cookbook, and couldn't be assigned to a run_list.
>    This
>    >>    seems like an elegant approach (design wise), but my Ruby skills
>    are
>    >>    not to the level they should be to easily implement this.
>    Anybody else
>    >>    try this?
>    >>    Or, perhaps there's another solution I'm overlooking?
>    >>    Thanks for your thoughts.
>    >>    Bryan
>    >>    PS - Thanks to everybody for another great ChefConf!
>    >>
>    >>    --
>    >>  
>    >>    ~Sachin Sagar Rai
>    >>    Ruby on Rails Developer
>    >>    [1][3]http://tfm.com.np
>    >>    [2][4]http://nepalonrails.com
>    >>
>    >> References
>    >>
>    >>    1. [5]http://tfm.com.np/
>    >>    2. [6]http://nepalonrails.com/
>
> References
>
>    1. mailto: ">
>    2. mailto: ">
>    3. http://tfm.com.np/
>    4. http://nepalonrails.com/
>    5. http://tfm.com.np/
>    6. http://nepalonrails.com/




Archive powered by MHonArc 2.6.16.

§