Тест Django для асинхронной записи в базу данных - PullRequest
1 голос
/ 05 марта 2012

У меня большой файл для обработки, CSV-файл с миллионами строк. Я загружаю файл в обработчик Django, но не могу обработать его достаточно быстро, поэтому у меня есть отдельный процесс, обрабатывающий анализ. Я создаю URL прогресса, по которому я могу позвонить, чтобы получить статус анализа.

Я пытался протестировать, используя django.test.client.Client, но кажется, что SQLite работает как база данных в памяти, когда используется внутри django.test.TestCase. Это означает, что некоторые данные, которые я инициализирую в процессе обработки, недоступны для рабочего процесса. Тестовые данные записываются в тестовую базу данных в памяти, и рабочий процесс не может получить доступ к тестовой базе данных в памяти.

Мне кажется, что тестовый набор Django не сможет справиться с этим тестовым примером. Кто-нибудь есть рекомендации о том, как я мог бы пойти по поводу тестирования этого? Могу ли я заставить Django выгрузить тестовую базу данных SQLite в файл, который я могу прочитать внутри моего рабочего процесса? Могу ли я провести тестирование непосредственно на производственной базе данных (которая в моем случае будет пустой, за исключением данных, загруженных из приборов до начала теста)?

1 Ответ

1 голос
/ 05 марта 2012

Если вы зададите TEST_NAME в настройках базы данных , Django не будет создавать тестовую базу данных SQLite в памяти.

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