Django 4 и загрузчик Unittest
Мы используем Django для интернет-магазина и хотим перейти на Django 4. Однако после перехода на тестовую ветку у нас возникла проблема, о которой я расскажу здесь.
Мы обслуживаем два разных рынка, назовем их рынок A и B :) Поскольку эти два рынка могут иметь различные функциональные возможности, наш INSTALLED_APPS
заполняется следующим образом:
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-специфических тестов для каждого рынка, только 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