Comment below.

On Feb 12, 2011, at 12:27 PM, Daniel Pittman wrote:

> From: Daniel Pittman <[email protected]>
> 
> The test here was previously fragile, in that it would break when new
> applications were introduced, and in that it depended on the order of items
> returned from reading the directories on disk.
> 
> It is now insensitive to those changes, and still verifies that the results we
> require occur, reducing long term maintenance cost.
> ---
> spec/unit/util/command_line_spec.rb |   13 +++++++++----
> 1 files changed, 9 insertions(+), 4 deletions(-)
> mode change 100644 => 100755 spec/unit/util/command_line_spec.rb
> 
> diff --git a/spec/unit/util/command_line_spec.rb 
> b/spec/unit/util/command_line_spec.rb
> old mode 100644
> new mode 100755
> index a648eb4..98ddb92
> --- a/spec/unit/util/command_line_spec.rb
> +++ b/spec/unit/util/command_line_spec.rb
> @@ -108,8 +108,8 @@ describe Puppet::Util::CommandLine do
>   end
>   describe 'when loading commands' do
>     before do
> -      @core_apps = ["describe", "filebucket", "kick", "queue", "resource", 
> "agent", "cert", "apply", "doc", "master"]
> -      @command_line = Puppet::Util::CommandLine.new("foo", %w{ client --help 
> w    hatever.pp }, @tty )
> +      @core_apps = %w{describe filebucket kick queue resource agent cert 
> apply doc master}
> +      @command_line = Puppet::Util::CommandLine.new("foo", %w{ client --help 
> whatever.pp }, @tty )
>     end
>     it 'should be able to find all existing commands' do
>       @core_apps.each do |command|
> @@ -122,10 +122,15 @@ describe Puppet::Util::CommandLine do
>         @appdir="#{@dir}/puppet/application"
>         FileUtils.mkdir_p(@appdir)
>         FileUtils.touch("#{@appdir}/foo.rb")
> -        $LOAD_PATH.unshift(@dir)
> +        $LOAD_PATH.unshift(@dir) # WARNING: MUST MATCH THE AFTER ACTIONS!
>       end
>       it 'should be able to find commands from both paths' do
> -        @command_line.available_subcommands.should == ['foo'] + @core_apps
> +        found = @command_line.available_subcommands
> +        found.should include 'foo'
> +        @core_apps.each { |cmd| found.should include cmd }
> +      end

This is generally how I've run these tests, but I've generally preferred a test 
per item - that way you get a more informed failure when there's a problem.  
E.g., you get "cert was not in application list" instead of "expected true but 
got false".  This test is now stable, but failures won't be very readable.

> +      after do
> +        $LOAD_PATH.shift        # WARNING: MUST MATCH THE BEFORE ACTIONS!
>       end
>     end
>   end
> -- 
> 1.7.4
> 
> -- 
> 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.
> 


-- 
Venter's First Law:
   Discoveries made in a field by some one from another discipline will
   always be upsetting to the majority of those inside.
---------------------------------------------------------------------
Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199




-- 
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.

Reply via email to