Как издеваться над методом и посмотреть, вызывался ли он вообще?

У меня есть метод, который заканчивается так:

def compute(self, is_send_emails, test_email_address):
    ...
    if is_send_emails:
          self.sendEmails(uniq_email_pids=uniq_email_pids,
                                    test_email_address=test_email_address)
    else:
          logging.debug("send_emails = False - No emails were sent out.")

Как мне выполнить модульное тестирование в этом случае, когда параметр is_send_emails имеет значение false, и я должен утверждать, что sendEmails() не вызывался.

Я подумал, что должен издеваться над self.sendEmails(), чтобы увидеть, вызывается ли он вообще.

def test_x(self):
    with mock.patch('apps.dbank.x.sendEmails') as sendEmails_mock:

Но теперь я застрял, как это проверить. Этот сайт объясняет различные утверждения, которые я мог бы использовать , но ни один из них не кажется подходящим. Должен ли я использовать assert_called_with?


person Houman    schedule 27.10.2014    source источник


Ответы (1)


Чтобы убедиться, что ваш макет был не вызван, просто проверьте called атрибут равен False:

self.assertFalse(sendEmails_mock.called)
person Martijn Pieters    schedule 27.10.2014