summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Apolloner <florian@apolloner.eu>2022-12-01 08:35:14 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2022-12-01 09:17:33 +0100
commit3cafb783f3f711c7413ba2b8d7c8ff750bd4d6e1 (patch)
tree42bf4246a9538a712b75bada6ff4d14420dfd059
parente20fd899be87cf70ed5c4372c7b2ee634da1453a (diff)
Refs #33308 -- Used psycopg's errors instead of errorcodes.
-rw-r--r--django/db/backends/postgresql/creation.py5
-rw-r--r--tests/backends/postgresql/test_creation.py10
2 files changed, 8 insertions, 7 deletions
diff --git a/django/db/backends/postgresql/creation.py b/django/db/backends/postgresql/creation.py
index 70c3eda566..690bf9639b 100644
--- a/django/db/backends/postgresql/creation.py
+++ b/django/db/backends/postgresql/creation.py
@@ -1,6 +1,6 @@
import sys
-from psycopg2 import errorcodes
+from psycopg2 import errors
from django.core.exceptions import ImproperlyConfigured
from django.db.backends.base.creation import BaseDatabaseCreation
@@ -46,7 +46,8 @@ class DatabaseCreation(BaseDatabaseCreation):
return
super()._execute_create_test_db(cursor, parameters, keepdb)
except Exception as e:
- if getattr(e.__cause__, "pgcode", "") != errorcodes.DUPLICATE_DATABASE:
+ cause = e.__cause__
+ if cause and not isinstance(cause, errors.DuplicateDatabase):
# All errors except "database already exists" cancel tests.
self.log("Got an error creating the test database: %s" % e)
sys.exit(2)
diff --git a/tests/backends/postgresql/test_creation.py b/tests/backends/postgresql/test_creation.py
index 319029334d..ab2401a07e 100644
--- a/tests/backends/postgresql/test_creation.py
+++ b/tests/backends/postgresql/test_creation.py
@@ -13,7 +13,7 @@ try:
except ImportError:
pass
else:
- from psycopg2 import errorcodes
+ from psycopg2 import errors
from django.db.backends.postgresql.creation import DatabaseCreation
@@ -73,13 +73,13 @@ class DatabaseCreationTests(SimpleTestCase):
self.check_sql_table_creation_suffix(settings, None)
def _execute_raise_database_already_exists(self, cursor, parameters, keepdb=False):
- error = DatabaseError("database %s already exists" % parameters["dbname"])
- error.pgcode = errorcodes.DUPLICATE_DATABASE
+ error = errors.DuplicateDatabase(
+ "database %s already exists" % parameters["dbname"]
+ )
raise DatabaseError() from error
def _execute_raise_permission_denied(self, cursor, parameters, keepdb=False):
- error = DatabaseError("permission denied to create database")
- error.pgcode = errorcodes.INSUFFICIENT_PRIVILEGE
+ error = errors.InsufficientPrivilege("permission denied to create database")
raise DatabaseError() from error
def patch_test_db_creation(self, execute_create_test_db):