+1 On Aug 8, 2009, at 12:03 PM, Markus Roberts wrote:
> > Added downcasing into find_or_load (which replaced fqfind) to get > back the old behaviour. Adjusted tests so that they would catch > the problem & confirmed that they fail without the downcasing. > > Signed-off-by: Markus Roberts <[email protected]> > --- > lib/puppet/parser/parser_support.rb | 2 ++ > spec/unit/parser/parser.rb | 30 ++++++++++++++++++ > +----------- > 2 files changed, 21 insertions(+), 11 deletions(-) > > diff --git a/lib/puppet/parser/parser_support.rb b/lib/puppet/parser/ > parser_support.rb > index 4e47cde..68cd382 100644 > --- a/lib/puppet/parser/parser_support.rb > +++ b/lib/puppet/parser/parser_support.rb > @@ -114,6 +114,8 @@ class Puppet::Parser::Parser > > def find_or_load(namespace, name, type) > method = "find_#{type}" > + namespace = namespace.downcase > + name = name.downcase > fullname = (namespace + "::" + name).sub(/^::/, '') > names_to_try = [fullname] > > diff --git a/spec/unit/parser/parser.rb b/spec/unit/parser/parser.rb > index 75d0c05..ff14e20 100755 > --- a/spec/unit/parser/parser.rb > +++ b/spec/unit/parser/parser.rb > @@ -346,32 +346,40 @@ describe Puppet::Parser do > describe Puppet::Parser,"when looking up names" do > before :each do > @loaded_code = mock 'loaded code' > - > @loaded_code.stubs(:find_my_type).with('Loaded_namespace', > 'Loaded_name').returns(true) > - > @loaded_code.stubs(:find_my_type).with('Bogus_namespace', > 'Bogus_name' ).returns(false) > + > @loaded_code.stubs(:find_my_type).with('loaded_namespace', > 'loaded_name').returns(true) > + > @loaded_code.stubs(:find_my_type).with('bogus_namespace', > 'bogus_name' ).returns(false) > @parser = Puppet::Parser::Parser.new :environment => > "development",:loaded_code => @loaded_code > end > > describe "that are already loaded" do > it "should not try to load anything" do > @parser.expects(:load).never > - > @parser.find_or_load("Loaded_namespace","Loaded_name",:my_type) > + > @parser.find_or_load("loaded_namespace","loaded_name",:my_type) > end > it "should return true" do > - > @parser > .find_or_load("Loaded_namespace","Loaded_name",:my_type).should == > true > + > @parser > .find_or_load("loaded_namespace","loaded_name",:my_type).should == > true > end > end > > describe "that aren't already loaded" do > - it "should first attempt to load them with the fully > qualified name" do > - > @loaded_code > .stubs > (:find_my_type > ).with("Foo_namespace","Foo_name").returns(false,true,true) > - > @parser > .expects > (:load > ).with("Foo_namespace::Foo_name").returns(true).then.raises(Exception) > + it "should first attempt to load them with the all > lowercase fully qualified name" do > + > @loaded_code > .stubs > (:find_my_type > ).with("foo_namespace","foo_name").returns(false,true,true) > + > @parser > .expects > (:load > ).with("foo_namespace::foo_name").returns(true).then.raises(Exception) > > @parser.find_or_load("Foo_namespace","Foo_name",:my_type).should == > true > end > > - it "should next attempt to load them with the > namespace" do > - > @loaded_code > .stubs > (:find_my_type > ).with("Foo_namespace","Foo_name").returns(false,false,true,true) > - > @parser > .expects > (:load > ).with > ("Foo_namespace::Foo_name").returns(false).then.raises(Exception) > - > @parser > .expects > (:load).with("Foo_namespace").returns(true).then.raises(Exception) > + it "should next attempt to load them with the all > lowercase namespace" do > + > @loaded_code > .stubs > (:find_my_type > ).with("foo_namespace","foo_name").returns(false,false,true,true) > + > @parser > .expects > (:load > ).with > ("foo_namespace::foo_name").returns(false).then.raises(Exception) > + > @parser > .expects > (:load > ).with > ("foo_namespace" ).returns(true ).then.raises(Exception) > + > @parser.find_or_load("Foo_namespace","Foo_name",:my_type).should == > true > + end > + > + it "should finally attempt to load them with the all > lowercase unqualified name" do > + > @loaded_code > .stubs > (:find_my_type > ).with > ("foo_namespace","foo_name").returns(false,false,false,true,true) > + > @parser > .expects > (:load > ).with > ("foo_namespace::foo_name").returns(false).then.raises(Exception) > + > @parser > .expects > (:load > ).with > ("foo_namespace" ).returns(false).then.raises(Exception) > + > @parser > .expects > (:load > ).with > ( "foo_name").returns(true ).then.raises(Exception) > > @parser.find_or_load("Foo_namespace","Foo_name",:my_type).should == > true > end > > -- > 1.6.0.4 > > > > -- Hollywood is a place where they'll pay you a thousand dollars for a kiss and fifty cents for your soul. -- Marilyn Monroe --------------------------------------------------------------------- Luke Kanies | http://reductivelabs.com | http://madstop.com --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
