How to patch a module's internal functions with mock?

后端 未结 4 1169
情书的邮戳
情书的邮戳 2021-02-01 05:15

By \"internal function\", I mean a function that is called from within the same module it is defined in.

I am using the mock library, specifically the patch decorators,

4条回答
  •  隐瞒了意图╮
    2021-02-01 05:40

    The answer: Clean up your darned imports

    @patch('mymodule.TAX_LOCATION', '') did indeed patch things appropriately, but since our imports at the time were very haphazard -- sometimes we imported mymodule.build_cart, sometimes we imported project.mymodule.build_cart -- instances of the "full" import were not patched at all. Mock couldn't be expected to know about the two separate import paths... without being told explicitly, anyway.

    We've since standardized all our imports on the longer path, and things behave much more nicely now.

提交回复
热议问题