Имитация вложенных свойств с помощью mock

У меня есть вызов функции, который возвращает объект:

r = Foo(x,y)

где rимеет богатый набор вложенных свойств. Например, я могу получить доступ к r.prop_a.prop_b.prop_c. Я хотел бы издеваться над Foo, чтобы было изменено конкретное свойство листа r, то есть так, чтобы r.prop_a.prop_b.prop_cвозвращал значение, находящееся под моим контролем:

>> r = Foo(x,y)
>> r.prop_a.prop_b.prop_c
'fish'
>> # some mock magic patching of Foo is taking place here
>> r = Foo(x,y)
>> r.prop_a.prop_b.prop_c
'my_fish'

Я не очень забочусь о промежуточных свойствах.

Есть ли элегантный способ издеваться над вложенными свойствами с помощью mock ?

8
задан Oleksiy 16 August 2012 в 00:19
поделиться