Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Fix tests
  • Loading branch information
YoannQDQ authored and nyalldawson committed Mar 29, 2023
1 parent 33863ce commit 9650c37
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 29 deletions.
2 changes: 1 addition & 1 deletion src/core/qgsbookmarkmanager.cpp
Expand Up @@ -64,7 +64,7 @@ QDomElement QgsBookmark::writeXml( QDomDocument &doc ) const

bool QgsBookmark::operator==( const QgsBookmark &other ) const
{
return mId == other.mId && mName == other.mName && mExtent == other.mExtent && mGroup == other.mGroup;
return mId == other.mId && mName == other.mName && mExtent == other.mExtent && mGroup == other.mGroup && mRotation == other.mRotation;
}

bool QgsBookmark::operator!=( const QgsBookmark &other ) const
Expand Down
27 changes: 26 additions & 1 deletion tests/src/python/test_qgsbookmarkmanager.py
Expand Up @@ -66,6 +66,8 @@ def testBookmark(self):
self.assertEqual(b.group(), 'group')
b.setExtent(QgsReferencedRectangle(QgsRectangle(1, 2, 3, 4), QgsCoordinateReferenceSystem('EPSG:3111')))
self.assertEqual(b.extent(), QgsReferencedRectangle(QgsRectangle(1, 2, 3, 4), QgsCoordinateReferenceSystem('EPSG:3111')))
b.setRotation(45.4)
self.assertEqual(b.rotation(), 45.4)

def testBookmarkEquality(self):
b = QgsBookmark()
Expand All @@ -91,6 +93,10 @@ def testBookmarkEquality(self):
self.assertNotEqual(b, b2)
b2.setGroup('group')
self.assertEqual(b, b2)
b2.setRotation(-1)
self.assertNotEqual(b, b2)
b2.setRotation(0)
self.assertEqual(b, b2)
b2.setExtent(QgsReferencedRectangle(QgsRectangle(1, 2, 3, 5), QgsCoordinateReferenceSystem('EPSG:3111')))
self.assertNotEqual(b, b2)
b2.setExtent(QgsReferencedRectangle(QgsRectangle(1, 2, 3, 4), QgsCoordinateReferenceSystem('EPSG:4326')))
Expand Down Expand Up @@ -308,17 +314,20 @@ def testReadWriteXml(self):
b = QgsBookmark()
b.setId('1')
b.setName('b1')
b.setExtent(QgsReferencedRectangle(QgsRectangle(11, 21, 31, 41), QgsCoordinateReferenceSystem('EPSG:4326')))
b.setExtent(QgsReferencedRectangle(QgsRectangle(11, 21, 31, 41), QgsCoordinateReferenceSystem('EPSG:3857')))
b.setRotation(90)

b2 = QgsBookmark()
b2.setId('2')
b2.setName('b2')
b2.setExtent(QgsReferencedRectangle(QgsRectangle(12, 22, 32, 42), QgsCoordinateReferenceSystem('EPSG:4326')))
b2.setRotation(-1.1)

b3 = QgsBookmark()
b3.setId('3')
b3.setName('b3')
b3.setExtent(QgsReferencedRectangle(QgsRectangle(32, 32, 33, 43), QgsCoordinateReferenceSystem('EPSG:4326')))
b3.setRotation(280)

manager.addBookmark(b)
manager.addBookmark(b2)
Expand All @@ -335,6 +344,22 @@ def testReadWriteXml(self):
self.assertTrue(manager2.readXml(elem, doc))

self.assertEqual(len(manager2.bookmarks()), 3)

# Check b1 values
self.assertEqual(manager2.bookmarkById('1').name(), 'b1')
self.assertEqual(manager2.bookmarkById('1').extent(), QgsReferencedRectangle(QgsRectangle(11, 21, 31, 41), QgsCoordinateReferenceSystem('EPSG:3857')))
self.assertEqual(manager2.bookmarkById('1').rotation(), 90)

# Check b2 values
self.assertEqual(manager2.bookmarkById('2').name(), 'b2')
self.assertEqual(manager2.bookmarkById('2').extent(), QgsReferencedRectangle(QgsRectangle(12, 22, 32, 42), QgsCoordinateReferenceSystem('EPSG:4326')))
self.assertEqual(manager2.bookmarkById('2').rotation(), -1.1)

# Check b3 values
self.assertEqual(manager2.bookmarkById('3').name(), 'b3')
self.assertEqual(manager2.bookmarkById('3').extent(), QgsReferencedRectangle(QgsRectangle(32, 32, 33, 43), QgsCoordinateReferenceSystem('EPSG:4326')))
self.assertEqual(manager2.bookmarkById('3').rotation(), 280)

names = [c.name() for c in manager2.bookmarks()]
self.assertCountEqual(names, ['b1', 'b2', 'b3'])

Expand Down
68 changes: 41 additions & 27 deletions tests/src/python/test_qgsbookmarkmodel.py
Expand Up @@ -49,7 +49,7 @@ def testBookmarkModel(self):
# initially no bookmarks
model = QgsBookmarkManagerModel(app_manager, project_manager)
self.assertEqual(model.rowCount(), 0)
self.assertEqual(model.columnCount(), 8)
self.assertEqual(model.columnCount(), 9)
self.assertFalse(model.data(model.index(-1, 0)))
self.assertFalse(model.data(model.index(1, 0)))
self.assertFalse(model.data(model.index(0, 0)))
Expand All @@ -71,12 +71,14 @@ def testBookmarkModel(self):
b.setGroup('group 1')
b.setName('b1')
b.setExtent(QgsReferencedRectangle(QgsRectangle(11, 21, 31, 41), QgsCoordinateReferenceSystem('EPSG:4326')))
b.setRotation(0)

b2 = QgsBookmark()
b2.setId('2')
b2.setGroup('group 2')
b2.setName('b2')
b2.setExtent(QgsReferencedRectangle(QgsRectangle(12, 22, 32, 42), QgsCoordinateReferenceSystem('EPSG:4326')))
b2.setRotation(180.5)

app_manager.addBookmark(b)
app_manager.addBookmark(b2)
Expand All @@ -89,9 +91,10 @@ def testBookmarkModel(self):
self.assertEqual(model.data(model.index(0, 3)), 21.0)
self.assertEqual(model.data(model.index(0, 4)), 31.0)
self.assertEqual(model.data(model.index(0, 5)), 41.0)
self.assertEqual(model.data(model.index(0, 6)), 'EPSG:4326')
self.assertEqual(model.data(model.index(0, 7)), None)
self.assertEqual(model.data(model.index(0, 7), Qt.CheckStateRole), Qt.Unchecked)
self.assertEqual(model.data(model.index(0, 6)), 0.0)
self.assertEqual(model.data(model.index(0, 7)), 'EPSG:4326')
self.assertEqual(model.data(model.index(0, 8)), None)
self.assertEqual(model.data(model.index(0, 8), Qt.CheckStateRole), Qt.Unchecked)
self.assertEqual(model.data(model.index(0, 0), QgsBookmarkManagerModel.RoleName), 'b1')
self.assertEqual(model.data(model.index(0, 0), QgsBookmarkManagerModel.RoleGroup), 'group 1')
id = model.data(model.index(0, 0), QgsBookmarkManagerModel.RoleId)
Expand All @@ -104,9 +107,10 @@ def testBookmarkModel(self):
self.assertEqual(model.data(model.index(1, 3)), 22.0)
self.assertEqual(model.data(model.index(1, 4)), 32.0)
self.assertEqual(model.data(model.index(1, 5)), 42.0)
self.assertEqual(model.data(model.index(1, 6)), 'EPSG:4326')
self.assertEqual(model.data(model.index(1, 7)), None)
self.assertEqual(model.data(model.index(1, 7), Qt.CheckStateRole), Qt.Unchecked)
self.assertEqual(model.data(model.index(1, 6)), 180.5)
self.assertEqual(model.data(model.index(1, 7)), 'EPSG:4326')
self.assertEqual(model.data(model.index(1, 8)), None)
self.assertEqual(model.data(model.index(1, 8), Qt.CheckStateRole), Qt.Unchecked)
self.assertEqual(model.data(model.index(1, 0), QgsBookmarkManagerModel.RoleName), 'b2')
self.assertEqual(model.data(model.index(1, 0), QgsBookmarkManagerModel.RoleGroup), 'group 2')
id = model.data(model.index(1, 0), QgsBookmarkManagerModel.RoleId)
Expand All @@ -133,24 +137,28 @@ def testBookmarkModel(self):
self.assertTrue(model.setData(model.index(0, 5), 4, Qt.EditRole))
self.assertEqual(model.data(model.index(0, 5)), 4.0)
self.assertEqual(app_manager.bookmarks()[0].extent().yMaximum(), 4.0)
self.assertTrue(model.setData(model.index(0, 6), -1.2, Qt.EditRole))
self.assertEqual(model.data(model.index(0, 6)), -1.2)
self.assertEqual(app_manager.bookmarks()[0].rotation(), -1.2)
self.assertFalse(model.setData(model.index(2, 0), 4, Qt.EditRole))

self.assertTrue(int(model.flags(model.index(0, 0)) & Qt.ItemIsEnabled))
self.assertTrue(int(model.flags(model.index(0, 0)) & Qt.ItemIsEditable))
self.assertTrue(int(model.flags(model.index(0, 7)) & Qt.ItemIsUserCheckable))
self.assertTrue(int(model.flags(model.index(1, 7)) & Qt.ItemIsUserCheckable))
self.assertTrue(int(model.flags(model.index(0, 8)) & Qt.ItemIsUserCheckable))
self.assertTrue(int(model.flags(model.index(1, 8)) & Qt.ItemIsUserCheckable))
self.assertTrue(int(model.flags(model.index(1, 0)) & Qt.ItemIsEnabled))
self.assertTrue(int(model.flags(model.index(1, 0)) & Qt.ItemIsEditable))
self.assertFalse(int(model.flags(model.index(2, 0)) & Qt.ItemIsEnabled))
self.assertFalse(int(model.flags(model.index(2, 0)) & Qt.ItemIsEditable))
self.assertFalse(int(model.flags(model.index(2, 7)) & Qt.ItemIsUserCheckable))
self.assertFalse(int(model.flags(model.index(2, 8)) & Qt.ItemIsUserCheckable))

# add bookmark to project manager
b3 = QgsBookmark()
b3.setId('3')
b3.setName('b3')
b3.setGroup('group 3')
b3.setExtent(QgsReferencedRectangle(QgsRectangle(32, 32, 33, 43), QgsCoordinateReferenceSystem('EPSG:28355')))
b3.setRotation(90)
project_manager.addBookmark(b3)

self.assertEqual(model.rowCount(), 3)
Expand All @@ -161,27 +169,30 @@ def testBookmarkModel(self):
self.assertEqual(model.data(model.index(0, 3)), 2.0)
self.assertEqual(model.data(model.index(0, 4)), 3.0)
self.assertEqual(model.data(model.index(0, 5)), 4.0)
self.assertEqual(model.data(model.index(0, 6)), 'EPSG:4326')
self.assertEqual(model.data(model.index(0, 7)), None)
self.assertEqual(model.data(model.index(0, 7), Qt.CheckStateRole), Qt.Unchecked)
self.assertEqual(model.data(model.index(0, 6)), -1.2)
self.assertEqual(model.data(model.index(0, 7)), 'EPSG:4326')
self.assertEqual(model.data(model.index(0, 8)), None)
self.assertEqual(model.data(model.index(0, 8), Qt.CheckStateRole), Qt.Unchecked)
self.assertEqual(model.data(model.index(1, 0)), 'b2')
self.assertEqual(model.data(model.index(1, 1)), 'new group')
self.assertEqual(model.data(model.index(1, 2)), 12.0)
self.assertEqual(model.data(model.index(1, 3)), 22.0)
self.assertEqual(model.data(model.index(1, 4)), 32.0)
self.assertEqual(model.data(model.index(1, 5)), 42.0)
self.assertEqual(model.data(model.index(1, 6)), 'EPSG:4326')
self.assertEqual(model.data(model.index(1, 7)), None)
self.assertEqual(model.data(model.index(1, 7), Qt.CheckStateRole), Qt.Unchecked)
self.assertEqual(model.data(model.index(1, 6)), 180.5)
self.assertEqual(model.data(model.index(1, 7)), 'EPSG:4326')
self.assertEqual(model.data(model.index(1, 8)), None)
self.assertEqual(model.data(model.index(1, 8), Qt.CheckStateRole), Qt.Unchecked)
self.assertEqual(model.data(model.index(2, 0)), 'b3')
self.assertEqual(model.data(model.index(2, 1)), 'group 3')
self.assertEqual(model.data(model.index(2, 2)), 32.0)
self.assertEqual(model.data(model.index(2, 3)), 32.0)
self.assertEqual(model.data(model.index(2, 4)), 33.0)
self.assertEqual(model.data(model.index(2, 5)), 43.0)
self.assertEqual(model.data(model.index(2, 6)), 'EPSG:28355')
self.assertEqual(model.data(model.index(2, 7)), None)
self.assertEqual(model.data(model.index(2, 7), Qt.CheckStateRole), Qt.Checked)
self.assertEqual(model.data(model.index(2, 6)), 90.0)
self.assertEqual(model.data(model.index(2, 7)), 'EPSG:28355')
self.assertEqual(model.data(model.index(2, 8)), None)
self.assertEqual(model.data(model.index(2, 8), Qt.CheckStateRole), Qt.Checked)
self.assertEqual(model.data(model.index(2, 0), QgsBookmarkManagerModel.RoleName), 'b3')
self.assertEqual(model.data(model.index(2, 0), QgsBookmarkManagerModel.RoleGroup), 'group 3')
id = model.data(model.index(2, 0), QgsBookmarkManagerModel.RoleId)
Expand All @@ -207,32 +218,35 @@ def testBookmarkModel(self):
self.assertTrue(model.setData(model.index(2, 5), 4, Qt.EditRole))
self.assertEqual(model.data(model.index(2, 5)), 4.0)
self.assertEqual(project_manager.bookmarks()[0].extent().yMaximum(), 4.0)
self.assertTrue(model.setData(model.index(2, 6), 361, Qt.EditRole))
self.assertEqual(model.data(model.index(2, 6)), 361)
self.assertEqual(project_manager.bookmarks()[0].rotation(), 361)
self.assertFalse(model.setData(model.index(3, 0), 4, Qt.EditRole))

self.assertTrue(int(model.flags(model.index(0, 0)) & Qt.ItemIsEnabled))
self.assertTrue(int(model.flags(model.index(0, 0)) & Qt.ItemIsEditable))
self.assertTrue(int(model.flags(model.index(0, 7)) & Qt.ItemIsUserCheckable))
self.assertTrue(int(model.flags(model.index(1, 7)) & Qt.ItemIsUserCheckable))
self.assertTrue(int(model.flags(model.index(0, 8)) & Qt.ItemIsUserCheckable))
self.assertTrue(int(model.flags(model.index(1, 8)) & Qt.ItemIsUserCheckable))
self.assertTrue(int(model.flags(model.index(1, 0)) & Qt.ItemIsEnabled))
self.assertTrue(int(model.flags(model.index(1, 0)) & Qt.ItemIsEditable))
self.assertTrue(int(model.flags(model.index(2, 0)) & Qt.ItemIsEnabled))
self.assertTrue(int(model.flags(model.index(2, 0)) & Qt.ItemIsEditable))
self.assertTrue(int(model.flags(model.index(2, 7)) & Qt.ItemIsUserCheckable))
self.assertTrue(int(model.flags(model.index(2, 8)) & Qt.ItemIsUserCheckable))
self.assertFalse(int(model.flags(model.index(3, 0)) & Qt.ItemIsEnabled))
self.assertFalse(int(model.flags(model.index(3, 0)) & Qt.ItemIsEditable))
self.assertFalse(int(model.flags(model.index(3, 7)) & Qt.ItemIsUserCheckable))
self.assertFalse(int(model.flags(model.index(3, 8)) & Qt.ItemIsUserCheckable))

# try transferring bookmark from app->project
self.assertTrue(model.setData(model.index(1, 7), Qt.Checked, Qt.CheckStateRole))
self.assertTrue(model.setData(model.index(1, 8), Qt.Checked, Qt.CheckStateRole))
self.assertEqual([b.name() for b in project_manager.bookmarks()], ['new name 2', 'b2'])
self.assertEqual([b.name() for b in app_manager.bookmarks()], ['new name'])
self.assertFalse(model.setData(model.index(1, 7), Qt.Checked, Qt.CheckStateRole))
self.assertFalse(model.setData(model.index(1, 8), Qt.Checked, Qt.CheckStateRole))

# try transferring bookmark from project->app
self.assertTrue(model.setData(model.index(1, 7), Qt.Unchecked, Qt.CheckStateRole))
self.assertTrue(model.setData(model.index(1, 8), Qt.Unchecked, Qt.CheckStateRole))
self.assertEqual([b.name() for b in project_manager.bookmarks()], ['b2'])
self.assertEqual([b.name() for b in app_manager.bookmarks()], ['new name', 'new name 2'])
self.assertFalse(model.setData(model.index(1, 7), Qt.Unchecked, Qt.CheckStateRole))
self.assertFalse(model.setData(model.index(1, 8), Qt.Unchecked, Qt.CheckStateRole))

# remove rows
model.removeRows(0, 1)
Expand Down

0 comments on commit 9650c37

Please sign in to comment.