Fix getting a short text from the SqlError
This commit is contained in:
parent
b608259751
commit
b5777299fd
@ -204,8 +204,7 @@ class WebHistory(sql.SqlTable):
|
|||||||
}, replace=True)
|
}, replace=True)
|
||||||
except sql.SqlError as e:
|
except sql.SqlError as e:
|
||||||
if e.environmental:
|
if e.environmental:
|
||||||
message.error("Failed to write history: {}".format(
|
message.error("Failed to write history: {}".format(e.text()))
|
||||||
e.error.databaseText()))
|
|
||||||
else:
|
else:
|
||||||
raise
|
raise
|
||||||
|
|
||||||
|
@ -40,6 +40,10 @@ class SqlError(Exception):
|
|||||||
super().__init__(msg)
|
super().__init__(msg)
|
||||||
self.environmental = environmental
|
self.environmental = environmental
|
||||||
|
|
||||||
|
def text(self):
|
||||||
|
"""Get a short text to display."""
|
||||||
|
return str(self)
|
||||||
|
|
||||||
|
|
||||||
class SqliteError(SqlError):
|
class SqliteError(SqlError):
|
||||||
|
|
||||||
@ -71,6 +75,9 @@ class SqliteError(SqlError):
|
|||||||
]
|
]
|
||||||
self.environmental = error.nativeErrorCode() in environmental_errors
|
self.environmental = error.nativeErrorCode() in environmental_errors
|
||||||
|
|
||||||
|
def text(self):
|
||||||
|
return self.error.databaseText()
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_query(cls, what, query, error):
|
def from_query(cls, what, query, error):
|
||||||
"""Construct an error from a failed query.
|
"""Construct an error from a failed query.
|
||||||
|
@ -29,8 +29,10 @@ pytestmark = pytest.mark.usefixtures('init_sql')
|
|||||||
|
|
||||||
|
|
||||||
def test_sqlerror():
|
def test_sqlerror():
|
||||||
err = sql.SqlError("Hello World", environmental=True)
|
text = "Hello World"
|
||||||
assert str(err) == "Hello World"
|
err = sql.SqlError(text, environmental=True)
|
||||||
|
assert str(err) == text
|
||||||
|
assert err.text() == text
|
||||||
assert err.environmental
|
assert err.environmental
|
||||||
|
|
||||||
|
|
||||||
@ -71,6 +73,11 @@ class TestSqliteError:
|
|||||||
with pytest.raises(sql.SqlError):
|
with pytest.raises(sql.SqlError):
|
||||||
raise sql.SqliteError("text", QSqlError())
|
raise sql.SqliteError("text", QSqlError())
|
||||||
|
|
||||||
|
def test_text(self):
|
||||||
|
sql_err = QSqlError("driver text", "db text")
|
||||||
|
err = sql.SqliteError("Message", sql_err)
|
||||||
|
assert err.text() == "db text"
|
||||||
|
|
||||||
|
|
||||||
def test_init():
|
def test_init():
|
||||||
sql.SqlTable('Foo', ['name', 'val', 'lucky'])
|
sql.SqlTable('Foo', ['name', 'val', 'lucky'])
|
||||||
|
Loading…
Reference in New Issue
Block a user