Django тест TransactionTestCase выполняется до sql запроса - PullRequest
0 голосов
/ 27 апреля 2020

Я запускаю тест, чтобы проверить, правильно ли работают мои массовые вставки. Метод process_products_data форматирует входные данные, создает несколько sql запросов в виде строки, затем подключается к БД и выполняет их.

Когда я запускаю тест, он проваливается и выполняется случайным образом. Я отобразил данные, хранящиеся в БД, в методе разбора, и я заметил, что при сбое теста БД не заполняется правильно, например, если метод process_products_data не сработал или находится в середине его job.

Есть идеи, как заставить тест ждать время завершения метода process_products_data ?

class TestCaseCreation(TransactionTestCase):

    fixtures = ['test_1']

    products = [
        {
            'internal_code': '403273',
            '_type': 'dict',
            'description': 'Abc',
            'brand': 'my brand',
            'creation_date': 1587543189737.0,
            'name': 'my name'
        }
    ]

    maxDiff = None

    def setUp(self):
        shop = Shop.objects.get(pk=1)

        process_products_data(self.products, shop)


    def test_creation(self):

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