私は、現在の時刻を基準にして計算を行うdjangoモデルのメソッドを持っています。ここにスニペットがあります:
def next_date():
now = datetime.now()
trial_expires = max(self.date_status_changed + timedelta(self.trial_days), now)
return timezone.datetime(trial_expires.year, trial_expires.month+1, 1, tzinfo=trial_expires.tzinfo)
unittestを使用してdjango/pythonでこれをテストする適切な方法は何ですか? 私がやりたいのは、テストで「今」の値をハードコーディングできるようにして、さまざまなエッジケースを試すことができるようにすることです。理想的には、テストで現在の日時に依存することは避けたいと思います。
1 つのアプローチは、使用する「現在」の値をオーバーライドするオプションのパラメーターを受け入れるようにメソッドを変更することです。Python には、メソッド シグネチャを変更せずに同様のことを行う関数はありますか?