> > But I'm semi-stuck.

> > However, that's where I'm stuck.  My understanding of the system isn't
> > yet to a point where I can craft a test that would increase my
> > confidence beyond this point, or that would convince anyone who isn't
> > convinced by the above.

> I cannot reproduce this behaviour.  I wrote the following integration  
> tests, which all pass:
[...]
>          klass = @parser.newclass("Foo", :line => 50, :doc => "stuff")
[...]
> If someone can send me test Puppet code that doesn't work, I'll write  
> an integration test that finds the problem.

I don't think this is testing the point where the problem was (I'm not
saying I did much better).  @parser.newclass is going to stick the
result in @loaded_code with:

    @loaded_code.add_hostclass(name, ast(AST::HostClass, args))

and @loaded_code filters all access through munge_name:

    def munge_name(name)
        name.to_s.downcase
    end

which means the tests work.  But they don't really prove anything
vis-a-vis the reported behaviour.

The problem (I think) comes when trying to load the code via
Puppet::Parser::Parser#import(file) which previously got a downcased
string and now gets the raw string passed in by the user (this is what
my patch to Puppet::Parser::Parser#find_or_load() was designed to
address--it stuck downcases in the location most closely analogous to
where they had been in Puppet::Parser::Parser#fqfind()).

Where I'm stuck is how to test this.  I suppose the right way would be
to make files and put them in the path, etc. but I'm not up to speed
enough to do this efficiently (e.g. I've got no clue how best to do that
in a test other than just ham handed hacking with File.open(...,'w') {|
f| f.print...} goo).

I'm also not sure if the user wasn't relying on an accidental behaviour.
Is file loading supposed to be case insensitive?  Or...?  How is it
supposed to resolve cases where there are multiple files that match (on
case sensitive file systems)?  Hamming distance?  Dice?

If you think I'm barking up the wrong tree here, feel free to enlighten
me.

-- Markus




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