首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django自定义时区中间件导致django.contrib.humanize测试失败

django自定义时区中间件导致django.contrib.humanize测试失败
EN

Stack Overflow用户
提问于 2015-04-01 03:12:44
回答 1查看 268关注 0票数 2

下面的自定义中间件处于活动状态时,会在我运行python manage.py test时导致此测试失败。我们运行的是Django 1.5.4:

代码语言:javascript
复制
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'

有问题的中间件:

代码语言:javascript
复制
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

如何修改此中间件以使测试不会失败?

EN

回答 1

Stack Overflow用户

发布于 2015-05-15 21:18:31

您可以在测试期间模拟它,或者确保用户时区与您运行测试的时区相同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29376612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档