Articles of prueba de unidad

¿Hay alguna forma de verificar con la prueba de unidad de Python si un iterable no está vacío?

Después de enviar las consultas a un servicio, obtengo un diccionario / una lista de nuevo y quiero asegurarme de que no esté vacío. Estoy en Python 2.7. Me sorprende que no vea ningún método assertEmpty para la instancia de la clase unittest.TestCase . Las alternativas existentes tales como: self.assertTrue(bool(d)) y self.assertNotEqual(d,{}) y self.assertGreater(len(d),0) simplemente […]

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

¿Cómo sabe @ mock.patch qué parámetro usar para cada objeto simulado?

Mirando esta página web: http://www.toptal.com/python/an-introduction-to-mocking-in-python – El autor habla sobre Mocking and Patching in Python y da un ejemplo bastante sólido del “mundo real” . La parte que me está haciendo tropezar es entender cómo el trabajo de marco de prueba de unidad sabe qué objeto simulado se pasa a qué parche. #!/usr/bin/env python # […]

Python: Creando un directorio falso o falso con archivos para probar la unidad

Estoy tratando de crear una prueba unitaria para la siguiente función: def my_function(path): #Search files at the given path for file in os.listdir(path): if file.endswith(“.json”): #Search for file i’m looking for if file == “file_im_looking_for.json”: #Open file os.chdir(path) json_file=json.load(open(file)) print json_file[“name”] Sin embargo, estoy teniendo problemas para crear un directorio falso con archivos para que […]

¿Cómo hago la prueba unitaria de Django Views?

Quiero comenzar a integrar las pruebas unitarias en mis proyectos de Django y descubrí que la prueba de una vista es complicada debido a la forma en que Django implementa vistas con funciones. Por ejemplo, cada función es una vista / página en Django si la función tiene una URL. ¿Cómo hago la prueba unitaria […]