Articles of burlándose de

¿Por qué el ejemplo más simple de request_mock falla con pytest?

Tengo un problema peculiar con requests_mock . Quiero usarlo con pytest para probar mi biblioteca de envoltorios de API. He intentado usar el primer ejemplo en los documentos de request_mock , excepto que lo puse en un test_mock () -function y agregué una statement de afirmación para que pytest lo descubriera. El siguiente código falla: […]

Python burlándose de módulos de terceros

Estoy tratando de probar algunas clases que procesan tweets. Estoy usando twitter twitter seisohsix para lidiar con la API de Twitter. Tengo una clase que actúa como una fachada para las clases de Twitter, y mi idea fue burlarse de las clases de sixohsix reales para simular la llegada de tweets, al generar nuevos tweets […]

¿Usando Mocks dentro de Doctests?

Estoy usando doctests. Me pregunto cuál es la forma correcta de documentar una función que realiza una acción externa (por ejemplo, envía un correo electrónico, se conecta a un servidor, etc.). Usar Mock parece ser la respuesta pero embarrará la cadena de documentos de la función. Por ejemplo: class SSHConnection(BaseConnection): “””Provides basic SSH functions. >>> […]

Cómo burlarse del operador “+” en python (específicamente datetime.date + datetime.timedelta)

He resuelto algunos problemas de burla en Django y el último obstáculo (espero) es la siguiente situación. Tengo una clase FakeDate, que deriva de datetime.date , que se burla. La clase FakeDate funciona como se esperaba, sin embargo, tengo un problema al agregar datetime.timedelta a FakeDate, ya que devuelve un datetime.date genuino, en lugar de […]

¿Cómo me burlo de un método que utiliza requests.get en mi clase?

Estoy intentando crear algunas pruebas unitarias para mi clase. Quiero burlarme de estos, para no quemar mi cuota de API ejecutando algunas de estas pruebas. Tengo varios casos de prueba que llamarán al método de fetch y, dependiendo de la URL pasada, obtendré resultados diferentes. Mi clase de ejemplo se ve así: import requests class […]

parche py.test en accesorio

Uso lo siguiente para simular valores constantes para una prueba con py.test: @patch(‘ConstantsModule.ConstantsClass.DELAY_TIME’, 10) def test_PowerUp(): … thing = Thing.Thing() assert thing.a == 1 Esto se burla de DELAY_TIME como se usa tanto en la prueba como en Thing, que es lo que esperaba. Quería hacer esto para todas las pruebas en este archivo, así […]

¿Por qué el monkeypatch de Python no funciona al importar una clase en lugar de un módulo?

Estaba teniendo problemas al usar el código de la respuesta aceptada aquí . El código funciona dependiendo de cómo hago la importación de datetime. ¿Porqué es eso? ¿Es posible burlarse de él para que funcione en ambos sentidos? Estoy usando Python 3.4 . El siguiente código ilustra el problema: import pytest from datetime import datetime […]

ImportError: no se pueden importar ajustes de nombre

Estoy usando python 2.7.6 en Ubuntu 14.04.2 LTS. Estoy usando simulacros para simular algunas pruebas de unidad y me doy cuenta de que cuando imito simulacro, falla la importación de envolturas. ¿No estoy seguro de si hay una versión diferente de una simulacro o seis que debería usar para que funcione la importación? No se […]

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__’, […]