¿Hay algún mecanismo simple para anular la configuración de Django para una prueba unitaria? Tengo un administrador en uno de mis modelos que devuelve un número específico de los últimos objetos. La cantidad de objetos que devuelve se define mediante una configuración NUM_LATEST.Cómo probar la unidad con diferentes configuraciones en Django?
Esto tiene el potencial de hacer que mis pruebas fallen si alguien cambiara la configuración. ¿Cómo puedo anular las configuraciones en setUp()
y luego restaurarlas en tearDown()
? Si eso no es posible, ¿hay alguna forma de que yo pueda parchear el método o simular la configuración?
EDIT: Aquí está mi código de gestor:
class LatestManager(models.Manager):
"""
Returns a specific number of the most recent public Articles as defined by
the NEWS_LATEST_MAX setting.
"""
def get_query_set(self):
num_latest = getattr(settings, 'NEWS_NUM_LATEST', 10)
return super(LatestManager, self).get_query_set().filter(is_public=True)[:num_latest]
El administrador utiliza para cortar settings.NEWS_LATEST_MAX
queryset. El getattr()
se usa simplemente para proporcionar un valor predeterminado si la configuración no existe.
@Anto: ¿puedes explicar por qué o dar una mejor respuesta? – user
Cambió mientras tanto; el primero aceptado fue [este] (http://stackoverflow.com/a/913596/1030960);) – Anto