在测试中加载夹具之前的Django call_command

时间:2019-06-20 18:10:04

标签: django

是否可以在将灯具插入call_command()之前TestCase

此代码不起作用-由于组尚不存在,因此无法加载灯具。

class UserAPITestCase(APITestCase):
    fixtures = [
        'user/fixtures/user.json',
    ]

    def _fixture_setup(self):
        call_command('create_groups')
        super()._fixture_setup()

1 个答案:

答案 0 :(得分:0)

似乎夹具已加载到TestCase的setUpClass中,因此您可以在我们的测试类中覆盖它。

def setUpClass(cls):
    call_command('create_groups')
    super().setUpClass()

进一步研究该方法之后,这可能不适用于事务,因为您需要在事务中包装所有数据之前加载数据库数据。如果您不更改这些组,我认为就可以了。抱歉,我没有设置自己的测试用例进行确认。

如果这是一个问题,您可以选择将该命令创建的组转储到灯具中:)