[TIP] Mocking import functions

Bruno Oliveira nicoddemus at gmail.com
Fri Feb 7 12:43:45 PST 2014


Hi Mahdi,

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.

      try:

          html = task_utils.mechanize_url(url)
      except:
          ...

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:

> David,
>
> 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
>> mock.patch('twitter_profile.mechanize_url').
>>
>> 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
>> reference.
>>
>>
>>  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.
>>>
>>> Thoughts?
>>>
>>> --
>>> Mahdi Yusuf
>>>
>>> _______________________________________________
>>> testing-in-python mailing list
>>> testing-in-python at lists.idyll.org
>>> http://lists.idyll.org/listinfo/testing-in-python
>>>
>>>
>>
>>
>> --
>> David
>> 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
> http://lists.idyll.org/listinfo/testing-in-python
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.idyll.org/pipermail/testing-in-python/attachments/20140207/b6712ea8/attachment.htm>


More information about the testing-in-python mailing list