Для контекста я пытаюсь использовать имя администратора и пароль для запуска тестов с базой данных PostgreSQL. Похоже, что существует обходной путь , но в Django документах говорится, что в этом нет необходимости.
Django, похоже, игнорирует параметры теста c подключения к базе данных. В соответствии с документами настроек для пользователей тестовых БД следующая конфигурация базы данных должна переопределять пользователя и пароль при подключении к базе данных для запуска тестов:
# settings.py
DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql",
"NAME": os.environ.get("DATABASE_NAME"),
"USER": os.environ.get("DATABASE_USER"),
"PASSWORD": os.environ.get("DATABASE_PASSWORD"),
"HOST": os.environ.get("DATABASE_HOST"),
"PORT": os.environ.get("DATABASE_PORT"),
"TEST": {
"USER": "postgres",
"PASSWORD": os.environ.get("POSTGRES_PASSWORD"),
}
}
}
Одно предостережение в документах заключается в том, что тестовые настройки ПОЛЬЗОВАТЕЛЯ и ПАРОЛЯ помечаются как Oracle, специфицируя c (то есть, MySQL и только MariaDB). Это причина того, что он не использует эти настройки при подключении к базе данных PostgreSQL?
Это настройка Oracle -specifi c.
Вместо использования postgres и POSTGRES_PASSWORD , Django используется DATABASE_USER и DATABASE_PASSWORD для подключения к базе данных при выполнении тестов.