diff options
-rw-r--r-- | oslo_db/sqlalchemy/exc_filters.py | 2 | ||||
-rw-r--r-- | oslo_db/tests/sqlalchemy/test_exc_filters.py | 6 |
2 files changed, 8 insertions, 0 deletions
diff --git a/oslo_db/sqlalchemy/exc_filters.py b/oslo_db/sqlalchemy/exc_filters.py index 6ab082e..da85e28 100644 --- a/oslo_db/sqlalchemy/exc_filters.py +++ b/oslo_db/sqlalchemy/exc_filters.py @@ -284,6 +284,8 @@ def _raise_mysql_table_doesnt_exist_asis( r"^.*1366.*Incorrect string value:*") @filters("sqlite", sqla_exc.ProgrammingError, r"(?i).*You must not use 8-bit bytestrings*") +@filters("mysql", sqla_exc.DataError, + r".*1406.*Data too long for column.*") def _raise_data_error(error, match, engine_name, is_disconnect): """Raise DBDataError exception for different data errors.""" diff --git a/oslo_db/tests/sqlalchemy/test_exc_filters.py b/oslo_db/tests/sqlalchemy/test_exc_filters.py index 4593c04..07a2fdb 100644 --- a/oslo_db/tests/sqlalchemy/test_exc_filters.py +++ b/oslo_db/tests/sqlalchemy/test_exc_filters.py @@ -754,6 +754,12 @@ class TestDataError(TestsExceptionFilter): '\'resource\' at row 1"', self.DataError) + def test_data_too_long_for_column(self): + self._run_bad_data_test("mysql", + '(1406, "Data too long for column ' + '\'resource\' at row 1"', + self.DataError) + class IntegrationTest(test_base.DbTestCase): """Test an actual error-raising round trips against the database.""" |