コード例 #1
0
ファイル: test_qgsmaplayerstore.py プロジェクト: enzogis/QGIS
    def test_removeMapLayersByLayer(self):
        """ test removing map layers by layer"""
        store = QgsMapLayerStore()

        # test no crash with empty store
        store.removeMapLayers([None])

        l1 = createLayer('test')
        l2 = createLayer('test2')
        l3 = createLayer('test3')

        store.addMapLayers([l1, l2, l3])
        self.assertEqual(store.count(), 3)

        #remove bad layers
        store.removeMapLayers([None])
        self.assertEqual(store.count(), 3)

        # remove valid layers
        store.removeMapLayers([l1])
        self.assertEqual(store.count(), 2)

        # test that layer has been deleted
        self.assertTrue(sip.isdeleted(l1))

        # remove multiple
        store.removeMapLayers([l2, l3])
        self.assertEqual(store.count(), 0)
        self.assertTrue(sip.isdeleted(l2))
        self.assertTrue(sip.isdeleted(l3))
コード例 #2
0
ファイル: test_qgsmaplayerstore.py プロジェクト: enzogis/QGIS
    def test_addMapLayersAlreadyAdded(self):
        """ test that already added layers can't be readded to store """
        store = QgsMapLayerStore()

        l1 = createLayer('test')
        self.assertEqual(store.addMapLayers([l1]), [l1])
        self.assertEqual(len(store.mapLayersByName('test')), 1)
        self.assertEqual(store.count(), 1)
        self.assertEqual(store.addMapLayers([l1]), [])
        self.assertEqual(len(store.mapLayersByName('test')), 1)
        self.assertEqual(store.count(), 1)
コード例 #3
0
ファイル: test_qgsmaplayerstore.py プロジェクト: enzogis/QGIS
    def test_removeAllMapLayers(self):
        """ test removing all map layers from store """
        store = QgsMapLayerStore()
        l1 = createLayer('test')
        l2 = createLayer('test2')

        store.addMapLayers([l1, l2])
        self.assertEqual(store.count(), 2)
        store.removeAllMapLayers()
        self.assertEqual(store.count(), 0)
        self.assertEqual(store.mapLayersByName('test'), [])
        self.assertEqual(store.mapLayersByName('test2'), [])
コード例 #4
0
ファイル: test_qgsmaplayerstore.py プロジェクト: enzogis/QGIS
    def test_addMapLayerInvalid(self):
        """ test that invalid map layers can't be added to store """
        store = QgsMapLayerStore()

        self.assertEqual(store.addMapLayer(QgsVectorLayer("Point?field=x:string", 'test', "xxx")), None)
        self.assertEqual(len(store.mapLayersByName('test')), 0)
        self.assertEqual(store.count(), 0)
コード例 #5
0
ファイル: test_qgsmaplayerstore.py プロジェクト: enzogis/QGIS
    def test_addMapLayer(self):
        """ test adding individual map layers to store"""
        store = QgsMapLayerStore()

        l1 = createLayer('test')
        self.assertEqual(store.addMapLayer(l1), l1)
        self.assertEqual(len(store.mapLayersByName('test')), 1)
        self.assertEqual(store.count(), 1)
        self.assertEqual(len(store), 1)

        # adding a second layer should leave existing layers intact
        l2 = createLayer('test2')
        self.assertEqual(store.addMapLayer(l2), l2)
        self.assertEqual(len(store.mapLayersByName('test')), 1)
        self.assertEqual(len(store.mapLayersByName('test2')), 1)
        self.assertEqual(store.count(), 2)
        self.assertEqual(len(store), 2)
コード例 #6
0
    def test_addMapLayersInvalid(self):
        """ test that invalid map layers can be added to store """
        store = QgsMapLayerStore()

        vl = QgsVectorLayer("Point?field=x:string", 'test', "xxx")
        self.assertEqual(store.addMapLayers([vl]), [vl])
        self.assertEqual(len(store.mapLayersByName('test')), 1)
        self.assertEqual(store.count(), 1)
        self.assertEqual(store.validCount(), 0)
コード例 #7
0
ファイル: test_qgsmaplayerstore.py プロジェクト: enzogis/QGIS
    def test_addMapLayers(self):
        """ test adding multiple map layers to store """
        store = QgsMapLayerStore()

        l1 = createLayer('test')
        l2 = createLayer('test2')
        self.assertEqual(set(store.addMapLayers([l1, l2])), {l1, l2})
        self.assertEqual(len(store.mapLayersByName('test')), 1)
        self.assertEqual(len(store.mapLayersByName('test2')), 1)
        self.assertEqual(store.count(), 2)

        # adding more layers should leave existing layers intact
        l3 = createLayer('test3')
        l4 = createLayer('test4')
        self.assertEqual(set(store.addMapLayers([l3, l4])), {l3, l4})
        self.assertEqual(len(store.mapLayersByName('test')), 1)
        self.assertEqual(len(store.mapLayersByName('test2')), 1)
        self.assertEqual(len(store.mapLayersByName('test3')), 1)
        self.assertEqual(len(store.mapLayersByName('test4')), 1)
        self.assertEqual(store.count(), 4)

        store.removeAllMapLayers()
コード例 #8
0
ファイル: test_qgsmaplayerstore.py プロジェクト: enzogis/QGIS
    def test_removeMapLayerByLayer(self):
        """ test removing a map layer by layer """
        store = QgsMapLayerStore()

        # test no crash with empty store
        store.removeMapLayer('bad')
        store.removeMapLayer(None)

        l1 = createLayer('test')
        l2 = createLayer('test2')

        store.addMapLayers([l1, l2])
        self.assertEqual(store.count(), 2)

        #remove bad layers
        store.removeMapLayer(None)
        self.assertEqual(store.count(), 2)
        l3 = createLayer('test3')
        store.removeMapLayer(l3)
        self.assertEqual(store.count(), 2)

        # remove valid layers
        store.removeMapLayer(l1)
        self.assertEqual(store.count(), 1)

        # test that layer has been deleted
        self.assertTrue(sip.isdeleted(l1))

        # remove second layer
        store.removeMapLayer(l2)
        self.assertEqual(store.count(), 0)
        self.assertTrue(sip.isdeleted(l2))

        # try removing a layer not in the store
        l3 = createLayer('test3')
        store.removeMapLayer(l3)
        self.assertFalse(sip.isdeleted(l3))
コード例 #9
0
ファイル: test_qgsmaplayerstore.py プロジェクト: enzogis/QGIS
    def test_removeMapLayersById(self):
        """ test removing map layers by ID """
        store = QgsMapLayerStore()

        # test no crash with empty store
        store.removeMapLayersById(['bad'])
        store.removeMapLayersById([None])

        l1 = createLayer('test')
        l2 = createLayer('test2')
        l3 = createLayer('test3')

        store.addMapLayers([l1, l2, l3])
        self.assertEqual(store.count(), 3)

        #remove bad layers
        store.removeMapLayersById(['bad'])
        self.assertEqual(store.count(), 3)
        store.removeMapLayersById([None])
        self.assertEqual(store.count(), 3)

        # remove valid layers
        l1_id = l1.id()
        store.removeMapLayersById([l1_id])
        self.assertEqual(store.count(), 2)
        # double remove
        store.removeMapLayersById([l1_id])
        self.assertEqual(store.count(), 2)

        # test that layer has been deleted
        self.assertTrue(sip.isdeleted(l1))

        # remove multiple
        store.removeMapLayersById([l2.id(), l3.id()])
        self.assertEqual(store.count(), 0)
        self.assertTrue(sip.isdeleted(l2))

        # try removing a layer not in the store
        l4 = createLayer('test4')
        store.removeMapLayersById([l4.id()])
        self.assertFalse(sip.isdeleted(l4))
コード例 #10
0
ファイル: test_qgsmaplayerstore.py プロジェクト: gpsbird/QGIS
    def test_removeMapLayersById(self):
        """ test removing map layers by ID """
        store = QgsMapLayerStore()

        # test no crash with empty store
        store.removeMapLayersById(['bad'])
        store.removeMapLayersById([None])

        l1 = createLayer('test')
        l2 = createLayer('test2')
        l3 = createLayer('test3')

        store.addMapLayers([l1, l2, l3])
        self.assertEqual(store.count(), 3)

        #remove bad layers
        store.removeMapLayersById(['bad'])
        self.assertEqual(store.count(), 3)
        store.removeMapLayersById([None])
        self.assertEqual(store.count(), 3)

        # remove valid layers
        l1_id = l1.id()
        store.removeMapLayersById([l1_id])
        self.assertEqual(store.count(), 2)
        # double remove
        store.removeMapLayersById([l1_id])
        self.assertEqual(store.count(), 2)

        # test that layer has been deleted
        self.assertTrue(sip.isdeleted(l1))

        # remove multiple
        store.removeMapLayersById([l2.id(), l3.id()])
        self.assertEqual(store.count(), 0)
        self.assertTrue(sip.isdeleted(l2))

        # try removing a layer not in the store
        l4 = createLayer('test4')
        store.removeMapLayersById([l4.id()])
        self.assertFalse(sip.isdeleted(l4))
コード例 #11
0
    def test_removeMapLayerById(self):
        """ test removing a map layer by ID """
        store = QgsMapLayerStore()

        # test no crash with empty store
        store.removeMapLayer('bad')
        store.removeMapLayer(None)

        l1 = createLayer('test')
        l2 = createLayer('test2')

        store.addMapLayers([l1, l2])
        self.assertEqual(store.count(), 2)

        #remove bad layers
        store.removeMapLayer('bad')
        self.assertEqual(store.count(), 2)
        store.removeMapLayer(None)
        self.assertEqual(store.count(), 2)

        # remove valid layers
        l1_id = l1.id()
        store.removeMapLayer(l1_id)
        self.assertEqual(store.count(), 1)
        # double remove
        store.removeMapLayer(l1_id)
        self.assertEqual(store.count(), 1)

        # test that layer has been deleted
        self.assertTrue(sip.isdeleted(l1))

        # remove second layer
        store.removeMapLayer(l2.id())
        self.assertEqual(store.count(), 0)
        self.assertTrue(sip.isdeleted(l2))

        # try removing a layer not in the store
        l3 = createLayer('test3')
        store.removeMapLayer(l3.id())
        self.assertFalse(sip.isdeleted(l3))
コード例 #12
0
    def test_addRemoveLayersSignals(self):
        """ test that signals are correctly emitted when removing map layers"""
        store = QgsMapLayerStore()

        layers_will_be_removed_spy = QSignalSpy(store.layersWillBeRemoved)
        layer_will_be_removed_spy_str = QSignalSpy(
            store.layerWillBeRemoved[str])
        layer_will_be_removed_spy_layer = QSignalSpy(
            store.layerWillBeRemoved[QgsMapLayer])
        layers_removed_spy = QSignalSpy(store.layersRemoved)
        layer_removed_spy = QSignalSpy(store.layerRemoved)
        remove_all_spy = QSignalSpy(store.allLayersRemoved)

        l1 = createLayer('l1')
        l2 = createLayer('l2')
        l3 = createLayer('l3')
        l4 = createLayer('l4')
        store.addMapLayers([l1, l2, l3, l4])

        # remove 1 layer
        store.removeMapLayer(l1)
        # can't seem to actually test the data which was emitted, so best we can do is test
        # the signal count
        self.assertEqual(len(layers_will_be_removed_spy), 1)
        self.assertEqual(len(layer_will_be_removed_spy_str), 1)
        self.assertEqual(len(layer_will_be_removed_spy_layer), 1)
        self.assertEqual(len(layers_removed_spy), 1)
        self.assertEqual(len(layer_removed_spy), 1)
        self.assertEqual(len(remove_all_spy), 0)
        self.assertEqual(store.count(), 3)

        # remove 2 layers at once
        store.removeMapLayersById([l2.id(), l3.id()])
        self.assertEqual(len(layers_will_be_removed_spy), 2)
        self.assertEqual(len(layer_will_be_removed_spy_str), 3)
        self.assertEqual(len(layer_will_be_removed_spy_layer), 3)
        self.assertEqual(len(layers_removed_spy), 2)
        self.assertEqual(len(layer_removed_spy), 3)
        self.assertEqual(len(remove_all_spy), 0)
        self.assertEqual(store.count(), 1)

        # remove all
        store.removeAllMapLayers()
        self.assertEqual(len(layers_will_be_removed_spy), 3)
        self.assertEqual(len(layer_will_be_removed_spy_str), 4)
        self.assertEqual(len(layer_will_be_removed_spy_layer), 4)
        self.assertEqual(len(layers_removed_spy), 3)
        self.assertEqual(len(layer_removed_spy), 4)
        self.assertEqual(len(remove_all_spy), 1)

        #remove some layers which aren't in the store
        store.removeMapLayersById(['asdasd'])
        self.assertEqual(len(layers_will_be_removed_spy), 3)
        self.assertEqual(len(layer_will_be_removed_spy_str), 4)
        self.assertEqual(len(layer_will_be_removed_spy_layer), 4)
        self.assertEqual(len(layers_removed_spy), 3)
        self.assertEqual(len(layer_removed_spy), 4)
        self.assertEqual(len(remove_all_spy), 1)

        l5 = createLayer('test5')
        store.removeMapLayer(l5)
        self.assertEqual(len(layers_will_be_removed_spy), 3)
        self.assertEqual(len(layer_will_be_removed_spy_str), 4)
        self.assertEqual(len(layer_will_be_removed_spy_layer), 4)
        self.assertEqual(len(layers_removed_spy), 3)
        self.assertEqual(len(layer_removed_spy), 4)
        self.assertEqual(len(remove_all_spy), 1)
コード例 #13
0
ファイル: test_qgsmaplayerstore.py プロジェクト: enzogis/QGIS
    def test_addRemoveLayersSignals(self):
        """ test that signals are correctly emitted when removing map layers"""
        store = QgsMapLayerStore()

        layers_will_be_removed_spy = QSignalSpy(store.layersWillBeRemoved)
        layer_will_be_removed_spy_str = QSignalSpy(store.layerWillBeRemoved[str])
        layer_will_be_removed_spy_layer = QSignalSpy(store.layerWillBeRemoved[QgsMapLayer])
        layers_removed_spy = QSignalSpy(store.layersRemoved)
        layer_removed_spy = QSignalSpy(store.layerRemoved)
        remove_all_spy = QSignalSpy(store.allLayersRemoved)

        l1 = createLayer('l1')
        l2 = createLayer('l2')
        l3 = createLayer('l3')
        l4 = createLayer('l4')
        store.addMapLayers([l1, l2, l3, l4])

        # remove 1 layer
        store.removeMapLayer(l1)
        # can't seem to actually test the data which was emitted, so best we can do is test
        # the signal count
        self.assertEqual(len(layers_will_be_removed_spy), 1)
        self.assertEqual(len(layer_will_be_removed_spy_str), 1)
        self.assertEqual(len(layer_will_be_removed_spy_layer), 1)
        self.assertEqual(len(layers_removed_spy), 1)
        self.assertEqual(len(layer_removed_spy), 1)
        self.assertEqual(len(remove_all_spy), 0)
        self.assertEqual(store.count(), 3)

        # remove 2 layers at once
        store.removeMapLayersById([l2.id(), l3.id()])
        self.assertEqual(len(layers_will_be_removed_spy), 2)
        self.assertEqual(len(layer_will_be_removed_spy_str), 3)
        self.assertEqual(len(layer_will_be_removed_spy_layer), 3)
        self.assertEqual(len(layers_removed_spy), 2)
        self.assertEqual(len(layer_removed_spy), 3)
        self.assertEqual(len(remove_all_spy), 0)
        self.assertEqual(store.count(), 1)

        # remove all
        store.removeAllMapLayers()
        self.assertEqual(len(layers_will_be_removed_spy), 3)
        self.assertEqual(len(layer_will_be_removed_spy_str), 4)
        self.assertEqual(len(layer_will_be_removed_spy_layer), 4)
        self.assertEqual(len(layers_removed_spy), 3)
        self.assertEqual(len(layer_removed_spy), 4)
        self.assertEqual(len(remove_all_spy), 1)

        #remove some layers which aren't in the store
        store.removeMapLayersById(['asdasd'])
        self.assertEqual(len(layers_will_be_removed_spy), 3)
        self.assertEqual(len(layer_will_be_removed_spy_str), 4)
        self.assertEqual(len(layer_will_be_removed_spy_layer), 4)
        self.assertEqual(len(layers_removed_spy), 3)
        self.assertEqual(len(layer_removed_spy), 4)
        self.assertEqual(len(remove_all_spy), 1)

        l5 = createLayer('test5')
        store.removeMapLayer(l5)
        self.assertEqual(len(layers_will_be_removed_spy), 3)
        self.assertEqual(len(layer_will_be_removed_spy_str), 4)
        self.assertEqual(len(layer_will_be_removed_spy_layer), 4)
        self.assertEqual(len(layers_removed_spy), 3)
        self.assertEqual(len(layer_removed_spy), 4)
        self.assertEqual(len(remove_all_spy), 1)