在南迁移之前加载夹具

时间:2010-10-30 02:51:06

标签: django unit-testing fixtures django-south

我犯了创建自己的用户模型的错误,并试图恢复。

我创建了一个南迁移,复制我的旧用户模型并创建django.contrib.auth.models.User模型。为了确保我的当前用户不会陷入困境,我创建了一系列单元测试以确保所有内容都得到适当的转换。

所以,我需要测试南迁移,看它是否有效。为此,我需要在迁移运行之前加载旧用户类型的数据。我该怎么做?

2 个答案:

答案 0 :(得分:7)

当测试套件通过python manage.py test someapp运行时,首先django创建一个测试数据库,然后按顺序应用所有迁移,然后运行测试用例。因此,如果目标是测试迁移本身,则需要在迁移之前加载夹具数据。

您可以为迁移添加一行或两个加载夹具,仅为了测试而应用模型更改,然后删除。

def forwards(self, orm):
    from django.core import management
    management.call_command('loaddata', 'myfixture.json')
    ... your migration

另外,你可以在一些组成的django设置上添加条件,然后你就不必再编辑代码了。

答案 1 :(得分:0)