Skip to content

Commit

Permalink
Add equality operator to QgsReadWriteContext::ReadWriteMessage
Browse files Browse the repository at this point in the history
  • Loading branch information
nyalldawson committed May 24, 2021
1 parent 5f9d7b4 commit e4a12e5
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 0 deletions.
10 changes: 10 additions & 0 deletions python/core/auto_generated/qgsreadwritecontext.sip.in
Expand Up @@ -45,6 +45,16 @@ Returns the message level
Returns the stack of categories of the message
%End

bool operator==( const QgsReadWriteContext::ReadWriteMessage &other ) const;

bool operator!=( const QgsReadWriteContext::ReadWriteMessage &other ) const;

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

};

QgsReadWriteContext();
Expand Down
18 changes: 18 additions & 0 deletions src/core/qgsreadwritecontext.h
Expand Up @@ -57,6 +57,24 @@ class CORE_EXPORT QgsReadWriteContext
//! Returns the stack of categories of the message
QStringList categories() const {return mCategories;}

bool operator==( const QgsReadWriteContext::ReadWriteMessage &other ) const
{
return mMessage == other.mMessage && mLevel == other.mLevel && mCategories == other.mCategories;
}

bool operator!=( const QgsReadWriteContext::ReadWriteMessage &other ) const
{
return !( *this == other );
}

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

private:
QString mMessage;
Qgis::MessageLevel mLevel;
Expand Down
10 changes: 10 additions & 0 deletions tests/src/python/test_qgsreadwritecontext.py
Expand Up @@ -49,6 +49,16 @@ def testEnterCategory(self):
self.assertEqual(messages[4].message(), 'msg4')
self.assertEqual(messages[4].categories(), [])

def test_message_equality(self):
"""
Test QgsReadWriteContext.ReadWriteMessage equality operator
"""
m1 = QgsReadWriteContext.ReadWriteMessage('m1', Qgis.Info, ['cat1', 'cat2'])
self.assertEqual(m1, QgsReadWriteContext.ReadWriteMessage('m1', Qgis.Info, ['cat1', 'cat2']))
self.assertNotEqual(m1, QgsReadWriteContext.ReadWriteMessage('m2', Qgis.Info, ['cat1', 'cat2']))
self.assertNotEqual(m1, QgsReadWriteContext.ReadWriteMessage('m1', Qgis.Warning, ['cat1', 'cat2']))
self.assertNotEqual(m1, QgsReadWriteContext.ReadWriteMessage('m1', Qgis.Info, ['cat3', 'cat2']))


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

0 comments on commit e4a12e5

Please sign in to comment.