django测试重定向失败

时间:2015-06-04 08:06:04

标签: django unit-testing

我试图为我的视图功能编写测试,但遇到了问题。

我想检查一个特定的函数是否返回某种类型的json,所以我

编写了以下代码:

client = Client()
response = client.get('/func/1/True')
self.assertRedirects(response, "login/?next=/func/1/True", 302)

当视图函数为:

@login_required
def func(request, objId, flag):
    return json.dumps(something)

但是当我运行测试时,我从断言中得到了失败:

ValueError: The file 'myApp/css/bootstrap.css' could not be found with
    <whitenoise.django.GzipManifestStaticFilesStorage object at 0x0000000004C7A898>.

但是当我在没有测试的情况下运行应用程序时,它可以找到并找到该文件。

注意:我从eclipse运行测试(如果它有所不同......)

任何想法为什么会发生?

1 个答案:

答案 0 :(得分:3)

当我为我的测试禁用了whitnoise时,它对我有用。我通过在设置中禁用STACTFILES_STORAGE来完成此操作。您可以使用@override_settings装饰器为您的测试执行此操作:

from django.test import TestCase, override_settings
from django.test import Client

class ClientTest(TestCase):
    def setUp(self):
        self.c = Client()

    @override_settings(STATICFILES_STORAGE = None) # added decorator
    def test_client_works(self):
        resp = self.c.get('/some/page/')
        self.assertTrue(resp.status_code is 200)

    def tearDown(self):
        pass