当我运行项目的默认测试时,一项测试失败:
失败:test_current_site_in_context_after_login (django.contrib.auth.tests.views.LoginTest)
回溯(最近一次通话最后一次):文件“/Users/me/Dropbox/dotfiles/.virtualenvs/mysite/lib/python2.7/site-packages/django/contrib/auth/tests/views.py”,第 294 行,在 test_current_site_in_context_after_login self.assertEqual(response.context['site_name'], site.name) AssertionError: 'MySite' != u'example.com'
我的 settings.py 文件包含:
SITE_NAME = 'MySite'
我在设置文件末尾的上下文中加载 SITE_NAME:
TEMPLATE_CONTEXT_PROCESSORS = GLOBAL_SETTINGS.TEMPLATE_CONTEXT_PROCESSORS + (
'utils.context_processors.mysite',
)
utils/context_processors.py 包含:
from mysite import settings
def mysite(request):
return {
'site_name': settings.SITE_NAME,
'request': request
}
我查看了源代码,但我不明白为什么测试将我的网站名称与“example.com”进行比较。我还查看了 django.contrib.sites.models.Site 类,想知道是否需要清除 Site 对象缓存。但是,我没有缓存设置。.pyc 文件中是否存在冲突,以至于我需要删除 virtualenv 中的所有 pyc 文件?
顺便说一句,我正在运行 Django 1.4.2 和 2.7.1。
非常感谢。