0

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

  • 设置.py:

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

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

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

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

提前致谢。

4

2 回答 2

1

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

于 2013-10-01T16:48:17.543 回答
0

我解决了使用:

  • 测试.py

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

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

于 2013-10-02T07:19:57.543 回答