Как легко найти цель патча в unittest?

У меня есть следующая структура модулей в приложении Django:

subscriptions
   - api
     - views.py
     - serializers.py
     - tests
       test_some_view.py

   - models.py
   - signals.py

В models.py у меня есть модель GooglePlayOrder, а в signals.py у меня есть сигнал:

@receiver(post_save, sender=GooglePlayOrder)
def save_google_play_order(sender, instance, created, **kwargs):
   pass

Экземпляр GooglePlayOrder создается в сериализаторе GooglePlayOrderSerializer из api/serializers.py, который вызывается некоторым GooglePlayOrderView в api/views.py.

Теперь я хочу запустить тест из api/tests/test_some_view.py, где я хочу поиздеваться над сигналом save_google_play_order.

К сожалению, эта реализация не работает, поскольку я (AFAIK) должен следовать импорту для исправления чего-либо:

@patch('subscriptions.signals.save_google_play_order')
def test_normal(self, mock):

Итак, как я должен понимать в этом случае, что именно я должен использовать в качестве цели декоратора patch?

Попробуйте, где используется высмеиваемая функция. Например, если вы используете save_google_play_order в serializers.py:

@patch('subscriptions.api.serializers.save_google_play_order')

Вернуться на верх