t0rr
@t0rr
PM

Как пропатчить класс через python asynctest?

Помогите, пожалуйста, разобраться с патчем в 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) - не работает.
  • Вопрос задан
  • 113 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы