[TIP] Mocking import functions
nicoddemus at gmail.com
Fri Feb 7 12:43:45 PST 2014
If you can change your code, try to import the module instead of the
function in twitter_profile.py:
from miners import task_utils
And use it as such in the code.
html = task_utils.mechanize_url(url)
Then mocking using mock.patch('miners.tasks_utils.mechanize_url') should work.
Hope this helps,
On Fri, Feb 7, 2014 at 2:18 PM, Mahdi Yusuf <yusuf.mahdi at gmail.com> wrote:
> Thanks for your response. I tried that when I was exhausting all my
> options. That also doesn't work.
> Mahdi Yusuf
> On Fri, Feb 7, 2014 at 11:07 AM, David Stanek <dstanek at dstanek.com> wrote:
>> Instead of mock.patch('miners.tasks_utils.mechanize_url') you should try
>> Once your twitter_profile module is imported it will have a reference to
>> mechanize_url. When you patch miners.tasks_utils you are not changing this
>> On Fri, Feb 7, 2014 at 10:42 AM, Mahdi Yusuf <yusuf.mahdi at gmail.com>wrote:
>>> I am at my wits end pretty much. I am not sure what is happening here.
>>> I am unable to mock an import function. My code is here<https://gist.github.com/myusuf3/685083e70bf3f93fd43c>.
>>> After some reading I know you patch where the function is used not where
>>> its defined.
>>> I have also tried everything else but the mechanize_url is till running
>>> as implemented in code not mocked in test.
>>> Mahdi Yusuf
>>> testing-in-python mailing list
>>> testing-in-python at lists.idyll.org
>> blog: http://www.traceback.org
>> twitter: http://twitter.com/dstanek
>> www: http://dstanek.com
> Mahdi Yusuf
> testing-in-python mailing list
> testing-in-python at lists.idyll.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the testing-in-python