gpt4 book ai didi

django - 模拟自定义文件存储后端

转载 作者:行者123 更新时间:2023-12-02 10:56:32 25 4
gpt4 key购买 nike

我创建了一个自定义文件存储后端,它使用 boto 调用 Amazon S3 并将文件存储在那里(我知道 django-storages 也可以处理这个问题,但我们遇到了几个问题)。我将它存储在 utils 模块中,并在我的模型中使用它,如下所示:

from utils.s3 import S3Storage

class Photo(models.Model):
image = models.ImageField(storage=S3Storage(), upload_to="images")

因此,每当使用图像文件创建照片时,图像文件都会上传到 S3 存储桶。

我不想在测试期间调用 S3,但在这种情况下弄清楚要模拟什么是很困难的。我无法模拟整个图像字段,因为我需要通过 Tastypie 测试创建模型。

有什么想法吗?

最佳答案

您可以在 S3Storage 类中模拟 _save 方法,以避免上传到 S3。您可以改用FileSystemStorage

我针对您的情况的解决方案如下:

import mock
from utils.s3 import S3Storage
from django.core.files.storage import FileSystemStorage


fss = FileSystemStorage()

@mock.patch.object(S3Storage, '_save', fss._save)
def test_something():
assert True

关于django - 模拟自定义文件存储后端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22723122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com