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())