Как имитировать магический метод Queue.__next__? Приведенный ниже код с Side_effect не работает: [code]from unittest.mock import MagicMock
class Queue:
def __init__(self): self.nums = [1, 2, 3]
def __iter__(self): return self
def __next__(self): try: num = self.nums.pop() except Exception: raise StopIteration return num
class Consumer:
def __init__(self, queue): self._queue = queue
def consume(self): for msg in self._queue: raise ValueError(msg)
def test_it(): queue = MagicMock() queue.__next__.side_effect = [4, 5, 6] # not working consumer = Consumer(queue) consumer.consume() [/code] Интерпретатор Python даже не заходит внутрь метода __next__. Как заставить это работать?