Articles of burlándose

¿Cómo registrar una solicitud y responder utilizando un proxy en Mountebank?

Estoy creando un proceso impostor utilizando Mountebank y quiero registrar la solicitud y la respuesta. Para crear un impostor de http utilicé el siguiente comando CURL como se describe en su documentación. curl -i -X POST -H ‘Content-Type: application/json’ http://127.0.0.1:2525/imposters –data ‘{ “port”: 6568, “protocol”: “http”, “name”: “proxyAlways”, “stubs”: [ { “responses”: [ { “proxy”: […]

Pruebas de Python usando una biblioteca simulada para la entrada del usuario en un bucle

Estoy intentando usar una biblioteca simulada para probar una parte del código. En este código, la entrada sin formato del usuario se acepta en un bucle for como se muestra a continuación. He escrito el caso de prueba test_apple_record que puede proporcionar un solo valor de entrada de usuario para el número de bandeja. Pero, […]

Python-mock: cómo probar si se llamó a super ()

Tengo la siguiente estructura: class A(Object): def method(self): return ‘a’ class B(A): def __init__(self, test): self.test = test def method(self): if self.test: return super(A, self).method(self) else: return ‘b’ Lo que quiero hacer es escribir un caso de prueba que pruebe que si self.test es verdadero, entonces se llamó a la función super y se llamó […]

Burlándose de la construcción de una clase

Estoy empezando a usar la biblioteca simulada de Python para ayudar a escribir pruebas unitarias más concisas y aisladas. Mi situación es que tengo una clase que lee datos de un formato bastante velludo y quiero probar un método en esta clase que presente los datos en un formato limpio. class holds_data(object): def __init__(self, path): […]

Clase simulada y método de reclamación de llamadas

Averiguado sobre cómo burlarse de una clase y poder afirmar que sus métodos se llaman con algunos argumentos. Cuando afirmo la llamada, mock_calls afirmación “No se llama”, pero puedo ver la llamada al método en el atributo mock_calls . sandbox/module.py class Subject(object): def __init__(self): pass def run(self, *args, **kwargs): reference = Reference(*args, **kwargs) reference.method_a(*args) class […]

Cómo burlarse de un objeto / llamada boto3 cliente

Estoy tratando de burlarme de una función particular de boto3. Mi módulo, Limpieza, importa boto3. La limpieza también tiene una clase, “limpia”. Durante init, cleaner crea un cliente ec2: self.ec2_client = boto3.client(‘ec2’) Quiero burlarme del método del cliente ec2: desribe_tags (), que Python dice que es: <bound method EC2.describe_tags of > lo más lejos que […]

Burlarse de módulos importados en Python

Estoy intentando implementar pruebas unitarias para la función que utiliza objetos externos importados. Por ejemplo, helpers.py es: import os import pylons def some_func(arg): … var1 = os.path.exist(…) var2 = os.path.getmtime(…) var3 = pylons.request.environ[‘HTTP_HOST’] … Así que cuando estoy creando una prueba unitaria para ello, hago algunas burlas (minimock en mi caso) y sustituyo las referencias […]

¿Cómo pruebo un cliente API con Python?

Estoy trabajando en una biblioteca cliente para una API popular. Actualmente, todas mis pruebas unitarias de dicho cliente están realizando llamadas API reales contra una cuenta de prueba. Aquí hay un ejemplo: def test_get_foo_settings(self): client = MyCustomClient(token, account) results = client.get_foo_settings() assert_is(type(results), list) Me gustaría dejar de hacer llamadas API reales en mi cuenta de […]

Mock clase padre __init__ método

Estoy tratando de escribir algunas pruebas de unidad en una clase que se deriva de otra, pero tengo algunas dificultades para burlarme del método de inicio de clase padre, que afaik no se puede, así que estoy buscando una sugerencia. Aquí un ejemplo de cómo son mis clases. Importado.py class Imported(): def __init__(self, a=”I am […]

Cuando se usa unittest.mock.patch, ¿por qué autospec no es True de forma predeterminada?

Cuando parchea una función usando simulacro, tiene la opción de especificar autospec como Verdadero: Si establece autospec = Verdadero, la simulación se creará con una especificación del objeto que se está reemplazando. Todos los atributos del simulacro también tendrán la especificación del atributo correspondiente del objeto que se reemplaza. Los métodos y funciones que se […]