【问题标题】:Wrong default_storage during tests测试期间的 default_storage 错误
【发布时间】:2013-10-01 15:24:20
【问题描述】:

我有一个 TransactionTest,它尝试在不同的 default_storage 上运行:

  • settings.py:

    MEDIA_ROOT='/srv/http/my_proj/media'
    
  • tests.py:

    @override_settings(MEDIA_ROOT='/srv/http/my_proj/test')
    class OutputDataModule(TransactionTestCase):
        def test_01(self):
            myFunc()
    
  • views.py:

    def myFunc():
        print default_storage.path('')
    

为什么在测试阶段这给了我目录 media,而不是目录 test

提前致谢。

【问题讨论】:

  • 你使用的是哪个版本的 Django?
  • 最新稳定版:1.5.4。所以,正如你在下面发布的那样,它应该被修复......我错过了什么吗?
  • 是的,该错误声称已在该版本中修复。如果它似乎不起作用,那么我会对此案发表评论。或者更好的是添加回归测试并解决问题。

标签: django unit-testing testing


【解决方案1】:

这是 Django 中的一个错误,它似乎已在当前主版本 (1.7dev)、1.6 预发行版和 1.5.X 稳定版 (1.5.4) 上修复https://code.djangoproject.com/ticket/17744

【讨论】:

    【解决方案2】:

    我解决了:

    • tests.py

      class OutputDataModule(TransactionTestCase):
          def test_01(self):
              with self.settings(MEDIA_ROOT='/srv/http/my_proj/test'):
                  myFunc()
      

    也许这只是 ovverride_settings() 装饰器的错误...

    【讨论】:

      猜你喜欢
      • 2011-05-29
      • 1970-01-01
      • 2013-05-25
      • 2018-06-09
      • 2016-12-20
      • 2020-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多