我最近致力于通过运行脚本加载初始数据的项目:
python manage.py shell < add_initial_data.py
我现在正在进行功能测试,必须调用此命令在测试数据库中加载初始数据。
我尝试使用subprocess.call
和call_command
来运行该脚本,但我找不到将脚本文件重定向到shell
的选项。
有办法吗?
我已经尝试了
subprocess.call(['python', 'manage.py', 'shell', '<', 'add_initial_data.py'])
和
call_command('shell', '<', 'add_initial_data.py')
但是错误无法识别< add_initial_data.py
答案 0 :(得分:0)
我认为你是从错误的角度接近这个。 Django使用fixtures加载初始数据。测试用例django test fixture loading也支持它 如果你在python 3并坚持你的方法,你可能会做
./manage.py shell <<EOF\ execfile('add_initial_data.py') \EOF