Aahz wrote:
> On Sun, Apr 16, 2006, Tim Peters wrote:
>> Now that I think of it, though, I've been burned perhaps twice in my
>> total Python life by recursing on a string when I didn't intend to. 
>> Apart from flatten()-ish functions, I'm not sure I've written anything
>> vulnerable to that.
> 
> I've been burned a few times, but only because I was expecting a list
> input and got a string.  I think that improving code analysis tools and
> making better use of unit tests is the proper cure for that.

The problem with testing is that there's no exception, just bad data, 
and so you have to test much more aggressively to find the bug.  Also, 
when you encounter the bad it's often not clear where exactly it came from.

Unit testing works best when things fail early and fail with an 
exception, so I don't think this is a case where we should lean on unit 
testing.  Also, this leads to integration bugs -- when someone calls 
your code with the wrong kind of argument.  For any public API that 
takes a list of strings, I always try to do "assert not isinstance(arg, 
basestring)", because a runtime assertion is the only kind of test you 
can do -- it's outside the bounds of unit testing.

-- 
Ian Bicking  |  [EMAIL PROTECTED]  |  http://blog.ianbicking.org
_______________________________________________
Python-3000 mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe: 
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com

Reply via email to