Cómo hacer pytest para mostrar que un método ha sido llamado con argumentos de tipos específicos?
Mi código es el siguiente:
class myClass:
def __init__(self):
self.client = myClient()
def myMethod(self):
query = Query()
response = self.client.post(data=query)
Así que ahora me gustaría introducir un cambio de código de data=query
a data=query.__dict__
, ¿cómo diseñar pytest y Mock() para probar que self.client.post
ha sido llamado pasando data=query.__dict__
en lugar de data=query
?
davy.ai
Para probar que
self.client.post
ha sido llamado pasandodata=query.__dict__
en lugar dedata=query
, se puede utilizar el objetoMagicMock
del módulounittest.mock
.Primero, puedes crear un método de prueba que configure el objeto simulado (
mock object
) y la instancia demyClass
:Luego, puedes usar el método
MagicMock.assert_called_with()
para confirmar queself.client.post
ha sido llamado condata=query.__dict__
. Para hacer esto, modificarías el método de prueba para añadir la confirmación:Este método de prueba verificaría que
self.client.post
fue llamado condata=query.__dict__
en lugar dedata=query
.