Articles of burlándose de

Python SQLAlchemy – burlándose del método “desc” de un atributo de modelo

En mi aplicación, hay una clase para cada modelo que contiene consultas comúnmente utilizadas (supongo que es algo así como un “Repositorio” en lenguaje DDD). Cada una de estas clases recibe el objeto de sesión SQLAlchemy para crear consultas con la construcción. Estoy teniendo algunas dificultades para encontrar la mejor manera de afirmar que se […]

Clase burlona vs métodos

Quiero burlarme de un objeto python -psycopg2 – para probar mis clases. Cuando imprimo el objeto – dir(conn) , veo la conexión, extras, etc., todos en lista. conn = mock.MagicMock(psycopg2.connect) Resultado: [‘BINARY’, ‘Binary’, ‘DATETIME’, ‘DataError’, ‘DatabaseError’, ‘Date’, ‘DateFromTicks’, ‘Error’, ‘IntegrityError’, ‘InterfaceError’, ‘InternalError’, ‘NUMBER’, ‘NotSupportedError’, ‘OperationalError’, ‘ProgrammingError’, ‘ROWID’, ‘STRING’, ‘Time’, ‘TimeFromTicks’, ‘Timestamp’, ‘TimestampFromTicks’, ‘Warning’, ‘__builtins__’, ‘__doc__’, […]

Python se burla de no hacer llamadas

Estoy usando la biblioteca simulada para parchear una clase en un progtwig que se conecta a un recurso externo y envía una dictadura. La estructura va un poco como esta … code.py def make_connection(): connection = OriginalClass(host, port) connection.connect() connection.send(param) connection.close() test.py @mock.path(‘code.OriginalClass’) def test_connection(self, mocked_conn): code.make_connection() mocked_conn.assert_called_with(host, port) mocked_conn.connect.assert_called_once() mocked_conn.send.assert_called_with(param) El primer assert_called_with funciona […]

Burlándose de un solo método en un objeto

Estoy familiarizado con otras bibliotecas de burla en otros idiomas, como Mockito en Java, pero la biblioteca mock de Python me confunde la vida. Tengo la siguiente clase que me gustaría probar. class MyClassUnderTest(object): def submethod(self, *args): do_dangerous_things() def main_method(self): self.submethod(“Nothing.”) En mis pruebas, me gustaría asegurarme de que se haya llamado al main_method cuando […]

¿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 […]