我维护了一个大型Django网站,并决定将存储移至Amazon S3。
我们有很多单元测试,涵盖了帐单/发票代码。所有生成的文档会自动存储为文件,并且借助django-s3-storage
将它们透明地放置在S3中。
但是,为了正确模拟不同的场景,我们使用freezegun
实用程序来伪造测试中的系统时间。其中一些更改了一年或更长时间的时间,并且在尝试将文件推送到S3时,我们遇到了很多An error occurred (RequestTimeTooSkewed) when calling the ListObjectsV2 operation: The difference between the request time and the current time is too large.
有人对这种错误有很好的解决方案吗?我的第一个想法是:
mock
修补存储代码,然后将真实的datetime
推到那里-一种补丁,它增加了一层复杂性。