<div dir="ltr">OK I actually find a nice way of solving it:<div><br></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">def setUp(self):</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    self.ret_val</font></div>

<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    wrapper_self = self</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    class MyFakeClass(Mock):</font></div>

<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">        def my_method(self):</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">            return wrapper_self.ret_val</font></div>

<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    self.patcher = patch(</font><span class="Apple-style-span" style="font-family: &#39;courier new&#39;, monospace; ">&quot;package.MyClassName&quot;, new = MyFakeClass)</span></div>

<div><span class="Apple-style-span" style="font-family: &#39;courier new&#39;, monospace; ">    self.patcher.start()</span></div><meta http-equiv="content-type" content="text/html; charset=utf-8"><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br>

</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">def tearDown(self):</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    self.patcher.stop()</font></div>

<div><span class="Apple-style-span" style="font-family: &#39;courier new&#39;, monospace; "><br></span></div><div><span class="Apple-style-span" style="font-family: &#39;courier new&#39;, monospace; ">def test_something(self):</span></div>

<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    self.ret_val = &quot;xyz&quot;</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    ....</font></div>
<div>
<br></div><div>If you have a better way, please share :)<br><br><div class="gmail_quote">On Wed, May 25, 2011 at 1:39 PM, Yoni Tsafir <span dir="ltr">&lt;<a href="mailto:yonix85@gmail.com">yonix85@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div dir="ltr"><div>Sorry for spamming with mock questions the last few days :)</div><div>Just doing some massive testing for complicated code.</div>

<div><br></div><div>I know that when I patch a specific method: </div><div>
<font face="&#39;courier new&#39;, monospace">@patch(&quot;package.MyClassName.my_method&quot;, new = Mock(return_value=&quot;xyz&quot;))</font></div><div><br></div><div>Even new instances of MyClass will return &quot;xyz&quot; as expected.</div>


<div><br></div><div>However, when I try:</div><div><font face="&#39;courier new&#39;, monospace">@patch(&quot;package.MyClassName&quot;)</font></div>
<div><font face="&#39;courier new&#39;, monospace">def test_something(self, my_mock):</font></div><div><font face="&#39;courier new&#39;, monospace">    my_mock.my_method.return_value = &quot;xyz&quot;</font></div>
<div><br></div><div>When in code I run:</div><div><font face="&#39;courier new&#39;, monospace">MyClassName().my_method()</font></div><div><br></div><div>I get a new different Mock and not &quot;xyz&quot; as I would wish.</div>


<div><br></div><div>Now, it kinda makes sense to me, but I would like to know if there&#39;s a way around it.</div><div>Couldn&#39;t really achieve this by mocking __init__ (or maybe I did it wrong?)</div><div><br></div>

<div>
Thanks!</div><div>Yoni.</div><div><div><br></div></div></div>
</blockquote></div><br></div></div>