找不到媒体文件self.client.get()在Python TestCas中

2024-09-30 18:31:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我在项目根目录下的media文件夹中有一个图像。我可以./manage.py runserver并通过浏览器中的127.0.0.1:8000/media/img.jpgurl成功访问我的文件。但是下面的测试失败了404!=200。为什么?在

class MyTestCase(TestCase):
    def test_image_shows(self):
         response = self.client.get('/media/img.jpg')
         self.assertEquals(response.status_code, 200)

设置.py

^{pr2}$

Tags: 文件项目py图像self文件夹imgmanage
1条回答
网友
1楼 · 发布于 2024-09-30 18:31:57

这既不简单也不优雅,但这是我找到的最简单的方法:

1)在你的网址.py(在生产中未启用):

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # ... the rest of your URLconf goes here ...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

2)为您的测试用例启用DEBUG(以便启用静态规则):

^{pr2}$

如果您在测试期间编写媒体,您可能还希望为测试指定一个不同的MEDIA_ROOT,以避免污染您的开发程序MEDIA_ROOT。可以找到一个例子on caktus blog。在

相关问题 更多 >