unittest inconsistent

Peter Otten __peter__ at web.de
Wed Jan 6 04:01:42 EST 2010


André wrote:

> On Jan 5, 8:14 pm, Matt Haggard <haggar... at gmail.com> wrote:
>> Can anyone tell me why this test fails?
>>
>> http://pastebin.com/f20039b17
>>
>> This is a minimal example of a much more complex thing I'm trying to
>> do.  I'm trying to hijack a function and inspect the args passed to it
>> by another function.
>>
>> The reason the 'Tester' object has no attribute 'arg1' is because
>> "self" still refers to the object made for testA.
> 
> Quick answer: change faketest.py as follows:
> 
> #--------------------------------------------------
> # faketest.py
> #--------------------------------------------------
> 
> #from importme import render
> import importme
> 
> def run(somearg):
>     return importme.render(somearg)
> 
> =========
> A long answer, with explanation, will cost you twice as much ;-)
> (but will have to wait)
> 
> André

Or you figure it out yourself staring at

>>> import os
>>> from os import rename
>>> os.rename = 42
>>> rename
<built-in function rename>
>>> os.rename
42

from module import name

binds the object referred to by module.name to the name variable in the 
current module. You can think of it as a shortcut for

import module
name = module.name
del module

When you later rebind

import module
module.name = something_else

the reference in the current module isn't magically updated to point to 
something_else.

Peter




More information about the Python-list mailing list