在Django的功能测试中运行python脚本

时间:2018-02-15 18:41:38

标签: python django functional-testing

我最近致力于通过运行脚本加载初始数据的项目:

python manage.py shell < add_initial_data.py

我现在正在进行功能测试,必须调用此命令在测试数据库中加载初始数据。

我尝试使用subprocess.callcall_command来运行该脚本,但我找不到将脚本文件重定向到shell的选项。

有办法吗?

我已经尝试了

subprocess.call(['python', 'manage.py', 'shell', '<', 'add_initial_data.py'])

call_command('shell', '<', 'add_initial_data.py')

但是错误无法识别< add_initial_data.py

1 个答案:

答案 0 :(得分:0)

我认为你是从错误的角度接近这个。 Django使用fixtures加载初始数据。测试用例django test fixture loading也支持它 如果你在python 3并坚持你的方法,你可能会做

./manage.py shell <<EOF\ execfile('add_initial_data.py') \EOF