Comment l'Unité de test avec des paramètres différents dans Django?

Est-il un simple mécanisme de remplacement des Django paramètres d'un test unitaire? J'ai un manager sur un de mes modèles qui renvoie un nombre précis de la dernière objets. Le nombre d'objets qu'elle renvoie est défini par un NUM_LATEST réglage.

Cela a le potentiel pour faire mes tests échouent si quelqu'un venait à changer le réglage. Comment puis-je remplacer les paramètres sur setUp() et par la suite de les restaurer sur tearDown()? Si ce n'est pas possible, est-il une manière que je peux monkey patch de la méthode ou de se moquer de l'paramètres?

EDIT: Voici mon code gestionnaire:

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]

Le gestionnaire utilise settings.NEWS_LATEST_MAX à couper le queryset. Le getattr() est simplement utilisé pour fournir une valeur par défaut si le paramètre n'existe pas.

  • pouvez-vous expliquer pourquoi ou de fournir une meilleure réponse?
  • Il a changé dans l'intervalle; l'ancien accepté un a celui-ci 😉
InformationsquelleAutor Soviut | 2009-05-27