我想将prod设置与本地设置分开。我找到了这个库django-split-settings,它工作得很好。在
但是在我的代码中我有这样的东西:
if settings.DEBUG:
# do debug stuff
else:
# do prod stuff
问题是当我运行单元测试命令时:
^{pr2}$上面的if语句将settings.DEBUG
计算为false。这让我想知道,测试命令从哪个设置文件读取,以及如何更正它
我试着运行这样的命令:
./run ./manage.py test --settings=bx/settings
给我一个崩溃:
Traceback (most recent call last):
File "./manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/beneple/venv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 350, in execute_from_command_line
utility.execute()
File "/beneple/venv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 302, in execute
settings.INSTALLED_APPS
File "/beneple/venv/local/lib/python2.7/site-packages/django/conf/__init__.py", line 55, in __getattr__
self._setup(name)
File "/beneple/venv/local/lib/python2.7/site-packages/django/conf/__init__.py", line 43, in _setup
self._wrapped = Settings(settings_module)
File "/beneple/venv/local/lib/python2.7/site-packages/django/conf/__init__.py", line 99, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: Import by filename is not supported.
有什么想法吗?在
这就是我的run命令的样子
#!/usr/bin/env bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
docker run \
--env "PATH=/beneple/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" \
-e "DJANGO_SETTINGS_MODULE=bx.settings.local" \
--link beneple_db:db \
-v $DIR:/beneple \
-t -i --rm \
beneple/beneple \
$@
目前我的管理.py看起来像这样
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
如果我运行这个命令:
./run ./manage.py shell
它工作得很好。。但是当我试着跑的时候
./run ./flu.sh
然后进行测试_数据.py开头是这样的:
#!/usr/bin/env python
if __name__ == "__main__":
import os, sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
import django
django.setup()
..
from django.conf import settings
from settings import DOMAIN
它给了我一个错误:
Traceback (most recent call last):
File "./bx/test_data.py", line 18, in <module>
from settings import DOMAIN
ImportError: cannot import name DOMAIN
Done.
我不知道为什么会这样,因为我基准.py肯定有域名集。在
默认情况下,Django test设置DEBUG=False
https://docs.djangoproject.com/en/1.9/topics/testing/overview/#other-test-conditions
settings
是The Python path to a settings module
。所以bx
是您的根项目文件夹,并且设置.py文件就在那里相关问题 更多 >
编程相关推荐