Unittest - How do I code lots of simple tests
Ian Bicking
ianb at colorstudy.com
Wed Oct 22 15:20:13 EDT 2003
On Tuesday, October 21, 2003, at 11:48 PM, Jeremy Fincher wrote:
> Ian Bicking <ianb at colorstudy.com> wrote in message
> news:<mailman.319.1066774834.2192.python-list at python.org>...
>> (And it uses double-underscore variables, like it's just
>> *trying* to piss me off! Double-underscore variables are so arrogant
>> and patronizing.
>
> Don't look at it like that. Double-underscore variables are for
> averting namespace problems, not for protection. Unittest uses them
> not to protect itself, but to keep from stomping all over your
> namespace when you subclass it. In that way, it's very much built
> with subclassing in mind.
I never have problems with namespaces like that. If you really do have
significant likelihood of a namespace clash then you shouldn't be using
inheritance -- some of those instance variables should be shifted into
a separate object.
I generally assume that a subclass is made with the superclass in mind,
and that subclasses will be respectful of the requirements of the
superclass. If I'm not sure I trust the subclassing programmer, then
I'll add lots of asserts. The asserts cover the *actual* requirements.
Double-underscore says "I won't even tell you the requirements,
because I don't believe you can be trusted with them. Instead I'll
hide it all from you." You can still unmangle the names -- which I
frequently do -- but it's annoying.
This is open source -- sure, things may change in some later version,
and if I go playing around with undocumented interfaces then I won't be
surprised if some future version breaks my code. I'm okay with that,
and it should be my choice to make fragile code if I want.
--
Ian Bicking | ianb at colorstudy.com | http://blog.ianbicking.org
More information about the Python-list
mailing list