Skip to content

Commit

Permalink
Add python repr for QgsProviderMetadata
Browse files Browse the repository at this point in the history
  • Loading branch information
nyalldawson committed Nov 4, 2020
1 parent d34d61e commit 4aa1c2f
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 1 deletion.
6 changes: 6 additions & 0 deletions python/core/auto_generated/qgsprovidermetadata.sip.in
Expand Up @@ -446,6 +446,12 @@ Stores the connection in the settings
.. versionadded:: 3.10
%End

SIP_PYOBJECT __repr__();
%MethodCode
QString str = QStringLiteral( "<QgsProviderMetadata: %1>" ).arg( sipCpp->key() );
sipRes = PyUnicode_FromString( str.toUtf8().constData() );
%End

signals:

void connectionCreated( const QString &name );
Expand Down
8 changes: 8 additions & 0 deletions src/core/qgsprovidermetadata.h
Expand Up @@ -483,6 +483,14 @@ class CORE_EXPORT QgsProviderMetadata : public QObject
*/
virtual void saveConnection( const QgsAbstractProviderConnection *connection, const QString &name ) SIP_THROW( QgsProviderConnectionException );

#ifdef SIP_RUN
SIP_PYOBJECT __repr__();
% MethodCode
QString str = QStringLiteral( "<QgsProviderMetadata: %1>" ).arg( sipCpp->key() );
sipRes = PyUnicode_FromString( str.toUtf8().constData() );
% End
#endif

signals:

/**
Expand Down
5 changes: 4 additions & 1 deletion tests/src/python/test_python_repr.py
Expand Up @@ -19,7 +19,7 @@
QgsMimeDataUtils, QgsVector, QgsVector3D, QgsVectorLayer, QgsReferencedPointXY, QgsReferencedRectangle,\
QgsCoordinateReferenceSystem, QgsCoordinateTransform, QgsProject, QgsClassificationRange, QgsBookmark, \
QgsLayoutMeasurement, QgsLayoutPoint, QgsLayoutSize, QgsUnitTypes, QgsConditionalStyle, QgsTableCell, QgsProperty, \
QgsVertexId, QgsReferencedGeometry
QgsVertexId, QgsReferencedGeometry, QgsProviderRegistry

start_app()

Expand Down Expand Up @@ -254,6 +254,9 @@ def testQgsVertexId(self):
v = QgsVertexId(1, 2, 3, _type=QgsVertexId.CurveVertex)
self.assertEqual(v.__repr__(), '<QgsVertexId: 1,2,3 CurveVertex>')

def testProviderMetadata(self):
self.assertEqual(QgsProviderRegistry.instance().providerMetadata('ogr').__repr__(), '<QgsProviderMetadata: ogr>')


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

0 comments on commit 4aa1c2f

Please sign in to comment.