クライアント用にペイウォール CMS + 請求システムを構築しましたが、テストをより厳密にする必要があります。
私はすべてのデータを Django ORM に保管し、さまざまな間隔で実行される一連の Celery タスクを使用して、ユーザーが請求書を支払わないときに新しい請求書と請求書のリマインダーが送信され、アクセスがカットされるようにします。
たとえば、次のようなテストを実行できるようになりたいです。
新しいユーザーを作成し、サイトへの X 日間のアクセスに対する請求書を生成します
X + 1 日の経過をシミュレートし、Celery で設定したすべてのタスクを実行します。
他の X 日間の新しい請求書がユーザーに発行されていることを確認します。
私がこれまでに思いついた KISS のアプローチは、すべてのテストを別のマシンで行い、実際に OS レベルで日付/時刻を操作することです。したがって、テスト スクリプトは次のようになります。
システム日付を 1 日目に設定する
新しいユーザーを作成し、X 日間のアクセスに対する最初の請求書を作成します
システム日付を 1 日進めます。すべてのセロリ タスクを実行します。X + 1 日が「経過」するまで繰り返す
新しい請求書が発行されたことを確認する
少し面倒ですが、うまくいくと思います。それを成し遂げる方法に関する他のアイデアはありますか?