On Mar 4, 2011, at 9:25 AM, Markus Roberts wrote:
>> > > This would terminate the operating code inside puppet at that point;
>> > now logging is fatal, and there is no mechanism to suppress that. If
>> > it wasn't for that property I would pretty much entirely agree.
>>
>> Huh; not sure why it's a bad thing to terminate the processing here, since
>> then at least you get a stack trace and such, but I'll take your word for it
>> that it is.
>>
>> Because sometimes we want to write a test that asserts that an error will be
>> logged under certain circumstances, or that some condition is or isn't
>> modified when a condition which results in a logged error occurs. Such
>> tests would always either fail or pass for the wrong reasons.
>
> I thought processing would only stop if the log wasn't stubbed, in which case
> you've got a failure you didn't plan on. If you correctly stub/expect the
> logs, then processing should absolutely continue.
>
> We're far enough into the weeds, and there's grave risk of talking at cross
> purposes, but I'll give what I believe to be the correct answer in context.
>
> The code that started this thread was:
>
> Puppet.stubs(:warning).raises "Failed test"
>
> which Daniel asserted would "terminate the operating code inside puppet" and
> that "there is no mechanism to suppress that." On the face of it, he is
> right about the first and I'd suspect he's right about the second, esp. if
> you modify it to "there's no non-heinous mechanism..." We could, though, be
> wrong, and it may be possible to stub over the stub in some non-heinous way.
>
> The question you asked, though, wasn't why we thought this was true but
> rather why we thought it was bad, specifically you said you were "not sure
> why it's a bad thing to terminate the processing here" and that is what I was
> replying to.
>
> We may be wrong that stubbing the logging mechanism to raise an exception
> would terminate execution "in the middle" but, if that is the case, I believe
> the objection Daniel alluded to is reasonably close to what I expressed.
>
> > Am I missing something?
>
> Given the complexity of || logging + rspec + {all tests present & future} +
> our exception handling + ...? ||, I think it's highly likely that we're all
> missing something. But we struggle on regardless. :)
What I mean is this:
* My understanding is that the goal is to fail when any warning or higher logs
get sent that the tests don't expect
* My experience is that immediate failure with resulting stack trace is always
easier to debug than delayed failure
* Thus, my proposal, which does cause immediate failure with resulting stack
trace, would seem both a simpler and preferred option
What I don't understand is where my logic has gone wrong and why Daniel's
proposal is preferred.
--
When a man tells you that he got rich through hard work, ask
him: 'Whose?' --Don Marquis
---------------------------------------------------------------------
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.