단위 테스트를 위해 Django 설정을 재정의하는 간단한 메커니즘이 있습니까? 특정 수의 최신 개체를 반환하는 내 모델 중 하나에 관리자가 있습니다. 반환되는 개체 수는 NUM_LATEST 설정에 의해 정의됩니다.
누군가가 설정을 변경하면 내 테스트가 실패 할 가능성이 있습니다. 설정을 무시 setUp()
하고 나중에 복원 하려면 어떻게 해야 tearDown()
합니까? 그것이 가능하지 않다면 원숭이 패치 방법이나 설정을 모의 할 수있는 방법이 있습니까?
편집 : 다음은 내 관리자 코드입니다.
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()
단순히 설정이 존재하지 않아야 기본을 제공하는 데 사용됩니다.