Помогите, пожалуйста, разобраться с патчем в asynctest
Не пойму как класс подменить. Отдельные методы заменяются корректно, а весь класс не получается заменить.
Не хочется городить над каждым тест-методом гору декораторов
Рабочий пример с заменой методов на пустую функцию:
class TestGamePrepare(TestCase):
chat_id = -12345667890
admin_id = 987654321
async def setUp(self):
self.game = await get_game(self.chat_id)
@patch('game.Game.delete_messages', pass_func)
async def tearDown(self):
await self.game.cancel()
@patch('game.Game.say', pass_func)
@patch('game.Game.unmute', pass_func)
@patch('game.Game.read_game_settings', pass_func)
@patch('game.Game.delete_messages', pass_func)
async def test_game_prepare(self):
""" Good prepare case """
await self.game.prepare_game(self.admin_id)
self.assertEqual(self.game.mode, GameModes.REGISTRATION)
Пробовал сделать класс-наследник NewGame с переопределёнными pass-методами, а потом декоратором показывать @patch('game.Game', NewGame) - не работает.