Open
Description
Spy does not work on frozen dataclasses, it would be nice if it did (for instance, by using object.__setattr__(obj, name, spy)
from dataclasses import dataclass
from typing import Callable
def noop(*args, **kwargs):
pass
@dataclass(frozen=True)
class MyFrozenClass:
something: Callable = noop
def test_spy_frozen_dataclass(mocker: MockerFixture):
o = MyFrozenClass()
spy = mocker.spy(o, 'something')
Anyone also in this situation can use this workaround:
def test_spy_frozen_dataclass(mocker: MockerFixture):
o = MyFrozenClass()
spy = mocker.MagicMock(wraps=o.something)
object.__setattr__(o, 'something', spy)