mastering mocks

Dec 20, 2016 15:26

Для меня было откровением, что в mock (MagicMock) можно не только указывать return_value, но и продолжать описывать свойства возвращаемого объекта.

Из реального кода:

mockos.return_value.new_keypair.return_value.private_key = "key"

Означает: Класс, который замокан, возвращает объект, у которого есть метод new_keypair, который возвращает объект, у которого есть свойство "private_key".

Это вместо нелепой конструкции, которую я использовал ранее:

mock_key = mock.MagicMock()
mock_key.private_key = "key"
mock_os_inst = mock.MagicMock(return_value=mock_key)
mockos = mock.MagicMock(return_value=mock_os_inst)

mock, python, py.test, tests

Previous post Next post
Up