Apakah ada mekanisme sederhana untuk menimpa pengaturan Django untuk pengujian unit? Saya memiliki manajer di salah satu model saya yang mengembalikan sejumlah objek terbaru. Jumlah objek yang dikembalikan ditentukan oleh pengaturan NUM_LATEST.
Ini berpotensi membuat pengujian saya gagal jika seseorang mengubah pengaturan. Bagaimana saya bisa mengganti pengaturan setUp()
dan kemudian mengembalikannya tearDown()
? Jika itu tidak memungkinkan, adakah cara agar saya dapat menambal metode atau meniru pengaturannya?
EDIT: Ini kode manajer saya:
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]
Manajer menggunakan settings.NEWS_LATEST_MAX
untuk memotong queryset. Ini getattr()
hanya digunakan untuk memberikan default jika pengaturan tidak ada.