How to mock a dataclass

Viewed 343

How can I create a mock of a dataclass so that asdict works on it?

This doesn't seem to work:

>>> from dataclasses import dataclass, asdict
>>> @dataclass
... class A:
...     foo: int
>>> asdict(A(foo=1))
{'foo': 1}
>>> from unittest import mock
>>>
>>> asdict(mock.create_autospec(A))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.8/dataclasses.py", line 1072, in asdict
    raise TypeError("asdict() should be called on dataclass instances")
TypeError: asdict() should be called on dataclass instances

Note: Python 3.8.5

0 Answers
Related