Suppose, I have a code snippet as
foo = SomeClass()
bar = foo[1:999].execute()
To test this, I have tried something as
foo_mock = Mock()
foo_mock[1:999].execute()
Unfortunately, this raised an exception,
TypeError: 'Mock' object is not subscriptable
So, How can I create a subscriptable Mock object?
Just use a MagicMock instead.
>>> from unittest.mock import Mock, MagicMock
>>> Mock()[1:999]
TypeError: 'Mock' object is not subscriptable
>>> MagicMock()[1:999]
<MagicMock name='mock.__getitem__()' id='140737078563504'>
It's so called "magic" because it supports __magic__ methods such as __getitem__.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With