我有一个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('')
为什么在测试阶段这会给我目录媒体,而不是目录测试?
提前致谢。
答案 0 :(得分:1)
这是Django中的一个错误,似乎修复了当前的主人(1.7dev),1.6预发行版和1.5.X稳定版(1.5.4)https://code.djangoproject.com/ticket/17744
答案 1 :(得分:0)
我解决了使用:
tests.py
class OutputDataModule(TransactionTestCase):
def test_01(self):
with self.settings(MEDIA_ROOT='/srv/http/my_proj/test'):
myFunc()
也许这只是 ovverride_settings()装饰者的错误......