From 275b7cd4db83d456a4684ac992823a507dce1040 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Tue, 22 Jan 2019 14:28:16 +0100 Subject: [PATCH] compat: ignore error on checking db vendor (fixes #29926) compat can be loaded before initialization of db in tests, we must ignore errors at such a time. --- src/authentic2/compat.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/authentic2/compat.py b/src/authentic2/compat.py index dca5dcbc..4e36de6d 100644 --- a/src/authentic2/compat.py +++ b/src/authentic2/compat.py @@ -4,6 +4,8 @@ import inspect import django from django.conf import settings from django.db import connection +from django.db.utils import OperationalError +from django.core.exceptions import ImproperlyConfigured from django.contrib.auth.tokens import PasswordResetTokenGenerator @@ -25,9 +27,11 @@ default_token_generator = PasswordResetTokenGenerator() def has_postgresql_support(): - if not settings.DATABASES['default'].get('NAME'): + try: + return connection.vendor == 'postgresql' and connection.pg_version > 90400 + except (ImproperlyConfigured, OperationalError): + # database is not initialized, be conservative return False - return connection.vendor == 'postgresql' and connection.pg_version > 90400 def use_django_native_field(): -- 2.20.1