diff options
| author | mike bayer <mike_mp@zzzcomputing.com> | 2020-03-02 23:45:35 +0000 |
|---|---|---|
| committer | Gerrit Code Review <gerrit@bbpush.zzzcomputing.com> | 2020-03-02 23:45:35 +0000 |
| commit | b5050beb73b2e50b122c36e7dcdc06abffd472f2 (patch) | |
| tree | 6679019ff418d6c346d5bd4cdc4aab4a73d9303e /lib/sqlalchemy/dialects | |
| parent | 2d052d43518a0f4d9751db7e699cfebd3724c1e5 (diff) | |
| parent | 57dc36a01b2b334a996f73f6a78b3bfbe4d9f2ec (diff) | |
| download | sqlalchemy-b5050beb73b2e50b122c36e7dcdc06abffd472f2.tar.gz | |
Merge "Ensure all nested exception throws have a cause"
Diffstat (limited to 'lib/sqlalchemy/dialects')
| -rw-r--r-- | lib/sqlalchemy/dialects/mysql/base.py | 15 | ||||
| -rw-r--r-- | lib/sqlalchemy/dialects/postgresql/psycopg2.py | 13 | ||||
| -rw-r--r-- | lib/sqlalchemy/dialects/sqlite/base.py | 22 |
3 files changed, 32 insertions, 18 deletions
diff --git a/lib/sqlalchemy/dialects/mysql/base.py b/lib/sqlalchemy/dialects/mysql/base.py index e0bf16793..6ea8cbcb8 100644 --- a/lib/sqlalchemy/dialects/mysql/base.py +++ b/lib/sqlalchemy/dialects/mysql/base.py @@ -2968,7 +2968,7 @@ class MySQLDialect(default.DefaultDialect): ).execute(st) except exc.DBAPIError as e: if self._extract_error_code(e.orig) == 1146: - raise exc.NoSuchTableError(full_name) + util.raise_(exc.NoSuchTableError(full_name), replace_context=e) else: raise row = self._compat_first(rp, charset=charset) @@ -2992,11 +2992,16 @@ class MySQLDialect(default.DefaultDialect): except exc.DBAPIError as e: code = self._extract_error_code(e.orig) if code == 1146: - raise exc.NoSuchTableError(full_name) + util.raise_( + exc.NoSuchTableError(full_name), replace_context=e + ) elif code == 1356: - raise exc.UnreflectableTableError( - "Table or view named %s could not be " - "reflected: %s" % (full_name, e) + util.raise_( + exc.UnreflectableTableError( + "Table or view named %s could not be " + "reflected: %s" % (full_name, e) + ), + replace_context=e, ) else: raise diff --git a/lib/sqlalchemy/dialects/postgresql/psycopg2.py b/lib/sqlalchemy/dialects/postgresql/psycopg2.py index 0b6afc337..1b1c9b0ba 100644 --- a/lib/sqlalchemy/dialects/postgresql/psycopg2.py +++ b/lib/sqlalchemy/dialects/postgresql/psycopg2.py @@ -763,11 +763,14 @@ class PGDialect_psycopg2(PGDialect): def set_isolation_level(self, connection, level): try: level = self._isolation_lookup[level.replace("_", " ")] - except KeyError: - raise exc.ArgumentError( - "Invalid value '%s' for isolation_level. " - "Valid isolation levels for %s are %s" - % (level, self.name, ", ".join(self._isolation_lookup)) + except KeyError as err: + util.raise_( + exc.ArgumentError( + "Invalid value '%s' for isolation_level. " + "Valid isolation levels for %s are %s" + % (level, self.name, ", ".join(self._isolation_lookup)) + ), + replace_context=err, ) connection.set_isolation_level(level) diff --git a/lib/sqlalchemy/dialects/sqlite/base.py b/lib/sqlalchemy/dialects/sqlite/base.py index d04b543cd..b1a83bf92 100644 --- a/lib/sqlalchemy/dialects/sqlite/base.py +++ b/lib/sqlalchemy/dialects/sqlite/base.py @@ -997,9 +997,12 @@ class SQLiteCompiler(compiler.SQLCompiler): self.extract_map[extract.field], self.process(extract.expr, **kw), ) - except KeyError: - raise exc.CompileError( - "%s is not a valid extract argument." % extract.field + except KeyError as err: + util.raise_( + exc.CompileError( + "%s is not a valid extract argument." % extract.field + ), + replace_context=err, ) def limit_clause(self, select, **kw): @@ -1537,11 +1540,14 @@ class SQLiteDialect(default.DefaultDialect): def set_isolation_level(self, connection, level): try: isolation_level = self._isolation_lookup[level.replace("_", " ")] - except KeyError: - raise exc.ArgumentError( - "Invalid value '%s' for isolation_level. " - "Valid isolation levels for %s are %s" - % (level, self.name, ", ".join(self._isolation_lookup)) + except KeyError as err: + util.raise_( + exc.ArgumentError( + "Invalid value '%s' for isolation_level. " + "Valid isolation levels for %s are %s" + % (level, self.name, ", ".join(self._isolation_lookup)) + ), + replace_context=err, ) cursor = connection.cursor() cursor.execute("PRAGMA read_uncommitted = %d" % isolation_level) |
