gpt4 book ai didi

python - 在 django 中对 FileField 进行单元测试的干净方法是什么?

转载 作者:IT老高 更新时间:2023-10-28 20:34:40 26 4
gpt4 key购买 nike

我有一个带有 FileField 的模型。我想对它进行单元测试。 django 测试框架有很好的方法来管理数据库和电子邮件。 FileFields 有类似的东西吗?

如何确保单元测试不会污染实际应用程序?

提前致谢

PS:我的问题几乎与 Django test FileField using test fixtures 重复。但它没有一个公认的答案。只是想再次询问有关此主题的新内容。

最佳答案

Django 提供了一个很好的方法来做到这一点 - 使用 SimpleUploadedFileTemporaryUploadedFile。如果您只需要存储一些标记数据,SimpleUploadedFile 通常是更简单的选项:

from django.core.files.uploadedfile import SimpleUploadedFile

my_model.file_field = SimpleUploadedFile(
"best_file_eva.txt",
b"these are the file contents!" # note the b in front of the string [bytes]
)

这是 django 的神奇功能之一——在文档中不显示 :)。但是它被称为 here并实现here .

限制

请注意,您只能将 bytes 放在 SimpleUploadedFile 中,因为它是在幕后使用 BytesIO 实现的。如果您需要更真实的、类似文件的行为,您可以使用 TemporaryUploadedFile

对于 Python 2

如果你卡在 python 2 上,跳过内容中的 b 前缀:

my_model.file_field = SimpleUploadedFile(
"best_file_eva.txt",
"these are the file contents!" # no b
)

关于python - 在 django 中对 FileField 进行单元测试的干净方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4283933/

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