Проверить, вызывается ли определенный метод во время инициализации объекта Python - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть суперкласс, который вызывает определенный независимый метод во время его инициализации. Что-то вроде

class MasterClass:
    def __init__(self, *args, **kwargs):
        if type(self).__name__ == "SpecificClass":
            call_a_module_method()

Я хочу проверить, что подкласс этого класса с именем SpecificClass получит метод call_a_module_method.

1 Ответ

5 голосов
/ 12 февраля 2020

Как советовал Кевин Ли, вы можете использовать проверку isinstance или, если по каким-либо другим причинам вы не хотите напрямую проверять класс в своих тестах, можно использовать mock :

import unittest
from mock import patch

 @patch('module_name.call_a_module_method')
 def test_method_called(self, mock):
     instance = SpecificClass()
     self.assertTrue(mock.called)
...