Skip to content

Commit 4212cca

Browse files
committed
Add a Python repr for QgsError
1 parent adec719 commit 4212cca

File tree

3 files changed

+21
-1
lines changed

3 files changed

+21
-1
lines changed

python/core/auto_generated/qgserror.sip.in

+7
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,13 @@ messageList return the list of current error messages
126126
:return: current list of error messages
127127
%End
128128

129+
130+
SIP_PYOBJECT __repr__();
131+
%MethodCode
132+
QString str = QStringLiteral( "<QgsError: %1>" ).arg( sipCpp->message( QgsErrorMessage::Text ) );
133+
sipRes = PyUnicode_FromString( str.toUtf8().constData() );
134+
%End
135+
129136
};
130137

131138
/************************************************************************

src/core/qgserror.h

+9
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,15 @@ class CORE_EXPORT QgsError
132132
*/
133133
QList<QgsErrorMessage> messageList() const { return mMessageList; }
134134

135+
136+
#ifdef SIP_RUN
137+
SIP_PYOBJECT __repr__();
138+
% MethodCode
139+
QString str = QStringLiteral( "<QgsError: %1>" ).arg( sipCpp->message( QgsErrorMessage::Text ) );
140+
sipRes = PyUnicode_FromString( str.toUtf8().constData() );
141+
% End
142+
#endif
143+
135144
private:
136145
//! List of messages
137146
QList<QgsErrorMessage> mMessageList;

tests/src/python/test_python_repr.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
from PyQt5.QtCore import QVariant
1818
from qgis.testing import unittest, start_app
1919
from qgis.core import QgsGeometry, QgsPoint, QgsPointXY, QgsCircle, QgsCircularString, QgsCompoundCurve,\
20-
QgsCurvePolygon, QgsEllipse, QgsLineString, QgsMultiCurve, QgsRectangle, QgsExpression, QgsField
20+
QgsCurvePolygon, QgsEllipse, QgsLineString, QgsMultiCurve, QgsRectangle, QgsExpression, QgsField, QgsError
2121

2222
start_app()
2323

@@ -121,6 +121,10 @@ def testQgsFieldRepr(self):
121121
f = QgsField('field_name', QVariant.Double, 'double')
122122
self.assertEqual(f.__repr__(), "<QgsField: field_name (double)>")
123123

124+
def testQgsErrorRepr(self):
125+
e = QgsError('you done wrong son', 'dad')
126+
self.assertEqual(e.__repr__(), "<QgsError: dad you done wrong son>")
127+
124128

125129
if __name__ == "__main__":
126130
unittest.main()

0 commit comments

Comments
 (0)