def testTakeLayer(self): # test taking ownership of a layer from the store l1 = createLayer('l1') l2 = createLayer('l2') store = QgsMapLayerStore() # add one layer to store store.addMapLayer(l1) self.assertEqual(store.mapLayers(), {l1.id(): l1}) self.assertEqual(l1.parent(), store) # try taking some layers which don't exist in store self.assertFalse(store.takeMapLayer(None)) self.assertFalse(store.takeMapLayer(l2)) # but l2 should still exist.. self.assertTrue(l2.isValid()) # take layer from store self.assertEqual(store.takeMapLayer(l1), l1) self.assertFalse(store.mapLayers()) # no layers left # but l1 should still exist self.assertTrue(l1.isValid()) # layer should have no parent now self.assertFalse(l1.parent()) # destroy store store = None self.assertTrue(l1.isValid())
def test_mapLayers(self): """ test retrieving map layers list """ store = QgsMapLayerStore() # test no crash with empty store self.assertEqual(store.mapLayers(), {}) l1 = createLayer('test') l2 = createLayer('test2') store.addMapLayers([l1, l2]) self.assertEqual(store.mapLayers(), {l1.id(): l1, l2.id(): l2})
def test_RemoveLayerShouldNotSegFault(self): store = QgsMapLayerStore() # Should not segfault store.removeMapLayersById(['not_exists']) store.removeMapLayer('not_exists2') # check also that the removal of an unexistent layer does not insert a null layer for k, layer in list(store.mapLayers().items()): assert(layer is not None)
def testTransferLayers(self): # test transferring all layers from another store store1 = QgsMapLayerStore() store2 = QgsMapLayerStore() # empty stores store1.transferLayersFromStore(store2) # silly behavior checks store1.transferLayersFromStore(None) store1.transferLayersFromStore(store1) l1 = createLayer('l1') l2 = createLayer('l2') store1.addMapLayer(l1) store1.addMapLayer(l2) l3 = createLayer('l3') store2.addMapLayer(l3) store2.transferLayersFromStore(store1) self.assertFalse(store1.mapLayers()) # no layers left self.assertEqual(len(store2.mapLayers()), 3) self.assertEqual(store2.mapLayers(), {l1.id(): l1, l2.id(): l2, l3.id(): l3}) store1.transferLayersFromStore(store2) self.assertFalse(store2.mapLayers()) # no layers left self.assertEqual(len(store1.mapLayers()), 3) self.assertEqual(store1.mapLayers(), {l1.id(): l1, l2.id(): l2, l3.id(): l3})
def testTransferLayers(self): # test transferring all layers from another store store1 = QgsMapLayerStore() store2 = QgsMapLayerStore() # empty stores store1.transferLayersFromStore(store2) # silly behavior checks store1.transferLayersFromStore(None) store1.transferLayersFromStore(store1) l1 = createLayer('l1') l2 = createLayer('l2') store1.addMapLayer(l1) store1.addMapLayer(l2) l3 = createLayer('l3') store2.addMapLayer(l3) store2.transferLayersFromStore(store1) self.assertFalse(store1.mapLayers()) # no layers left self.assertEqual(len(store2.mapLayers()), 3) self.assertEqual(store2.mapLayers(), { l1.id(): l1, l2.id(): l2, l3.id(): l3 }) store1.transferLayersFromStore(store2) self.assertFalse(store2.mapLayers()) # no layers left self.assertEqual(len(store1.mapLayers()), 3) self.assertEqual(store1.mapLayers(), { l1.id(): l1, l2.id(): l2, l3.id(): l3 })