Using unittest.mock

https://docs.python.org/3/library/unittest.mock.html

https://realpython.com/python-mock-library/
Understanding the Python Mock Object Library

INTRODUCTION

'unittest.mock' is a library for testing in Python (Py3.3+). It allows you to replace parts of your system under test with mock objects and make assertions about how they have been used.

'Mock' is a flexible mock object intended to replace the use of stubs and test doubles throughout your code.

'MagicMock' is a subclass of 'Mock' with all the magic methods pre-created and ready to use.

Mock can create arbitrary attributes on the fly.


from unittest.mock import Mock

mock = Mock()

print(mock)
print(mock.some_attribute)
print(mock.do_something())

# <Mock id='140138960515368'>
# <Mock name='mock.some_attribute' id='140138960515592'>
# <Mock name='mock.do_something()' id='140138958324288'>