[TIP] Interesting getattr pattern [was: Re: [issue5728] Support telling TestResult objects a test run has finished]
Raphael Marvie
raphael.marvie at lifl.fr
Fri Apr 10 23:56:45 PDT 2009
Hi,
Interesting pattern mentioned (Michael tell me if I am wrong):
startTestRun = getattr(result, 'startTestRun', None)
if startTestRun is not None:
startTestRun()
My question is "what would be the increase in cost of doing an empty
call compared to the if?" such as:
startTestRun = getattr(result, 'startTestRun', lambda: None)
startTestRun()
If the lambda hurts you, one can define donothing() like:
def donothing():
pass
startTestRun = getattr(result, 'startTestRun', donothing)
startTestRun()
r.
Michael Foord wrote:
> Robert Collins wrote:
>> As the bugtracker is down, and I'm not sure whether it will process mail
>> or have things lost when it comes back, I'm resending this to the list
>> to avoid any chance of lossage.
>>
>> ---
>>
>> I've written up a patch for this; it works with old result classes too.
>>
>> Hopefully the bugtracker will attach it in reply to this mail; if not
>> I'll put in via the webui this evening.
>>
>> -Rob
>>
> I like your getattr pattern, nice and simple - and only single lookup
> compared to using hasattr which I would probably have defaulted to.
>
> Michael
>
--
Raphael Marvie, PhD http://www.lifl.fr/~marvie/
Maître de Conférences / Associate Professor @ LIFL -- USTL
Directeur du Master Informatique Professionnel spécialité IAGL
Head of Master's in Software Engineering +33 3 20 33 59 51
More information about the testing-in-python
mailing list