Cannot pickle Mock/MagicMock objects, or use them with multiprocessing
@johnslavik ya está trabajando en esto.
Desde el 26/7/2026.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
Mocks and MagicMocks from the unittest.mock packages cannot be pickled, which means that unittests that call multiprocessing code with a mock will fail. Example:
from unittest.mock import Mock, MagicMock
import pickle
class Foo:
pass
pickle.dumps(Mock(spec=Foo))
pickle.dumps(MagicMock(spec=Foo))
Both of the pickle.dumps commands at the bottom raise: PicklingError: args[0] from __newobj__ args has the wrong class. The same exception is raised when calling e.g. multiprocess.starmap where one of the starmap parameters is the mocked object, but it took me quite some time to dig into the starmap arguments to figure this out.
I'm running python version 3.10.6.
This appears to be the same issue as described in #58782, but that was closed in 2012 with an implication that this is intended behavior, and "it looks like implementing __reduce__ is sufficient for my use case", but no explanation of how to properly implement said __reduce__. At the very least, including some information in e.g. the unittest.mock or pickle documentation about how to work around this would be very useful.
- Lenguaje dominante
- Python
- Estrellas
- 77.2k
- Forks
- 36k
- Merge medio
- 1 d 9 h
- PR fusionados (30 d)
- 558
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de python/cpython
-
docs pending
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
stdlib type-feature
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
stdlib type-feature
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
build type-bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
-
stdlib topic-email type-feature
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Todos los issues de python/cpython
Issues similares
-
link-check link-check:sphinx-theme
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
qgis/QGIS-Documentation#11275 ·
-
bug priority:normal ready-for-dev
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
OpenHands/extensions#626 · 1 comentario ·
-
Change observation tooltip text Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
CSCfi/sd-search-api#39 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100