Я издеваюсь над классом внутренней библиотеки (Сервер) python, который обеспечивает соединение с HTTP-сервером JSON-RPC. Но при запуске теста класс не издевается. Этот класс используется для вызова класса проекта, который является оберткой для другого класса, который эффективно создает экземпляр класса Server.
Я извлекаю здесь части кода, которые дают смысл для того, о чем я говорю.
Юнит тест :
@patch('jsonrpc_requests.jsonrpc.Server')
def test_get_question_properties(self, mockServer):
lime_survey = Questionnaires()
# ...
Анкеты класса :
class Questionnaires(ABCSearchEngine):
""" Wrapper class for LimeSurvey API"""
def get_question_properties(self, question_id, language):
return super(Questionnaires, self).get_question_properties(question_id, language)
Классовые анкеты вызывают метод get_question_properties
из класса ABCSearchEnginge(ABC)
. Этот класс инициализирует класс Server
, чтобы обеспечить соединение с внешним API.
Класс ABCSearchEnginge :
class ABCSearchEngine(ABC):
session_key = None
server = None
def __init__(self):
self.get_session_key()
def get_session_key(self):
# HERE the self.server keep getting real Server class instead the mocked one
self.server = Server(
settings.LIMESURVEY['URL_API'] + '/index.php/admin/remotecontrol')
Так как тест издевается над классом сервера, почему он не издевается? Что такое недостающие части?