Django 生成用于摇摆单元测试的测试夹具的正确方法是什么?
我正在尝试生成一个自定义页面树,用于在管理面板中测试用户查看权限。我使用以下命令将装置转储到文件中:Django 生成用于摇摆单元测试的测试夹具的正确方法是什么?,django,unit-testing,wagtail,Django,Unit Testing,Wagtail,我正在尝试生成一个自定义页面树,用于在管理面板中测试用户查看权限。我使用以下命令将装置转储到文件中: ./manage.py dumpdata --natural-foreign --natural-primary --indent 4 > test.json 并在测试用例中使用夹具,如下所示: class MyTest(TestCase, WagtailTestUtils): fixtures = ['test.json'] def test_my_code(se
./manage.py dumpdata --natural-foreign --natural-primary --indent 4 > test.json
并在测试用例中使用夹具,如下所示:
class MyTest(TestCase, WagtailTestUtils):
fixtures = ['test.json']
def test_my_code(self):
# More code....
运行此测试将返回以下错误:
File "/Users/jchau/.pyenv/versions/2.7.8/lib/python2.7/site-packages/django/db/backends/sqlite3/base.py", line 323, in execute
return Database.Cursor.execute(self, query, params)
DeserializationError: Problem installing fixture '/Users/jchau/Documents/wagtail/wagtail/tests/testapp/fixtures/test_group_restrictions.json': no such table: auth_user
看来我的测试数据格式不正确。是否有一种公认的方法来生成用于Wagtail的定制测试夹具
注意:这些命令是针对Wagtail 1.8的普通安装运行的。我没有创建任何自定义模型或数据类型,也没有进行任何修改,因此仅有的现有数据由站点和页面组成 您的夹具(可能)是正确的-但是,Wagtail的测试环境配置为使用,因此在安装时使用标准用户模型创建的夹具将不兼容
通过对两个模型的快速比较,应该可以手动编辑夹具中的“auth.user”记录,如下所示:
- 将“模型”:“auth.user”更改为“模型”:“customuser.customuser”
- 删除
字段“加入日期”
- 添加字段
和“国家”
;这些可以设置为空字符串“附件”
dumpdata
命令中使用自己的fixture