Django 4 и загрузчик Unittest
Мы используем Django для онлайн-магазина и хотим перейти на Django 4. Однако после обновления тестовой ветки у нас возникла проблема, о которой я расскажу здесь. Мы обслуживаем два разных рынка, назовем их Market A и B :) Поскольку эти два рынка могут иметь разные функции, наш заполняется следующим образом:
MARKET_SPECIFIC_APPS = {
MARKET_A: [
'market_a.apps.MarketAConfig',
'payment_system_a.apps.PaymentSystemAConfig'
],
MARKET_B: [
'market_b.apps.MarketBConfig',
'payment_system_b.apps.PaymentSystemBConfig',
],
}
if MARKET in MARKET_SPECIFIC_APPS:
# If there is a market-specific app, add it to INSTALLED_APPS
INSTALLED_APPS += MARKET_SPECIFIC_APPS[MARKET]
Однако при проведении тестов, специфичных для РЫНКА, для каждого рынка только
MARKET_A
проходит.
MARKET_B
теперь выдает ошибку после обновления с Django 3.2 до Django 4
RuntimeError: Model class payment_system_b.models.payment.Payment doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
Это означает, что этот тест все еще выполняется, и средство запуска тестов включает его в
INSTALLED_APPS
хотя и не должно.
Есть ли какие-либо изменения в журнале изменений Django 4, которые я пропустил по этому поводу? Выполнение этих рыночных тестов работало нормально до обновления до Django 4.