def testExportImport(self): p = QgsProject() manager = QgsBookmarkManager.createProjectBasedManager(p) manager2 = QgsBookmarkManager.createProjectBasedManager(p) manager3 = QgsBookmarkManager.createProjectBasedManager(p) tmpDir = QTemporaryDir() tmpFile = "{}/bookmarks.xml".format(tmpDir.path()) # no managers self.assertTrue(QgsBookmarkManager.exportToFile(tmpFile, [])) self.assertTrue(manager3.importFromFile(tmpFile)) self.assertFalse(manager3.bookmarks()) # no bookmarks self.assertTrue(QgsBookmarkManager.exportToFile(tmpFile, [manager])) self.assertTrue(manager3.importFromFile(tmpFile)) self.assertFalse(manager3.bookmarks()) # add a bunch of bookmarks b = QgsBookmark() b.setId('1') b.setName('b1') b.setExtent( QgsReferencedRectangle(QgsRectangle(11, 21, 31, 41), QgsCoordinateReferenceSystem('EPSG:4326'))) b2 = QgsBookmark() b2.setId('2') b2.setName('b2') b2.setExtent( QgsReferencedRectangle(QgsRectangle(12, 22, 32, 42), QgsCoordinateReferenceSystem('EPSG:4326'))) b3 = QgsBookmark() b3.setId('3') b3.setName('b3') b3.setExtent( QgsReferencedRectangle(QgsRectangle(32, 32, 33, 43), QgsCoordinateReferenceSystem('EPSG:4326'))) manager.addBookmark(b) manager.addBookmark(b2) manager2.addBookmark(b3) # export one manager's bookmarks self.assertTrue(QgsBookmarkManager.exportToFile(tmpFile, [manager])) self.assertTrue(manager3.importFromFile(tmpFile)) self.assertEqual([(b.name(), b.extent()) for b in manager3.bookmarks()], [(b.name(), b.extent()) for b in [b, b2]]) manager3.clear() # export both manager's bookmarks self.assertTrue( QgsBookmarkManager.exportToFile(tmpFile, [manager, manager2])) self.assertTrue(manager3.importFromFile(tmpFile)) self.assertEqual([(b.name(), b.extent()) for b in manager3.bookmarks()], [(b.name(), b.extent()) for b in [b, b2, b3]])
def testAddBookmark(self): project = QgsProject() b = QgsBookmark() b.setName('b1') b.setExtent( QgsReferencedRectangle(QgsRectangle(1, 2, 3, 4), QgsCoordinateReferenceSystem('EPSG:3111'))) manager = QgsBookmarkManager.createProjectBasedManager(project) bookmark_about_to_be_added_spy = QSignalSpy( manager.bookmarkAboutToBeAdded) bookmark_added_spy = QSignalSpy(manager.bookmarkAdded) id, res = manager.addBookmark(b) self.assertTrue(res) self.assertEqual(len(bookmark_about_to_be_added_spy), 1) self.assertEqual(bookmark_about_to_be_added_spy[0][0], id) self.assertEqual(len(bookmark_added_spy), 1) self.assertEqual(bookmark_added_spy[0][0], id) b = manager.bookmarkById(id) self.assertEqual(b.name(), 'b1') self.assertEqual( b.extent(), QgsReferencedRectangle(QgsRectangle(1, 2, 3, 4), QgsCoordinateReferenceSystem('EPSG:3111'))) # adding it again should fail id, res = manager.addBookmark(b) self.assertFalse(res) # try adding a second bookmark b2 = QgsBookmark() b2.setId('my id') b2.setName('b2') b2.setExtent( QgsReferencedRectangle(QgsRectangle(11, 21, 31, 41), QgsCoordinateReferenceSystem('EPSG:4326'))) id2, res = manager.addBookmark(b2) self.assertTrue(res) self.assertEqual(id2, 'my id') self.assertEqual(len(bookmark_added_spy), 2) self.assertEqual(bookmark_about_to_be_added_spy[1][0], 'my id') self.assertEqual(len(bookmark_about_to_be_added_spy), 2) self.assertEqual(bookmark_added_spy[1][0], 'my id') # adding a bookmark with duplicate id should fail b3 = QgsBookmark() b3.setId('my id') id, res = manager.addBookmark(b3) self.assertFalse(res)
def testBookmark(self): b = QgsBookmark() self.assertFalse(b.id()) self.assertFalse(b.name()) b.setId('id') self.assertEqual(b.id(), 'id') b.setName('name') self.assertEqual(b.name(), 'name') b.setGroup('group') 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')))