我正在编写一个严重依赖日期和时间的应用程序。我希望能够对now()
and有一个可注射的概念today()
。我在想我可以编写我自己版本的这两个函数来检查一些中心设置,我将其称为INJECTED_NOW
. 如果INJECTED_NOW
为 None,上述函数将只返回 和 的datetime.datetime.now()
值datetime.date.today()
。但是,如果INJECTED_NOW
有一个日期时间值,上述函数将使用它来获取 now() 和 today()。
我想知道如何存储 INJECTED_NOW 使其可变。我希望能够在测试用例的开头设置它并在另一个测试用例之前对其进行修改。同样,我希望能够从请求中设置它,也许使用中间件。
这种方法是否有意义,如果是,我应该如何存储 INJECTED_NOW?我想避免数据库访问。有没有解决这个问题的替代方法?