Skip to content

spy on frozen dataclass #280

Open
Open
@jennydaman

Description

@jennydaman

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)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions