Как легко найти цель патча в 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')