Я работаю над ботом Reddit, чтобы изучить TDD в python.
У меня есть модуль с классом, который выглядит примерно так:
from praw import Reddit
class Bot():
def __init__(self):
self.reddit = Reddit(user_agent='myBot')
self.reddit.login('fake', 'fakePassword')
В моем наборе тестов у меня есть такой метод настройки:
@patch('bot.bot.Reddit.login')
def setUp(self, mocked_reddit):
self.mocked_reddit = mocked_reddit
self.subject = Bot()
..и такой тест:
def should_call_reddit_login_when_initialized_test(self):
self.assertTrue(self.mocked_reddit.assert_called_with('fake', 'fakePassword'))
Похоже мой патч работает только частично. На самом деле он не вызывает Reddit API, что хорошо. Однако это утверждение всегда ложно.
line 22 in should_call_reddit_login_when_initialized_test
self.assertTrue(self.mocked_reddit.assert_called_with('fake', 'fakePassword'))
AssertionError: None is not true
В идеале я мог бы просто смоделировать весь класс Reddit и утверждать, что методы вызываются с ожидаемыми аргументами позже. Как я могу это сделать?