Articles of prueba

Python: ¿Cómo hago archivos temporales en mi suite de prueba?

(Estoy usando Python 2.6 y la nose .) Estoy escribiendo pruebas para mi aplicación Python. Quiero que una prueba abra un nuevo archivo, lo cierre y luego lo elimine. Naturalmente, prefiero que esto suceda dentro de un directorio temporal, porque no quiero destruir el sistema de archivos del usuario. Y, tiene que ser un sistema […]

unittest y metaclase: prueba automática * generación de método

Cuando creo pruebas para un marco, empiezo a notar el siguiente patrón: class SomeTestCase(unittest.TestCase): def test_feat_true(self): _test_feat(self, True) def test_feat_false(self): _test_feat(self, False) def _test_feat(self, arg): pass # test logic goes here Así que quiero crear test_feat_* progtwigción métodos de test_feat_* para este tipo de clases de prueba con una metaclase. En otras palabras, para cada […]

Lo que es más eficiente .objects.filter (). Existe () o se envuelve () en un bash

Estoy escribiendo pruebas para una aplicación django y quiero comprobar si un objeto se ha guardado en la base de datos. ¿Cuál es la forma más eficiente / correcta de hacerlo? User.objects.filter(username=testusername).exists() o try: User.objects.get(username=testusername) except User.DoesNotExist:

Comprobando si la función ha sido llamada varias veces con diferentes parámetros

Supongamos que tenemos una función f(x,y) y otra función def g(): # … f(i,j) # i,j vary and f is called multiple times # … Queremos escribir una prueba de unidad que verifique si f se llama el número de veces y con los parámetros correctos. def test_g(): with patch(‘mymodule.f’) as function: assert function.gacs.call_count == […]

cobertura.py: excluir archivos

¿Cómo excluyo archivos completos de los informes de Cover.py ? De acuerdo con la documentación puede excluir el código por líneas coincidentes. Quiero excluir archivos completos, para que los informes no incluyan bibliotecas de terceros. ¿Me estoy perdiendo de algo? Se puede hacer?

¿Cómo simular el datetime.now () de python en un método de clase para pruebas de unidad?

Estoy tratando de escribir pruebas para una clase que tiene métodos como: import datetime import pytz class MyClass: def get_now(self, timezone): return datetime.datetime.now(timezone) def do_many_things(self, tz_string=’Europe/London’): tz = pytz.timezone(tz_string) localtime_now = self.get_now(tz) … return things Quiero probarlo, y para hacerlo debo asegurarme de que la llamada a datetime.datetime.now() devuelva algo predecible. He estado leyendo muchos […]

Ejecutar pruebas unitarias con Nose en un entorno Python como Autodesk Maya?

Me gustaría comenzar a crear pruebas unitarias para mis scripts mayas. Estos scripts se deben ejecutar dentro del entorno Maya y dependen del espacio de nombres del módulo maya.cmds . ¿Cómo puedo ejecutar pruebas de nariz desde un entorno de ejecución como Maya?

Python factory_boy library m2m en el modelo Django?

Actualmente estoy usando factory_boy para crear accesorios en mis pruebas. Factory_boy docs solo mencionó sobre SubFactory que podría actuar como un campo ForeignKey en un modelo. Sin embargo, no había nada en la asociación ManyToMany. Si tuviera un modelo de publicación posterior, ¿cómo podría crear una fábrica para él? class Post(models.Model): title = models.CharField(max_length=100) tags […]

Django probando modelo con ImageField

Necesito probar el modelo de foto de mi aplicación Django. ¿Cómo puedo burlar el ImageField con un archivo de imagen de prueba? tests.py class PhotoTestCase(TestCase): def test_add_photo(self): newPhoto = Photo() newPhoto.image = # ?????? newPhoto.save() self.assertEqual(Photo.objects.count(), 1)

¿Qué números puede pasar como verbosidad en la ejecución de los conjuntos de pruebas unitarias de Python?

El framework unittest de Python tiene un concepto de verbosidad que parece que no puedo encontrar definido en ninguna parte. Por ejemplo, estoy ejecutando casos de prueba como este ( como en la documentación ): suite = unittest.TestLoader().loadTestsFromTestCase(MyAwesomeTest) unittest.TextTestRunner(verbosity=2).run(suite) El único número que he visto pasar como verbosidad es 2. ¿Qué es este número mágico, […]