Articles of burlándose de

¿Alguna forma de restablecer un método simulado a su estado original? – Python Mock – simulacro 1.0b1

Tengo la siguiente clase simplificada de que me estoy burlando: class myClass(object): @staticmethod def A(): #… def check(self): #code… value = self.A() #more code… En mi primera prueba me burlo solo del método A from django.test import TestCase from mock import MagicMock import myClass class FirstTest(TestCase): def setUp(self): myClass.A = MagicMock(return_value = ‘CPU’) def test(self): […]

Burlándose de boto3 S3 método del cliente Python

Estoy tratando de burlarme de un método singular del objeto cliente de boto3 s3 para lanzar una excepción. Pero necesito todos los otros métodos para que esta clase funcione normalmente. Esto es para que pueda probar una prueba de excepción singular cuando se produce un error al realizar una upload_part_copy 1er bash import boto3 from […]

Cómo probar o simular el contenido de “if __name__ == ‘__main__'”

Digamos que tengo un módulo con lo siguiente: def main(): pass if __name__ == “__main__”: main() Quiero escribir una prueba de unidad para la mitad inferior (me gustaría lograr una cobertura del 100%). Descubrí el módulo incorporado runpy que realiza el mecanismo de configuración / __name__ -setting, pero no puedo averiguar cómo simular o verificar […]

Python simulacro y librerías que no están instaladas.

Estoy trabajando en un software para un robot, que normalmente se ejecuta en la Raspberry Pi. Consideremos las importaciones de dos archivos: motor.py (ejecuta los motores): from RPi import GPIO as gpio y client.py (se comunica con el servidor y transmite los comandos a los motores): from rpi.motor import Motor Ambos archivos están en un […]

Afirmar una función / método no fue llamado usando Mock

Estoy usando la biblioteca Mock para probar mi aplicación, pero quiero afirmar que no se ha llamado a alguna función. Los mock.assert_called_with mock.assert_called_once_with hablan de métodos como mock.assert_called_with y mock.assert_called_once_with , pero no encontré nada como mock.assert_not_called o algo relacionado para verificar que el simulacro NO fue llamado . Podría ir con algo como lo […]

Mejor manera de simular atributos de clase en la prueba unitaria de python

Tengo una clase base que define un atributo de clase y algunas clases secundarias que dependen de él, por ejemplo, class Base(object): assignment = dict(a=1, b=2, c=3) Quiero hacer una prueba de unidad de esta clase con diferentes asignaciones , por ejemplo, diccionario vacío, solo elemento, etc. Esto es extremadamente simplificado, por supuesto, no es […]

¿Atributos simulados en simulacro de Python?

Me está costando bastante el uso de mock en Python: def method_under_test(): r = requests.post(“http://localhost/post”) print r.ok # prints “” if r.ok: return StartResult() else: raise Exception() class MethodUnderTestTest(TestCase): def test_method_under_test(self): with patch(‘requests.post’) as patched_post: patched_post.return_value.ok = True result = method_under_test() self.assertEqual(type(result), StartResult, “Failed to return a StartResult.”) La prueba realmente devuelve el valor correcto, […]

Parche __call__ de una función

Necesito parchear fecha y hora actual en las pruebas. Estoy usando esta solución: def _utcnow(): return datetime.datetime.utcnow() def utcnow(): “””A proxy which can be patched in tests. “”” # another level of indirection, because some modules import utcnow return _utcnow() Luego en mis pruebas hago algo como: with mock.patch(‘***.utils._utcnow’, return_value=***): … Pero hoy se me […]

¿Cómo monkeypatch datetime.datetime.now con py.test?

Necesito probar funciones que usan datetime.datetime.now() . ¿Cuál es la forma más fácil de hacer esto?

Simulacro de una función para elevar una excepción para probar un bloque de excepción

Tengo una función ( foo ) que llama a otra función ( bar ). Si la invocación de la bar() genera un HttpError , quiero manejarlo especialmente si el código de estado es 404, de lo contrario volverá a subir. Estoy tratando de escribir algunas pruebas unitarias en torno a esta función foo , burlándose […]