在Django测试运行期间避免404上的警告? [英] Avoid warnings on 404 during django test runs?

查看:31
本文介绍了在Django测试运行期间避免404上的警告?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

刚刚升级到Django 1.3。现在,每当我检查给定的URL是404时,我的测试套件都会显示一堆无用的警告,就像这样。在Django 1.2版中,它没有做到这一点。

例如,假设我们连接了视图和URL,以便此测试通过:

def test_foo(self):
    response = self.client.get('/foo/bar/')
    self.assertEqual(response.status_code, 200)
    response = self.client.get('/foo/bar2/')
    self.assertEqual(response.status_code, 404)

虽然测试通过,但404(我们预期的)会触发对控制台的警告:

.WARNING未找到:/foo/bar2/

这只是无用的噪音;在我当前的一个测试套件中大约有30个噪音。

有没有办法仅在测试期间使这些静音?我想在正常操作时让它们开着。而且我不想用过滤从"django.request"记录器中删除所有警告。

推荐答案

警告来自此处: http://code.djangoproject.com/svn/django/trunk/django/core/handlers/base.py

您要做的是在测试开始时将"django.request"模块的日志记录阈值设置为高于警告(例如,错误)的值,然后再将其设置回来。

尝试这样的操作:

import logging

#before tests
logger = logging.getLogger('django.request')
previous_level = logger.getEffectiveLevel()
logger.setLevel(logging.ERROR)

#after tests
logger.setLevel(previous_level)

这篇关于在Django测试运行期间避免404上的警告?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆