下面的自定义中间件处于活动状态时,会在我运行python manage.py test时导致此测试失败。我们运行的是Django 1.5.4:
FAIL: test_naturalday_uses_localtime (django.contrib.humanize.tests.HumanizeTests)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/vagrant/.virtualenvs/endaga-server/local/lib/python2.7/site-packages/django/contrib/humanize/tests.py", line 161, in test_naturalday_uses_localtime
self.humanize_tester([dt], ['yesterday'], 'naturalday')
File "/home/vagrant/.virtualenvs/endaga-server/local/lib/python2.7/site-packages/django/contrib/humanize/tests.py", line 47, in humanize_tester
msg="%s test failed, produced '%s', should've produced '%s'" % (method, rendered, result))
AssertionError: naturalday test failed, produced 'today', should've produced 'yesterday'有问题的中间件:
class TimezoneMiddleware(object):
"""Activates django's timezone processing."""
def process_request(self, request):
"""Intercedes during a request."""
if not request.user:
return
try:
user_profile = models.UserProfile.objects.get(user=request.user.id)
timezone.activate(pytz.timezone(user_profile.timezone))
except models.UserProfile.DoesNotExist:
return如何修改此中间件以使测试不会失败?
发布于 2015-05-15 21:18:31
您可以在测试期间模拟它,或者确保用户时区与您运行测试的时区相同。
https://stackoverflow.com/questions/29376612
复制相似问题