Django call_command перед загрузкой светильников в тестах - PullRequest
1 голос
/ 20 июня 2019

Возможно ли call_command() перед загрузкой приборов в TestCase?

Этот код не работает - приборы не могут быть загружены, потому что группы еще не существуют.

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

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

1 Ответ

0 голосов
/ 21 июня 2019

Похоже, что приборы загружаются в setUpClass класса TestCase, так что вы можете переопределить это в нашем тестовом классе.

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

Если взглянуть дальше на этот метод, он может не очень хорошо работать с транзакциями, так как вы будете загружать данные базы данных до того, как все будет заключено в транзакцию. Если вы не меняете эти группы, я думаю, что все будет в порядке. Извинения Я не создал свой тестовый пример для подтверждения.

Если это проблема, другой вариант - выгрузить группы, созданные этой командой, в прибор:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...