¿Existe 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. El número de objetos que devuelve se define mediante una configuración NUM_LATEST.
Esto tiene el potencial de hacer que mis pruebas fallen si alguien cambia la configuración. ¿Cómo puedo anular la configuración setUp()
y luego restaurarla tearDown()
? Si eso no es posible, ¿hay alguna forma de que pueda modificar el método o simular la configuración?
EDITAR: Aquí está mi código de administrador:
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 settings.NEWS_LATEST_MAX
para dividir el conjunto de consultas. Se getattr()
utiliza simplemente para proporcionar un valor predeterminado en caso de que la configuración no exista.