Daniel,

I would really appreciate it if you could have a look at the one test that I
had to fix. There was actual a test checking that the options method returns
both option names as well as aliases. There is, however, no test showing
that any other part of the faces system actually needs this behavior.

regards,

Dan

On Wed, Jul 13, 2011 at 3:43 PM, Dan Bode <[email protected]> wrote:

> The problem was caused by the fact that the
> options method returns a list of options that
> treated the aliases as seperate options.
>
> The fix is to only maintain a list of options
> and not add all aliases to the options list.
>
> Signed-off-by: Dan Bode <[email protected]>
> ---
> Local-branch: issue/2.7.x/7699
>  lib/puppet/interface/action.rb                     |    3 ++-
>  lib/puppet/interface/option_manager.rb             |    3 ++-
>  .../things_that_declare_options.rb                 |    2 +-
>  spec/unit/interface/action_spec.rb                 |   10 ++++++++++
>  spec/unit/interface_spec.rb                        |    8 ++++++++
>  5 files changed, 23 insertions(+), 3 deletions(-)
>
> diff --git a/lib/puppet/interface/action.rb
> b/lib/puppet/interface/action.rb
> index 185302b..fe77a96 100644
> --- a/lib/puppet/interface/action.rb
> +++ b/lib/puppet/interface/action.rb
> @@ -227,8 +227,9 @@ WRAPPER
>       end
>     end
>
> +    @options << option.name
> +
>     option.aliases.each do |name|
> -      @options << name
>       @options_hash[name] = option
>     end
>
> diff --git a/lib/puppet/interface/option_manager.rb
> b/lib/puppet/interface/option_manager.rb
> index 326a91d..a1f300e 100644
> --- a/lib/puppet/interface/option_manager.rb
> +++ b/lib/puppet/interface/option_manager.rb
> @@ -26,8 +26,9 @@ module Puppet::Interface::OptionManager
>       end
>     end
>
> +    @options << option.name
> +
>     option.aliases.each do |name|
> -      @options << name
>       @options_hash[name] = option
>     end
>
> diff --git a/spec/shared_behaviours/things_that_declare_options.rb
> b/spec/shared_behaviours/things_that_declare_options.rb
> index ebf1b20..19bba66 100755
> --- a/spec/shared_behaviours/things_that_declare_options.rb
> +++ b/spec/shared_behaviours/things_that_declare_options.rb
> @@ -43,7 +43,7 @@ shared_examples_for "things that declare options" do
>       option "-f"
>       option "--baz"
>     end
> -    thing.options.should == [:foo, :bar, :b, :q, :quux, :f, :baz]
> +    thing.options.should == [:foo, :bar, :quux, :f, :baz]
>   end
>
>   it "should detect conflicts in long options" do
> diff --git a/spec/unit/interface/action_spec.rb
> b/spec/unit/interface/action_spec.rb
> index cf8d61d..23216e7 100755
> --- a/spec/unit/interface/action_spec.rb
> +++ b/spec/unit/interface/action_spec.rb
> @@ -171,6 +171,16 @@ describe Puppet::Interface::Action do
>       face.get_action(:foo).options.should =~ [:bar]
>     end
>
> +    it "should only list options and not aliases" do
> +      face = Puppet::Interface.new(:action_level_options, '0.0.1') do
> +        action :foo do
> +          when_invoked do |options| true end
> +          option "--bar", "-b", "--foo-bar"
> +        end
> +      end
> +      face.get_action(:foo).options.should =~ [:bar]
> +    end
> +
>     describe "with both face and action options" do
>       let :face do
>         Puppet::Interface.new(:action_level_options, '0.0.1') do
> diff --git a/spec/unit/interface_spec.rb b/spec/unit/interface_spec.rb
> index 8bbbcc8..4cb1f87 100755
> --- a/spec/unit/interface_spec.rb
> +++ b/spec/unit/interface_spec.rb
> @@ -174,6 +174,14 @@ describe Puppet::Interface do
>       face.get_action(:foo).options.should =~ [:quux]
>       face.get_action(:bar).options.should =~ [:quux]
>     end
> +
> +    it "should only list options and not aliases" do
> +      face = subject.new(:face_options, '0.0.1') do
> +        option "--bar", "-b", "--foo-bar"
> +      end
> +      face.options.should =~ [:bar]
> +    end
> +
>   end
>
>   describe "with inherited options" do
> --
> 1.6.5.1
>
> --
> 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.
>
>

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