有什么简单的机制可以覆盖单元测试的Django设置吗?我的一个模型上有一个管理器,它返回特定数量的最新对象.它返回的对象数由NUM_LATEST设置定义.
如果有人改变设置,这可能会让我的测试失败.如何覆盖setUp()
上的设置,然后在tearDown()
上恢复它们?如果这是不可能的,有没有什么方法可以让我对方法进行修补或模拟设置?
EDIT:这是我的经理代码:
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]
经理使用settings.NEWS_LATEST_MAX
来分割查询集.getattr()
仅用于在设置不存在时提供默认值.